{"server":"io.github.VibeKit-Bot/vibekit-mcp","count":36,"tools":[{"name":"vibekit_account","title":"VibeKit Account Info","description":"Get VibeKit account info: plan, credit balance, and usage.","input_schema":{"type":"object","properties":{}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Account info: plan, credits, usage, and API key status."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["appId"],"properties":{"appId":{"type":"string","description":"App ID (from vibekit_list_apps)"},"limit":{"type":"number","description":"Maximum number of messages to return (default 20)"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Array of recent chat messages between the user and the app's agent."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["appId"],"properties":{"appId":{"type":"string","description":"App ID (from vibekit_list_apps)"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Agent status: idle/working, current model, context usage, and app info."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["appId"],"properties":{"appId":{"type":"string","description":"App ID (from vibekit_list_apps)"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"The app's environment variables as key-value pairs."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["appId"],"properties":{"appId":{"type":"string","description":"App ID (from vibekit_list_apps)"},"lines":{"type":"number","description":"Number of log lines to retrieve (default 100)"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Recent container log lines for the app."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["taskId"],"properties":{"taskId":{"type":"string","description":"Task ID to cancel (from vibekit_submit_task)"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Cancellation confirmation for the task."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["appId","message"],"properties":{"appId":{"type":"string","description":"App ID (from vibekit_list_apps)"},"message":{"type":"string","description":"What you want the agent to do or change — be specific about features, design, and behavior."}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"The agent's reply and remaining credit balance, or a status:'working' note with polling instructions when the coding turn is still running."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["template","subdomain"],"properties":{"template":{"type":"string","description":"Template id from vibekit_list_templates (e.g. 'landing', 'dashboard', 'blog', 'saas', 'crud-api')"},"subdomain":{"type":"string","description":"Desired subdomain — the app goes live at <subdomain>.vibekit.bot. Lowercase letters, numbers, and hyphens."}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"The created app: appId, subdomain, live URL, and initial deploy status."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["task","repo","cron"],"properties":{"cron":{"type":"string","description":"Cron expression, e.g. '0 9 * * 1' for every Monday at 9am UTC"},"name":{"type":"string","description":"Friendly name for the schedule (optional)"},"repo":{"type":"string","description":"GitHub repo as 'owner/repo'"},"task":{"type":"string","description":"What to do on each run, e.g. 'Improve SEO and page speed'"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"The created schedule: id, name, and cron expression."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.).","input_schema":{"type":"object","required":["appId"],"properties":{"appId":{"type":"string","description":"App ID (from vibekit_list_apps)"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Database stats: tables, storage, and connection info."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["appId","sql"],"properties":{"sql":{"type":"string","description":"SQL to execute (max 5000 chars). Reads and writes both allowed."},"appId":{"type":"string","description":"App ID (from vibekit_list_apps)"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Query result rows."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["appId"],"properties":{"appId":{"type":"string","description":"App ID (from vibekit_list_apps)"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Full database schema: tables, columns, and types."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["appId","table"],"properties":{"appId":{"type":"string","description":"App ID (from vibekit_list_apps)"},"limit":{"type":"number","description":"Max rows to return (default 50, max 200)"},"table":{"type":"string","description":"Table name (see vibekit_db_schema)"},"offset":{"type":"number","description":"Row offset for pagination (default 0)"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Rows from the requested table with pagination applied."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["appId"],"properties":{"appId":{"type":"string","description":"App ID (from vibekit_list_apps)"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Deletion confirmation for the app, its container, and its agent."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["scheduleId"],"properties":{"scheduleId":{"type":"string","description":"Schedule ID to delete (from vibekit_list_schedules)"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Deletion confirmation for the schedule."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["repo","subdomain"],"properties":{"repo":{"type":"string","description":"GitHub repo as 'owner/repo' (e.g. 'your-username/my-app')"},"subdomain":{"type":"string","description":"Desired subdomain — the app goes live at <subdomain>.vibekit.bot. Lowercase letters, numbers, and hyphens."}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Deploy result: deployUrl (https://<subdomain>.vibekit.bot) and appId."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["appId"],"properties":{"appId":{"type":"string","description":"App ID (from vibekit_list_apps)"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Database provisioning result including the assigned schema name; DATABASE_URL is injected on next deploy."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["appId"],"properties":{"appId":{"type":"string","description":"App ID (from vibekit_list_apps)"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"App details: subdomain, status, live URL, container stats, and infrastructure topology."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Skill ID from vibekit_list_skills (e.g. 'nextjs', 'trpc', 'auth')"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"The skill's id and full SKILL.md content."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["taskId"],"properties":{"taskId":{"type":"string","description":"Task ID returned from vibekit_submit_task"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Task details: status, logs/result summary, and repo info."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","properties":{}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Array of hosted apps, each with id, subdomain, status, and live URL."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["appId"],"properties":{"appId":{"type":"string","description":"App ID (from vibekit_list_apps)"},"limit":{"type":"number","description":"Max deploys to return (default 20, max 50)"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Array of past deploys with timestamps and commit info."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","properties":{}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Array of scheduled tasks with id, name, and cron expression."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","properties":{"tag":{"type":"string","description":"Filter skills by tag (e.g. 'react', 'database', 'security')"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Array of available skills, optionally filtered by tag, each with id, name, and tags."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","properties":{"limit":{"type":"number","description":"Max number of tasks to return (default 10)"},"status":{"enum":["pending","running","completed","failed"],"type":"string","description":"Filter by task status"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Array of tasks with id and status."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","properties":{}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Array of starter templates with name and description."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["appId"],"properties":{"appId":{"type":"string","description":"App ID (from vibekit_list_apps)"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Latest QA run status and results summary."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["appId"],"properties":{"appId":{"type":"string","description":"App ID (from vibekit_list_apps)"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Redeploy confirmation with deploy/task status."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["appId"],"properties":{"appId":{"type":"string","description":"App ID (from vibekit_list_apps)"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Restart confirmation and resulting container status."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["appId","deployId"],"properties":{"appId":{"type":"string","description":"App ID (from vibekit_list_apps)"},"deployId":{"type":"string","description":"Deploy ID to roll back to (from vibekit_list_deploys)"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Rollback confirmation for the selected deploy snapshot."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["appId"],"properties":{"appId":{"type":"string","description":"App ID (from vibekit_list_apps)"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"QA run start confirmation with run id/status."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["appId","vars"],"properties":{"vars":{"type":"object","description":"Key-value pairs to set as environment variables, e.g. { \"API_KEY\": \"...\", \"NODE_ENV\": \"production\" }"},"appId":{"type":"string","description":"App ID (from vibekit_list_apps)"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Confirmation of the updated environment variables."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["appId"],"properties":{"appId":{"type":"string","description":"App ID (from vibekit_list_apps)"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Start confirmation and resulting container status."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["appId"],"properties":{"appId":{"type":"string","description":"App ID (from vibekit_list_apps)"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Stop confirmation; the app is retained but the container is freed."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["task"],"properties":{"repo":{"type":"string","description":"GitHub repo as 'owner/repo'. Optional — uses the user's current repo if omitted."},"task":{"type":"string","description":"What you want built or changed. Be specific about features, design, and behavior."},"branch":{"type":"string","description":"Git branch to work on (default 'main')"},"deploy":{"type":"boolean","description":"Auto-deploy to <subdomain>.vibekit.bot when done (default true)"},"callbackUrl":{"type":"string","description":"Optional webhook URL to receive a task-completion notification."}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"The created task: taskId and initial status."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"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.","input_schema":{"type":"object","required":["taskId"],"properties":{"taskId":{"type":"string","description":"Task ID to wait for (from vibekit_submit_task)"},"timeoutSeconds":{"type":"number","description":"Max seconds to wait (default 300; the remote connector caps this at 120)"}}},"output_schema":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","description":"Whether the call succeeded."},"data":{"description":"Final task state after polling: completed or failed, with result details."},"error":{"type":"string","description":"Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error)."}},"description":"Result envelope: ok=true with data on success, ok=false with error on failure."},"annotations":{"title":"VibeKit Wait for Task","readOnlyHint":true},"source":"probe","observed_at":"2026-10-09T23:59:33.489Z"}],"next_cursor":null,"next_actions":[{"action":"get_connection","description":"Connection block to call these tools","href":"/v1/servers/io.github.VibeKit-Bot%2Fvibekit-mcp/connection?target=mcpServers","arguments":{"name":"io.github.VibeKit-Bot/vibekit-mcp","target":"mcpServers"}},{"action":"get_server","description":"Full descriptor with trust and connectability","href":"/v1/servers/io.github.VibeKit-Bot%2Fvibekit-mcp","arguments":{"name":"io.github.VibeKit-Bot/vibekit-mcp"}}]}