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.
Option 1: MCP server (recommended)
claude mcp add vibehost https://api.vibehost.com/mcp --transport httpThe 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 listIn 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 vibehostOr, from a terminal (works for Cursor / Codex / Claude Code) via the open skills tool:
npx skills add gntc-labs/skills --skill vibehost-deployThe skill knows:
- The CLI command names + flags
- The auth flow (
vibehost loginifwhoamireturnsUNAUTHENTICATED) - 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
| Situation | Use |
|---|---|
| First-time setup | MCP (OAuth is one-click) |
| Daily deploys from your editor | Either — both work fine |
| Cross-machine or CI | Skill + a PAT (see Personal access tokens) |
| You want Claude to read deploy logs interactively | MCP (get_deployment_logs tool) |
| You want Claude to build, then deploy in one shell session | Skill (it can run npm run build first) |
| You want zero confirmation prompts | Skill (the CLI doesn't prompt unless interactive) |
End-to-end first deploy from Claude Code
Assuming you have an existing project to ship:
-
Add the MCP server (one-time):
claude mcp add vibehost https://api.vibehost.com/mcp --transport http -
Open the project in Claude Code:
cd ~/projects/my-blog claude -
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.
-
Approve the OAuth prompt (first tool call only). Claude opens a browser; you click approve; flow returns.
-
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 runsnpm run buildfirstadd_custom_domain(app: my-blog, hostname: blog.example.com)— prints the CNAME record
-
Set the DNS record at your registrar (Claude tells you exactly what to add), then:
Verify the domain.
Claude calls
verify_custom_domainand 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.jsonhas 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
UNAUTHENTICATEDafter 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 httpand re-auth into the other workspace.
See also
- MCP server
- Personal access tokens
- Sibling coding agents: Codex CLI, Cursor, Antigravity, Antigravity CLI, Windsurf, OpenCode, Copilot CLI, Hermes Agent, Grok Build