VibeHost
Guides

Deploy from Claude Code — MCP + Skill Setup

Deploy to a live URL from inside Claude Code. Two paths: MCP server (interactive) or vibehost-deploy skill (scripted). Set up in under a minute.

Claude Code has two ways to talk to VibeHost: the MCP server (OAuth, recommended for interactive use) and the vibehost-deploy skill (CLI-driven, recommended for repeatable workflows).

Both can coexist.

claude mcp add vibehost https://api.vibehost.com/mcp --transport http

The first tool call triggers an OAuth flow in your browser. After approval, Claude Code has the full VibeHost MCP tool surface: deploy, promote, rollback, list logs, manage custom domains, etc. See the MCP guide for the tool → CLI cheatsheet.

Verify — claude mcp list should show vibehost (http) — connected:

claude mcp list

In Claude Code chat, just describe what you want:

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

Claude calls create_app + create_deployment, returns the URL. First-write tools (deploy, delete, change visibility, ...) prompt you to confirm before running.

Best for:

  • Interactive sessions ("ship this to production")
  • Cross-app operations ("rollback the staging channel on my-app")
  • One-off admin tasks ("add teammate@x.com as a deployer on hello-app")

Option 2: vibehost-deploy skill

The vibehost-deploy skill is a Claude Code skill that wraps the CLI. Install it as a plugin — run these inside the Claude Code prompt (they're slash commands, not shell). The /plugin marketplace commands need a recent Claude Code (verified on 2.1.150):

/plugin marketplace add gntc-labs/skills
/plugin install vibehost

Or, from a terminal (works for Cursor / Codex / Claude Code) via the open skills tool:

npx skills add gntc-labs/skills --skill vibehost-deploy

The skill knows:

  • The CLI command names + flags
  • The auth flow (vibehost login if whoami returns UNAUTHENTICATED)
  • Which deploy path to pick based on the project layout
  • How to read CLI JSON output and recover from common errors

Best for:

  • Repeatable workflows (the skill activates automatically when you say "deploy this to VibeHost")
  • CI-style automation in Claude Code
  • Cases where you want stdout/stderr from the CLI, not abstracted tool calls

When to pick which

SituationUse
First-time setupMCP (OAuth is one-click)
Daily deploys from your editorEither — both work fine
Cross-machine or CISkill + a PAT (see Personal access tokens)
You want Claude to read deploy logs interactivelyMCP (get_deployment_logs tool)
You want Claude to build, then deploy in one shell sessionSkill (it can run npm run build first)
You want zero confirmation promptsSkill (the CLI doesn't prompt unless interactive)

End-to-end first deploy from Claude Code

Assuming you have an existing project to ship:

  1. Add the MCP server (one-time):

    claude mcp add vibehost https://api.vibehost.com/mcp --transport http
  2. Open the project in Claude Code:

    cd ~/projects/my-blog
    claude
  3. Tell Claude what you want:

    Deploy this folder as a new VibeHost app called my-blog. It's a Vite + React build. After deploy, give me the live URL and add a custom domain blog.example.com.

  4. Approve the OAuth prompt (first tool call only). Claude opens a browser; you click approve; flow returns.

  5. Confirm the writes as they come. Claude calls (in order):

    • create_app(name: my-blog, runtime: static)
    • create_deployment(app: my-blog, dir: ./dist) — Claude runs npm run build first
    • add_custom_domain(app: my-blog, hostname: blog.example.com) — prints the CNAME record
  6. Set the DNS record at your registrar (Claude tells you exactly what to add), then:

    Verify the domain.

    Claude calls verify_custom_domain and reports cert status.

Common prompts

Deploy this project

"Deploy this directory to VibeHost as a new static site called hello-mintlify."

Promote staging to production

"Promote my-app's staging channel to production."

Add a custom domain

"Add www.example.com as a custom domain on my-app and tell me what DNS record to add."

Tail logs

"Stream the latest logs for my-app's production channel."

Audit grants

"List all the apps in my workspace and tell me who has access to each."

Open a PR preview

"Build this branch and deploy it to a pr-123 channel on the marketing app."

Gotchas

  • Skill autoload depends on your .claude/ config. If the skill isn't activating on "deploy this to VibeHost", check .claude/settings.json has it listed and your Claude Code version supports skill registries (4.0+).
  • MCP and skill can both be installed. Claude picks based on the request shape. "Deploy this" tends to trigger the skill; "list my apps" tends to trigger MCP. You can be explicit: "Use the VibeHost MCP server to list my apps."
  • OAuth re-auth every 30 days. Refresh token rotation is 30 days. If MCP starts returning UNAUTHENTICATED after a long gap, click the re-auth prompt.
  • Workspace switching. OAuth-issued tokens are workspace-scoped at first login. To switch workspaces, run claude mcp remove vibehost && claude mcp add vibehost https://api.vibehost.com/mcp --transport http and re-auth into the other workspace.

See also

On this page