{"server":{"name":"io.github.VibeKit-Bot/vibekit-mcp","title":"VibeKit","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","remotes":[{"url":"https://mcp.vibekit.bot/mcp","type":"streamable-http"}],"version":"0.8.0","repository":{"url":"https://github.com/VibeKit-Bot/vibekit-mcp","source":"github"},"websiteUrl":"https://vibekit.bot","description":"Build, deploy, and operate hosted web apps on VibeKit (vibekit.bot) from any MCP client."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-07-18T14:19:35.383509Z","publishedAt":"2026-07-18T14:19:35.383509Z","statusChangedAt":"2026-07-18T14:19:35.383509Z"},"dev.protogrid/connectability":{"class":"R0","autonomous":true,"human_steps":[],"preferred":{"kind":"remote","idx":0},"remotes":[{"idx":0,"url":"https://mcp.vibekit.bot/mcp","transport":"streamable-http","templated":false,"headers":[],"auth":{"type":"none","location":null,"secret_name":null,"oauth":null},"protocol":{"supported_versions":["2025-11-25"],"stateless":true},"health":{"reachable":true,"uptime_30d":0.9240506,"latency_ms_p50":314,"consecutive_failures":0,"last_probe_at":"2026-10-09T23:59:33.489Z","last_ok_at":"2026-10-09T23:59:33.489Z"}}],"packages":[]},"dev.protogrid/tools":[{"name":"vibekit_account","title":"VibeKit Account Info","description":"Get VibeKit account info: plan, credit balance, and usage.","annotations":{"title":"VibeKit Account Info","readOnlyHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_agent_history","title":"VibeKit Agent History","description":"Get the recent chat history between the user and an app's AI agent.","annotations":{"title":"VibeKit Agent History","readOnlyHint":true},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_agent_status","title":"VibeKit Agent Status","description":"Check whether an app's AI agent is idle or working, and get its LIVE progress. Returns activity.status = the current human-readable build step (e.g. 'editing index.html', 'deploying'), activity.steps = the steps so far, and activity.done = whether the turn finished. Poll this every few seconds while a build is running and relay activity.status to the user so they see progress. Once activity.done is true the response also includes liveCheck = a server-side fetch of the deployed page ({ url, ok, httpStatus, title }); use it to confirm the app is live and renders — do NOT curl/fetch the URL yourself, your sandbox may block it.","annotations":{"title":"VibeKit Agent Status","readOnlyHint":true},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_app_env","title":"VibeKit Get Env Vars","description":"Get the environment variables configured for an app (names and values). Read-only — use vibekit_set_env to change them.","annotations":{"title":"VibeKit Get Env Vars","readOnlyHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_app_logs","title":"VibeKit App Logs","description":"Fetch recent container/application logs for an app. Use this to debug crashes, errors, or a deploy that isn't serving.","annotations":{"title":"VibeKit App Logs","readOnlyHint":true},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_cancel_task","title":"VibeKit Cancel Task","description":"Cancel a running task by taskId. No-op if it has already finished.","annotations":{"title":"VibeKit Cancel Task","readOnlyHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_chat","title":"VibeKit Chat with Agent","description":"Send a message to an app's built-in AI coding agent, which reads, writes, and modifies the app's code and redeploys it. Use for 'build/make a change to my app' requests. If the agent finishes quickly you get its reply directly. Otherwise you get status:'working' — do NOT resend; instead give the user LIVE progress: poll vibekit_agent_status every few seconds and relay the current step from activity.status ('editing the homepage…', 'deploying…') until activity.done, then read vibekit_agent_history for the final reply.","annotations":{"title":"VibeKit Chat with Agent","readOnlyHint":false,"openWorldHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_create_app","title":"VibeKit Create App","description":"Create a new hosted app from a starter template and deploy it live at <subdomain>.vibekit.bot. Call vibekit_list_templates first to pick a valid template. To deploy existing code from a GitHub repo instead, use vibekit_deploy.","annotations":{"title":"VibeKit Create App","readOnlyHint":false,"idempotentHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_create_schedule","title":"VibeKit Create Schedule","description":"Create a recurring coding task that the AI runs automatically on a cron schedule (e.g. a weekly SEO pass). Use for 'every Monday, do X to my repo' requests.","annotations":{"title":"VibeKit Create Schedule","readOnlyHint":false,"idempotentHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_database_status","title":"VibeKit Database Status","description":"Get an app's database status and connection info (whether it's provisioned, frozen, etc.).","annotations":{"title":"VibeKit Database Status","readOnlyHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_db_query","title":"VibeKit Run SQL Query","description":"Run a read-only SQL query against an app's Postgres database and return up to 200 result rows. SELECT only — writes and DDL (INSERT/UPDATE/DELETE/ALTER/DROP/…) are rejected server-side; use vibekit_chat or vibekit_submit_task to have the agent make data or schema changes. Call vibekit_db_schema first to learn the tables. SQL string, max 5000 chars.","annotations":{"title":"VibeKit Run SQL Query","readOnlyHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_db_schema","title":"VibeKit Database Schema","description":"Get an app's database schema — every table and its columns. Always call this before writing a query with vibekit_db_query.","annotations":{"title":"VibeKit Database Schema","readOnlyHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_db_table","title":"VibeKit Browse Table","description":"Browse rows of one table with pagination and optional sorting — a quick read-only alternative to hand-writing a SELECT.","annotations":{"title":"VibeKit Browse Table","readOnlyHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_delete_app","title":"VibeKit Delete App","description":"Permanently delete a hosted app — stops the container and removes its workspace, database, env vars, and subdomain. Irreversible (the GitHub repo is NOT touched). Confirm with the user before calling.","annotations":{"title":"VibeKit Delete App","readOnlyHint":false,"idempotentHint":true,"destructiveHint":true},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_delete_schedule","title":"VibeKit Delete Schedule","description":"Delete a scheduled recurring task by scheduleId. Confirm with the user first.","annotations":{"title":"VibeKit Delete Schedule","readOnlyHint":false,"idempotentHint":true,"destructiveHint":true},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_deploy","title":"VibeKit Deploy","description":"Deploy a GitHub repo to VibeKit hosting, live at <subdomain>.vibekit.bot (Fargate container behind nginx, SSL automatic). Use when the code already lives in a GitHub repo; for a starter template instead use vibekit_create_app.","annotations":{"title":"VibeKit Deploy","readOnlyHint":false,"idempotentHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_enable_database","title":"VibeKit Enable Database","description":"Provision a Postgres database for an app (idempotent — safe if already enabled). Required before the vibekit_db_* tools work. Note: free-tier apps need the $3/mo Database add-on.","annotations":{"title":"VibeKit Enable Database","readOnlyHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_get_app","title":"VibeKit Get App","description":"Get full details for one hosted app — status, subdomain/URL, repo, runtime, and database/domain config. Use the appId from vibekit_list_apps.","annotations":{"title":"VibeKit Get App","readOnlyHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_get_skill","title":"VibeKit Get Skill","description":"Fetch the full content of a specific skill — implementation patterns, code examples, and best practices for a domain. Fetch on-demand when you need guidance on a specific topic.","annotations":{"title":"VibeKit Get Skill","readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_get_task","title":"VibeKit Get Task","description":"Get the status and result of a task submitted via vibekit_submit_task.","annotations":{"title":"VibeKit Get Task","readOnlyHint":true},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_list_apps","title":"VibeKit List Apps","description":"List all hosted apps in your VibeKit account, each with its id, subdomain, status, and live URL. Start here to get an appId for the other app tools.","annotations":{"title":"VibeKit List Apps","readOnlyHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_list_deploys","title":"VibeKit List Deploys","description":"List an app's recent deploys, newest first, with status and commit info. Find a deployId here to pass to vibekit_rollback_deploy.","annotations":{"title":"VibeKit List Deploys","readOnlyHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_list_schedules","title":"VibeKit List Schedules","description":"List all of the account's scheduled recurring tasks.","annotations":{"title":"VibeKit List Schedules","readOnlyHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_list_skills","title":"VibeKit List Skills","description":"List available implementation skills (IDs, names, descriptions, tags) from the VibeKit skills registry. Discover skills here before fetching one with vibekit_get_skill.","annotations":{"title":"VibeKit List Skills","readOnlyHint":true,"openWorldHint":true},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_list_tasks","title":"VibeKit List Tasks","description":"List recent coding tasks, optionally filtered by status.","annotations":{"title":"VibeKit List Tasks","readOnlyHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_list_templates","title":"VibeKit List Templates","description":"List the starter templates available to vibekit_create_app (e.g. landing, dashboard, blog, saas, crud-api). Call this before vibekit_create_app to choose a valid template.","annotations":{"title":"VibeKit List Templates","readOnlyHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_qa_status","title":"VibeKit QA Status","description":"Get the latest automated QA results and status for an app.","annotations":{"title":"VibeKit QA Status","readOnlyHint":true},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_redeploy","title":"VibeKit Redeploy","description":"Redeploy an existing app to pull and ship the latest code. Use after pushing changes to the app's GitHub repo.","annotations":{"title":"VibeKit Redeploy","readOnlyHint":false,"idempotentHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_restart_app","title":"VibeKit Restart App","description":"Restart a hosted app's container. Use when an app is wedged, or to apply changed environment variables.","annotations":{"title":"VibeKit Restart App","readOnlyHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_rollback_deploy","title":"VibeKit Rollback Deploy","description":"Roll an app back to a previous deploy (get the deployId from vibekit_list_deploys). The container restarts on the rolled-back build; reversible by rolling forward again.","annotations":{"title":"VibeKit Rollback Deploy","readOnlyHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_run_qa","title":"VibeKit Run QA","description":"Kick off an automated QA run (headless-browser checks) against a hosted app. Poll vibekit_qa_status for results.","annotations":{"title":"VibeKit Run QA","readOnlyHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_set_env","title":"VibeKit Set Env Vars","description":"Set or update environment variables for an app (merges with existing). The app must be restarted or redeployed for changes to take effect.","annotations":{"title":"VibeKit Set Env Vars","readOnlyHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_start_app","title":"VibeKit Start App","description":"Start a stopped hosted app's container. Use to bring an app stopped via vibekit_stop_app back online.","annotations":{"title":"VibeKit Start App","readOnlyHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_stop_app","title":"VibeKit Stop App","description":"Stop a hosted app's container. The app stays in your account and can be brought back with vibekit_start_app. Use to take an app offline without deleting it.","annotations":{"title":"VibeKit Stop App","readOnlyHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_submit_task","title":"VibeKit Submit Task","description":"Submit an autonomous coding task. The AI writes the code, commits to GitHub, and (by default) deploys to <subdomain>.vibekit.bot. Returns a taskId — poll vibekit_get_task or block with vibekit_wait_for_task. Use for 'build X' or 'change X' work against a repo.","annotations":{"title":"VibeKit Submit Task","readOnlyHint":false,"openWorldHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"},{"name":"vibekit_wait_for_task","title":"VibeKit Wait for Task","description":"Block until a submitted task finishes (or the timeout), polling every 5 seconds, then return its result. Use right after vibekit_submit_task when you want the final result inline.","annotations":{"title":"VibeKit Wait for Task","readOnlyHint":true},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"}],"dev.protogrid/trust":{"score":93,"components":{"hygiene":100,"liveness":97,"freshness":85,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","+reachable","+uptime-92%","~updated-84d-ago"],"flags":[],"blocked":false,"computed_at":"2026-10-10T02:23:34.570Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."},"dev.protogrid/quality":{"score":85,"label":"good","components":{"auth":null,"hygiene":86,"protocol":75,"stability":100,"dependencies":null},"checks":[{"id":"protocol.modern","detail":"newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28","status":"warn","category":"protocol"},{"id":"protocol.stateless","detail":"only applies to 2026-07-28 servers","status":"na","category":"protocol"},{"id":"protocol.transport","detail":"streamable HTTP","status":"pass","category":"protocol"},{"id":"protocol.list_ttl","detail":"only applies to 2026-07-28 servers","status":"na","category":"protocol"},{"id":"auth.prm","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.as_metadata","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.cimd","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.secret_in_url","detail":"no templated URL","status":"na","category":"auth"},{"id":"tools.descriptions","detail":"every tool has a description","status":"pass","category":"hygiene"},{"id":"tools.description_length","detail":"descriptions are concise","status":"pass","category":"hygiene"},{"id":"tools.schemas","detail":"every tool has an object input schema","status":"pass","category":"hygiene"},{"id":"tools.annotations","detail":"36 of 36 tools declare readOnlyHint or destructiveHint","status":"pass","category":"hygiene"},{"id":"tools.directory_hints","detail":"no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: vibekit_restart_app (openWorldHint); vibekit_start_app (openWorldHint); vibekit_set_env (openWorldHint); …","status":"fail","category":"hygiene"},{"id":"tools.token_cost","detail":"about 4,029 tokens to load every tool","status":"pass","category":"hygiene"},{"id":"tools.api_dump","detail":"tools are not a one-to-one API dump","status":"pass","category":"hygiene"},{"id":"stability.changes","detail":"no tool changes in 30 days","status":"pass","category":"stability"},{"id":"stability.rug_pull","detail":"no tool changed its meaning under the same name","status":"pass","category":"stability"},{"id":"deps.known_vulns","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.mcp_sdk_version","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.resolvable","detail":"no npm or PyPI package","status":"na","category":"dependencies"}],"drivers":["-tools.directory_hints","~protocol.modern"],"flags":[],"tool_count":36,"token_estimate":4029,"tools_hash":"04d4424653ffe0b8d7111359a68cb58f","tools_changed_at":null,"computed_at":"2026-10-10T02:27:51.671Z","disclaimer":"Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed."},"dev.protogrid/identity":{"canonical_id":"io.github.VibeKit-Bot/vibekit-mcp","aliases":[],"alias_count":0,"repository_key":"github:vibekit-bot/vibekit-mcp","owner":{"verified":false,"method":null,"since":null}}},"next_actions":[{"action":"list_tools","description":"Every current tool with input schemas","href":"/v1/servers/io.github.VibeKit-Bot%2Fvibekit-mcp/tools","arguments":{"name":"io.github.VibeKit-Bot/vibekit-mcp"}},{"action":"get_connection","description":"Minimal connection block for the preferred remote or package","href":"/v1/servers/io.github.VibeKit-Bot%2Fvibekit-mcp/connection?target=mcpServers","arguments":{"name":"io.github.VibeKit-Bot/vibekit-mcp","target":"mcpServers"}},{"action":"search","description":"Find other servers by intent","href":"/v1/search?q={query}","arguments":{"q":"{query}"}}]}