VibeHost MCP Server
VibeHost is a deployment platform built for coding agents. The Model Context Protocol (MCP) server lets a connected AI agent deploy your sites, manage releases, and inspect logs through 61 tools. It works with Claude Desktop, ChatGPT, Gemini Spark, Cursor, Claude Code, Codex, Windsurf, and others.
What it does
VibeHost ships a remote MCP server that any MCP-compatible agent can connect to. Once authorised, the agent can create apps, push deployments (tarball over signed URL), promote between channels, roll back, manage custom domains and redirects, stream container logs, gate apps with passwords or share links, and grant per-app or per-team access. Every action runs through the same OAuth-bound permissions the dashboard uses. Agents only see what the signing user can see.
Endpoints
- MCP server:
https://api.vibehost.com/mcp, over the Streamable HTTP transport (the spec's recommended transport since 2025-06). - OAuth 2.1 authorization server metadata:
https://api.vibehost.com/.well-known/oauth-authorization-server(RFC 8414). - Protected resource metadata:
https://api.vibehost.com/.well-known/oauth-protected-resource/mcp(RFC 9728). - Dynamic client registration:
https://api.vibehost.com/api/v1/oauth/register(RFC 7591). New agents register themselves the first time they connect.
Authentication
OAuth 2.1 authorization-code flow with mandatory PKCE (S256). Agents
request the mcp scope, plus offline_access
if they need a refresh token. Access tokens are 60 minutes; refresh
tokens are 30 days with single-use rotation and reuse detection (if
the same refresh token is used twice, the entire chain for that client
is revoked). Token audience is bound to https://api.vibehost.com/mcp via RFC 8707, so a token
minted for VibeHost won't be accepted by another resource server.
Public clients (Claude Desktop, Cursor, ChatGPT, Gemini Spark, Codex, Windsurf,
Raycast, Continue, Devin, VS Code, and similar native
agents) authenticate via dynamic client registration and PKCE, so they
need no client secret. The accepted redirect-URI schemes are: https://, loopback http://localhost and http://127.0.0.1, plus a fixed set of native-agent custom
schemes (claude-desktop:, cursor:,
vscode:, windsurf:, raycast:,
gemini:, continue:, devin:,
claude:, claude-code:, codium:
). Confidential clients with a static client_id/secret pair are
supported for server-to-server integrations; contact us to provision
one.
What your agent can do
The 61 tools split into 8 surfaces. Read-only tools are marked with (read); tools that change publicly visible internet
state (deploys, public URLs, custom domains, password gates) carry openWorldHint: true so the client can prompt for
confirmation.
Workspaces & apps
-
list_workspaces(read) lists the workspaces the OAuth token can reach. -
list_apps(read) andget_app(read) return apps and their metadata. -
create_appprovisions a new app (private by default), anddelete_appsoft-deletes one. -
set_app_visibilitysets an app to public, workspace, or private.
Deploys & releases
-
check_blobs_missing(read) andrequest_uploadhandle the chunked tarball upload through signed R2 URLs. -
deploypromotes a manifest to a channel. Returns the deployment with itsstatus; a static deploy is usually alreadyhealthy. Pollget_deploymentonly while it isstarting. -
get_deployment(read) inspects a release, andget_logs(read) returns container logs. -
request_deployment_download(read) returns a signed URL to re-download a deployment's tarball. It powersvibehost pull. -
get_screenshot(read) returns the preview image the previewer worker captures on each healthy deploy.
Channels
-
list_channels(read),create_channel. -
promotetakes an existing deployment in one channel and points another channel at the same release bytes (no rebuild). Typical flow: deploy to a preview channel, verify, then promote toproduction. -
rollbackworks within a single channel and re-points it at one of that channel's earlier deployments.
Access & sharing
-
list_app_grants(read) shows who has access, by team or by email. -
grant_app_email_access,revoke_app_email_access,grant_app_team_access, andrevoke_app_team_accessgrant or revoke viewer, deployer, or admin access per recipient. -
get_app_password_info(read),set_app_password, andclear_app_passwordmanage a shared password gate on top of visibility. -
list_share_links(read),create_share_link, andrevoke_share_linkmanage anonymous tokenised URLs with an optional TTL.
Custom domains
-
list_custom_domains(read),add_custom_domain,verify_custom_domain,remove_custom_domain. -
verify_custom_domainqueries public DNS resolvers for your CNAME / TXT records.add_custom_domainandremove_custom_domainchange VibeHost's view of the domain.list_custom_domainsis read-only.
Redirects
-
list_redirect_rules(read),add_redirect_rule,remove_redirect_rule, andbulk_import_redirect_rulesmanage per-app redirect and rewrite rules, which Cloudflare Workers serve.
Team & workspace management
-
list_workspace_members(read),remove_workspace_member. -
list_team_members(read),remove_team_member. -
list_workspace_invitations(read),invite_to_workspace,revoke_workspace_invitation. -
list_team_invitations(read),invite_to_team,revoke_team_invitation. Invitation emails are sent via Resend.
Example agent prompts
Once your agent is connected to https://api.vibehost.com/mcp, these prompts work
as written. The agent calls multiple tools in sequence; you
usually don't pick tool names manually.
-
"Deploy the contents of
./distto a new VibeHost app calledlanding-v2and give me the URL."
→create_app→check_blobs_missing→request_upload→deploy→get_deployment. -
"Share
landing-v2with bob@example.com as a deployer."
→get_app→grant_app_email_access. (Email grants persist until revoked; for time-bounded access usecreate_share_linkwith a TTL instead.) -
"Roll
landing-v2production back to the previous release."
→list_channels+get_deployment→rollback. -
"Add the custom domain
landing.example.comtolanding-v2and tell me what CNAME I need to set."
→add_custom_domain→verify_custom_domain(returns the expected CNAME and TXT records). -
"Show me the last 50 log lines from
landing-v2's current production deployment."
→list_channels→get_deployment→get_logs.
Read / write capabilities
The server both reads and writes. Of the 61 tools, 22 are strictly read-only (everything
prefixed list_, get_, check_);
the remaining 39 write or change state. The write tools are annotated
with destructiveHint (delete / revoke / clear) and openWorldHint (for changes to publicly visible internet
state, such as deploys, share links, custom domains, and password
gates) so MCP clients
can surface a confirmation prompt before calling.
Data & privacy
VibeHost's privacy policy also applies to
access through MCP. The MCP server stores no additional
data: every tool call is authenticated against the same user / token
DB rows the dashboard uses, every state change is audit-logged the
same way, and OAuth refresh tokens are hashed at rest. Tools that
touch third-party services (invitation emails via Resend; DNS lookups
against public resolvers for verify_custom_domain)
declare openWorldHint: true so clients can warn users.
Support
- Support: contact@vibehost.com
- Privacy concerns: contact@vibehost.com
Last updated: 2026-05-13.