VibeKit MCP
This server lets you manage VibeKit cloud apps end-to-end: deploy, host, edit, monitor, and automate them from any MCP client.
Deploy and host apps — create apps from starter templates or deploy GitHub repos, then list, get details, redeploy, roll back deploys, view logs, restart/stop/start, manage env vars, and delete apps.
Chat with app AI agents — send build/change requests to an app's coding agent, monitor its live progress, and read chat history.
Manage databases — enable Postgres for an app, check database status, inspect schema, run read-only SQL queries, and browse tables with pagination.
Run QA — trigger automated headless-browser QA tests and check results.
Automate coding tasks — submit autonomous coding tasks, get status/results, wait for completion, cancel tasks, and create recurring cron schedules.
Manage your account — check plan, credits, and usage, and discover/fetch implementation skills.
Enables deploying GitHub repositories to VibeKit hosting, submitting coding tasks that commit code to GitHub, and managing app deployments sourced from GitHub repos.
vibekit-mcp
MCP server for VibeKit, deploy apps, manage hosting, and chat with AI agents from any MCP client.
This package is for VibeKit cloud/API access. It does not connect your local Claude Code instance to Telegram. For local-machine remote control, use vibekit-agent.
Use it remotely (no install)
VibeKit also runs as a hosted remote server, so clients that accept a remote MCP URL (claude.ai web connectors, ChatGPT, etc.) need no install:
https://mcp.vibekit.bot/mcp?api_key=vk_your_api_key_herePaste that URL into your client's "custom connector" / "remote MCP server" field. Clients that let you set headers can instead send Authorization: Bearer vk_your_api_key_here and use the bare https://mcp.vibekit.bot/mcp. See Get an API key below.
Prefer a local stdio install (e.g. Claude Desktop)? Use the steps below.
Related MCP server: vibekit-mcp
Get an API key
Keys start with vk_. Two ways to get one:
Instant, no signup: one request returns a key.
curl -X POST https://vibekit.bot/api/v1/auth/register # Response: {"apiKey": "vk_...", "plan": "free", "credits": 0}Save the returned key and reuse it. Each call to
/auth/registercreates a brand-new account, so call it once, not per request.From your account: if you already use VibeKit, copy or regenerate your key in the web dashboard or the iOS app settings.
Installation
npm install -g vibekit-mcpSetup
Get a VibeKit API key (see Get an API key above).
Add to your MCP client config (e.g. Claude Desktop) (
~/Library/Application Support/Claude/claude_desktop_config.jsonon macOS):
{
"mcpServers": {
"vibekit": {
"command": "vibekit-mcp",
"env": {
"VIBEKIT_API_KEY": "vk_your_api_key_here"
}
}
}
}Restart your MCP client
Available Tools
Hosting
Tool | Description |
| List all hosted apps |
| Get details about a specific app |
| List starter templates for |
| Create new app from a template |
| Deploy GitHub repo to hosting |
| Redeploy app with latest code |
| List an app's recent deploys with status and commit |
| Roll an app back to a previous deploy |
| Get application logs |
| Restart an app |
| Stop an app |
| Start a stopped app |
| Get app environment variables |
| Set app environment variables |
| Delete an app permanently |
Agent
Tool | Description |
| Chat with an app's AI agent |
| Get agent status |
| Get chat history with agent |
Database
Tool | Description |
| Enable a Postgres database for an app |
| Get database status and connection info |
| Get the database schema (every table and its columns) |
| Run a read-only SQL query (SELECT only, up to 200 rows) |
| Browse one table's rows with pagination and sorting |
QA
Tool | Description |
| Run automated QA tests |
| Get QA test results |
Tasks
Tool | Description |
| Submit a coding task |
| Get task status/result |
| List recent tasks |
| Wait for task completion |
| Cancel a running task |
| Create recurring scheduled task |
| List scheduled tasks |
| Delete scheduled task |
Account
Tool | Description |
| Get account info (plan, credits, usage) |
| List implementation skills |
| Fetch specific skill content |
Example Usage
Once configured, you can use prompts like:
"Deploy my GitHub repo to VibeKit and create a new app"
"Chat with the AI agent for my app about adding a contact form"
"Show me the logs for my app and restart it if there are errors"
"Enable a database for my app, then show me its schema and query the users table"
"List my app's recent deploys and roll back to the last working one"
"Run QA tests on my deployed app"
"Check my VibeKit account balance and list my apps"
"Create a weekly schedule to improve my app's performance"
Environment Variables
Variable | Description | Default |
| Your VibeKit API key (required) | none |
| API base URL |
|
Related Packages
vibekit-cli: terminal client for VibeKit cloud workflowsvibekit-agent: Telegram bridge for local Claude Code on your own machine
Links
Dashboard (view or regenerate your API key)
Privacy Policy
VibeKit's privacy policy: https://vibekit.bot/privacy
What this MCP server does with your data, concretely:
Every tool call is forwarded to the VibeKit API (
https://vibekit.bot/api/v1) over HTTPS, authenticated with the API key you configure. Tool inputs and outputs are processed by VibeKit to run your apps and agents, under the privacy policy above.The server itself keeps no state: nothing is written to disk, no analytics or telemetry are collected by this package, and your API key is read from configuration (
VIBEKIT_API_KEY/ the extension's key field) and sent only tovibekit.bot.Data retention, third-party sharing, and deletion are governed by the policy above. Questions: support@vibekit.bot.
Available Tools
2 toolsvibekit_database_statusVibeKit Database StatusARead-onlyIdempotentInspect
Get an app's database status and connection info (whether it's provisioned, frozen, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | App ID (from vibekit_list_apps) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | Whether the call succeeded. |
| data | No | Database stats: tables, storage, and connection info. |
| error | No | Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds minimal behavioral context (e.g., 'whether it's provisioned, frozen, etc.') but does not reveal additional traits. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. Every element is purposeful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description need not explain return values. It covers the essential purpose and mentions example states. Could be slightly more specific but is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a description for 'appId'. The tool description adds no extra meaning beyond the schema, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get an app's database status and connection info', which uses the verb 'Get' and specifies the resource. It distinguishes from siblings like 'vibekit_db_query' and 'vibekit_enable_database' by focusing solely on status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description only states what it does, leaving the agent to infer context from sibling tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vibekit_get_taskVibeKit Get TaskARead-onlyInspect
Get the status and result of a task submitted via vibekit_submit_task.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | Task ID returned from vibekit_submit_task |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | Whether the call succeeded. |
| data | No | Task details: status, logs/result summary, and repo info. |
| error | No | Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set readOnlyHint=true, indicating no side effects. The description adds no further behavioral details (e.g., re-fetch behavior, error states). With annotations covering safety, the description meets the baseline but does not exceed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that directly conveys the purpose without fluff. Every word is necessary; no redundancy or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description doesn't need to detail return values. The one-parameter tool is fully covered by the description and schema, leaving no gaps for an agent to misinterpret.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with description for taskId. The description adds value by specifying that the ID comes from vibekit_submit_task, linking the tools together and clarifying the parameter's origin.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'status and result of a task', and distinguishes it from sibling tools like vibekit_submit_task (creates) and vibekit_cancel_task (cancels). It references the specific submission tool, making purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use after vibekit_submit_task. It does not explicitly mention when not to use or alternatives like vibekit_wait_for_task for polling, but the context is clear enough for an agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
31 tool updates
v0.7.5- Removed
vibekit_account - Removed
vibekit_agent_history - Removed
vibekit_agent_status - Removed
vibekit_app_env - Removed
vibekit_app_logs - Removed
vibekit_cancel_task - Removed
vibekit_chat - Removed
vibekit_create_app - Removed
vibekit_create_schedule - Changed
vibekit_database_status2 fields changed- changed
Input schema / properties / appId / descriptionPrevious value: -"The app ID to get database status for"New value: +"App ID (from vibekit_list_apps)" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "description": "Result envelope: ok=true with data on success, ok=false with error on failure.", + "properties": { + "data": { + "description": "Database stats: tables, storage, and connection info." + }, + "error": { + "description": "Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error).", + "type": "string" + }, + "ok": { + "description": "Whether the call succeeded.", + "type": "boolean" + } + }, + "required": [ + "ok" + ], + "type": "object" +}
- Removed
vibekit_delete_app - Removed
vibekit_delete_schedule - Removed
vibekit_deploy - Removed
vibekit_enable_database - Removed
vibekit_get_app - Removed
vibekit_get_skill - Changed
vibekit_get_task2 fields changed- changed
Input schema / properties / taskId / descriptionPrevious value: -"The task ID returned from vibekit_submit_task"New value: +"Task ID returned from vibekit_submit_task" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "description": "Result envelope: ok=true with data on success, ok=false with error on failure.", + "properties": { + "data": { + "description": "Task details: status, logs/result summary, and repo info." + }, + "error": { + "description": "Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error).", + "type": "string" + }, + "ok": { + "description": "Whether the call succeeded.", + "type": "boolean" + } + }, + "required": [ + "ok" + ], + "type": "object" +}
- Removed
vibekit_list_apps - Removed
vibekit_list_schedules - Removed
vibekit_list_skills - Removed
vibekit_list_tasks - Removed
vibekit_list_templates - Removed
vibekit_qa_status - Removed
vibekit_redeploy - Removed
vibekit_restart_app - Removed
vibekit_run_qa - Removed
vibekit_set_env - Removed
vibekit_start_app - Removed
vibekit_stop_app - Removed
vibekit_submit_task - Removed
vibekit_wait_for_task
31 tool updates
v0.6.1- First observed
vibekit_account - First observed
vibekit_agent_history - First observed
vibekit_agent_status - First observed
vibekit_app_env - First observed
vibekit_app_logs - First observed
vibekit_cancel_task - First observed
vibekit_chat - First observed
vibekit_create_app - First observed
vibekit_create_schedule - First observed
vibekit_database_status - First observed
vibekit_delete_app - First observed
vibekit_delete_schedule - First observed
vibekit_deploy - First observed
vibekit_enable_database - First observed
vibekit_get_app - First observed
vibekit_get_skill - First observed
vibekit_get_task - First observed
vibekit_list_apps - First observed
vibekit_list_schedules - First observed
vibekit_list_skills - First observed
vibekit_list_tasks - First observed
vibekit_list_templates - First observed
vibekit_qa_status - First observed
vibekit_redeploy - First observed
vibekit_restart_app - First observed
vibekit_run_qa - First observed
vibekit_set_env - First observed
vibekit_start_app - First observed
vibekit_stop_app - First observed
vibekit_submit_task - First observed
vibekit_wait_for_task
TDQS
Scored across 2 tools
The two tools have completely distinct purposes: one checks database status, the other retrieves task results. No ambiguity.
Both tools use the consistent 'vibekit_' prefix followed by verb_noun pattern (database_status, get_task), showing good naming uniformity.
Only 2 tools for a server named 'VibeKit MCP' is too few, especially since a referenced tool (vibekit_submit_task) is missing, making the set feel incomplete.
The tool set is missing a critical tool (vibekit_submit_task) that is referenced in vibekit_get_task, and there are obvious gaps in domain coverage beyond database status and task retrieval.
Maintenance
Related MCP Connectors
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Real-time chat for AI agents. Claude Code, Cursor, Cline and Codex join channels over MCP.
Real-time chat hub for AI agents — Claude Code, Cursor, Cline, Codex over MCP or REST.
Hosted MCP server for AI-driven data ops. Create apps, manage schemas, and CRUD structured data.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for Shipstatic — deploy and manage static sites from AI agents. Works with Claude Code, Cursor, VS Code Copilot, and any MCP-compatible client.151,622 npm7MIT
- AlicenseBqualityDmaintenanceEnables the management of AI-powered VibeKit apps, allowing users to control deployments, monitor logs, and perform database operations directly from MCP-compatible clients. It facilitates interaction with hosted AI agents and the execution of headless coding tasks through natural language.4934 npmMIT
- AlicenseAqualityAmaintenanceAn MCP server for managing Modal — apps, containers, volumes, and secrets — and for deploying & running Modal apps directly from Claude Code and other MCP clients.12217 PyPI2MIT
- FlicenseNot gradedqualityBmaintenancePublish your Claude Code setup, browse a public feed, and pull setups in. Remote MCP server + web feed in one FastAPI app.1-