VibeKit MCP
The VibeKit MCP server lets you deploy, manage, and monitor hosted applications, interact with AI agents, automate coding tasks, and access account information.
Hosting Management
List, create, deploy, redeploy, start, stop, restart, and delete hosted apps
Create apps from templates (e.g., Next.js, React, Express) or deploy from GitHub
View application logs and manage environment variables
AI Agent Interaction
Chat with an app's AI agent to read, write, and modify code
Check agent status and retrieve chat history
Database Management
Enable a database for a hosted app and retrieve its status and connection info
QA & Testing
Run automated QA tests on deployed apps and retrieve results
Task Automation
Submit coding tasks for an AI to write code, commit to GitHub, and deploy
Poll task status, wait for completion, list tasks, and cancel running tasks
Create, list, and delete recurring scheduled tasks using cron expressions
Account & Skills
View account plan, credits, and usage
List and fetch implementation skills, including code examples and best practices
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 context about what status includes (provisioned, frozen) but does not contradict annotations. It is consistent but adds limited new behavioral insight.
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, front-loaded with action and resource, no wasted words. Efficient and to the point.
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 it has one parameter and an output schema, the description is sufficient for a simple read tool. It explains the purpose and kind of info returned. No major gaps.
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%, so baseline is 3. The description does not add meaning beyond the schema's parameter description ('App ID (from vibekit_list_apps)'). No additional parameter details.
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 action 'Get' and the resource 'app's database status and connection info' with examples like 'provisioned, frozen'. It distinguishes from sibling tool 'vibekit_get_task' which deals with tasks.
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 usage for checking database status but does not provide explicit when-to-use or alternatives. No exclusions or guidance on when not to use this tool.
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 declare readOnlyHint=true, and the description adds that it returns status and result, providing additional behavioral context without 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, clear sentence with no unnecessary words. It is front-loaded and concise.
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?
For a simple tool with one parameter and an output schema, the description is complete enough. It explains what the tool does and the context of use.
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 description coverage is 100%, and the parameter 'taskId' is well-described in the schema. The description adds no new information about parameters beyond what is already in the schema.
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 tool retrieves status and result of a task, specifying the resource and action. It distinguishes from the sibling tool 'vibekit_database_status' by focusing on tasks.
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 usage after submitting a task via 'vibekit_submit_task', providing clear context. However, it does not explicitly state when not to use or mention alternatives beyond the sibling.
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. Dates show when Glama detected each change.
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
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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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
- AlicenseAqualityBmaintenanceMCP server for Shipstatic — deploy and manage static sites from AI agents. Works with Claude Code, Cursor, VS Code Copilot, and any MCP-compatible client.153,1887MIT
- 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.4939MIT
- AlicenseAqualityBmaintenanceAn MCP server for managing Modal — apps, containers, volumes, and secrets — and for deploying & running Modal apps directly from Claude Code and other MCP clients.123MIT
- FlicenseNot gradedqualityBmaintenancePublish your Claude Code setup, browse a public feed, and pull setups in. Remote MCP server + web feed in one FastAPI app.1-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/VibeKit-Bot/vibekit-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server