VibeHost
Guides

Deploy from Windsurf

Use VibeHost from inside Windsurf via MCP or the vibehost CLI.

Windsurf is an agentic IDE. It can talk to VibeHost in two ways: through the MCP server for agent-selected VibeHost tools, or through the vibehost CLI for local shell workflows and CI.

Add VibeHost as a custom MCP server in Windsurf:

  1. Open Windsurf.
  2. Open the MCPs view from the Cascade panel's top-right MCPs icon. You can also use Windsurf Settings → Cascade → MCP Servers.
  3. Click Add custom MCP. Windsurf opens its MCP config in the editor — ~/.codeium/windsurf/mcp_config.json on the stable build, or ~/.codeium/windsurf-insiders/mcp_config.json / ~/.codeium/windsurf-next/mcp_config.json on the insiders / next builds. If the UI differs, follow the Windsurf MCP docs.
  4. Add the vibehost entry. If the file already has other MCP servers, add only the vibehost block under the existing mcpServers object:
    ~/.codeium/windsurf/mcp_config.json
    {
      "mcpServers": {
        "vibehost": {
          "serverUrl": "https://api.vibehost.com/mcp"
        }
      }
    }
    Windsurf uses serverUrl for Streamable HTTP MCP servers; most other clients call this field url.
  5. Save the file. Back in the MCPs view, vibehost appears under installed servers.
  6. Click Authenticate next to vibehost. If Windsurf asks to confirm opening an external link, allow it. A browser tab opens on api.vibehost.com.
  7. Approve the request in the browser. Windsurf completes the OAuth callback automatically — no code needs to be pasted back into the IDE. If the callback does not return to Windsurf, go back to the MCPs view and click Authenticate again. If Windsurf shows an authorization code or another prompt, follow that prompt to complete the flow. The tool list appears next to vibehost (list_workspaces, create_app, deploy, ...).

Verify in a Cascade chat:

List my VibeHost workspaces.

If Cascade calls list_workspaces and returns your workspaces, the integration is live. From here you can ask for full flows:

Deploy this directory to VibeHost as a new app called my-windsurf-app.

Cascade picks the tools (typically create_app + deploy) and returns the live URL.

Install the CLI:

curl -fsSL https://vibehost.com/install.sh | sh

For local interactive use, sign in once with the CLI:

vibehost login
vibehost whoami --json

vibehost login opens a browser approval flow and stores the CLI token in ~/.config/vibehost/config.json. Cascade can then call vibehost deploy ./dist, vibehost app inspect, etc. through its shell interface.

For CI or unattended scripts, use a Personal Access Token as a secret environment variable instead. In CI, inject VIBEHOST_TOKEN from your CI secret store; don't paste a real PAT into shell history.

export VIBEHOST_TOKEN="YOUR_PERSONAL_ACCESS_TOKEN"
vibehost whoami --json

With --json, stdout is {ok, data | error} for clean agent parsing. Status notices, if any, go to stderr — see the CLI reference.

When to pick which

SituationUse
First-time setupMCP + Windsurf's Authenticate button
Interactive deploys from inside CascadeMCP
Local shell-driven deploysCLI after vibehost login
CI / unattended workflowsCLI + VIBEHOST_TOKEN secret
You want per-tool approval prompts in CascadeMCP
You want raw stdout / stderr from the deploy stepCLI

Both can coexist.

See also

On this page