Server definition
- Hash
- sha256:29178e4f8bb9cd95ffc9983bb6127f485ddd32e5e560362426b5bc49dc6cbd5d
- What it is
- What a remote MCP server returned when asked what it offers: 36 tools
The blob, as servednamed by its sha256
{
"instructions": "VibeKit hosts, deploys, and operates web apps and AI coding agents. Each app runs in its own container at <subdomain>.vibekit.bot with optional Postgres, logs, env vars, and automated QA, plus a built-in AI agent that can edit the app's code.\n\nUse these tools whenever the user wants to: deploy a GitHub repo or starter template and get a live URL; list, inspect, restart/stop/start, or delete hosted apps; read logs to debug; manage env vars; enable and query an app's Postgres (call vibekit_db_schema before writing SQL); list or roll back deploys; run or check QA; chat with an app's AI agent to change its code; or submit/schedule autonomous coding tasks that commit to GitHub and deploy.\n\nMost tools key off an appId — call vibekit_list_apps first to resolve one. Confirm destructive actions (vibekit_delete_app, vibekit_delete_schedule, and write/DDL via vibekit_db_query) with the user before calling. Auth uses a VibeKit API key (vk_...) from the Telegram bot's /apikey command.",
"tools": [
{
"description": "Get VibeKit account info: plan, credit balance, and usage.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "vibekit_account",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Account info: plan, credits, usage, and API key status."
},
"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"
}
},
{
"description": "Get the recent chat history between the user and an app's AI agent.",
"inputSchema": {
"properties": {
"appId": {
"description": "App ID (from vibekit_list_apps)",
"type": "string"
},
"limit": {
"description": "Maximum number of messages to return (default 20)",
"type": "number"
}
},
"required": [
"appId"
],
"type": "object"
},
"name": "vibekit_agent_history",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Array of recent chat messages between the user and the app's agent."
},
"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"
}
},
{
"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.",
"inputSchema": {
"properties": {
"appId": {
"description": "App ID (from vibekit_list_apps)",
"type": "string"
}
},
"required": [
"appId"
],
"type": "object"
},
"name": "vibekit_agent_status",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Agent status: idle/working, current model, context usage, and app 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"
}
},
{
"description": "Get the environment variables configured for an app (names and values). Read-only — use vibekit_set_env to change them.",
"inputSchema": {
"properties": {
"appId": {
"description": "App ID (from vibekit_list_apps)",
"type": "string"
}
},
"required": [
"appId"
],
"type": "object"
},
"name": "vibekit_app_env",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "The app's environment variables as key-value pairs."
},
"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"
}
},
{
"description": "Fetch recent container/application logs for an app. Use this to debug crashes, errors, or a deploy that isn't serving.",
"inputSchema": {
"properties": {
"appId": {
"description": "App ID (from vibekit_list_apps)",
"type": "string"
},
"lines": {
"description": "Number of log lines to retrieve (default 100)",
"type": "number"
}
},
"required": [
"appId"
],
"type": "object"
},
"name": "vibekit_app_logs",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Recent container log lines for the app."
},
"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"
}
},
{
"description": "Cancel a running task by taskId. No-op if it has already finished.",
"inputSchema": {
"properties": {
"taskId": {
"description": "Task ID to cancel (from vibekit_submit_task)",
"type": "string"
}
},
"required": [
"taskId"
],
"type": "object"
},
"name": "vibekit_cancel_task",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Cancellation confirmation for the task."
},
"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"
}
},
{
"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.",
"inputSchema": {
"properties": {
"appId": {
"description": "App ID (from vibekit_list_apps)",
"type": "string"
},
"message": {
"description": "What you want the agent to do or change — be specific about features, design, and behavior.",
"type": "string"
}
},
"required": [
"appId",
"message"
],
"type": "object"
},
"name": "vibekit_chat",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"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": {
"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"
}
},
{
"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.",
"inputSchema": {
"properties": {
"subdomain": {
"description": "Desired subdomain — the app goes live at <subdomain>.vibekit.bot. Lowercase letters, numbers, and hyphens.",
"type": "string"
},
"template": {
"description": "Template id from vibekit_list_templates (e.g. 'landing', 'dashboard', 'blog', 'saas', 'crud-api')",
"type": "string"
}
},
"required": [
"template",
"subdomain"
],
"type": "object"
},
"name": "vibekit_create_app",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "The created app: appId, subdomain, live URL, and initial deploy status."
},
"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"
}
},
{
"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.",
"inputSchema": {
"properties": {
"cron": {
"description": "Cron expression, e.g. '0 9 * * 1' for every Monday at 9am UTC",
"type": "string"
},
"name": {
"description": "Friendly name for the schedule (optional)",
"type": "string"
},
"repo": {
"description": "GitHub repo as 'owner/repo'",
"type": "string"
},
"task": {
"description": "What to do on each run, e.g. 'Improve SEO and page speed'",
"type": "string"
}
},
"required": [
"task",
"repo",
"cron"
],
"type": "object"
},
"name": "vibekit_create_schedule",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "The created schedule: id, name, and cron expression."
},
"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"
}
},
{
"description": "Get an app's database status and connection info (whether it's provisioned, frozen, etc.).",
"inputSchema": {
"properties": {
"appId": {
"description": "App ID (from vibekit_list_apps)",
"type": "string"
}
},
"required": [
"appId"
],
"type": "object"
},
"name": "vibekit_database_status",
"outputSchema": {
"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"
}
},
{
"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.",
"inputSchema": {
"properties": {
"appId": {
"description": "App ID (from vibekit_list_apps)",
"type": "string"
},
"sql": {
"description": "SQL to execute (max 5000 chars). Reads and writes both allowed.",
"type": "string"
}
},
"required": [
"appId",
"sql"
],
"type": "object"
},
"name": "vibekit_db_query",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Query result rows."
},
"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"
}
},
{
"description": "Get an app's database schema — every table and its columns. Always call this before writing a query with vibekit_db_query.",
"inputSchema": {
"properties": {
"appId": {
"description": "App ID (from vibekit_list_apps)",
"type": "string"
}
},
"required": [
"appId"
],
"type": "object"
},
"name": "vibekit_db_schema",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Full database schema: tables, columns, and types."
},
"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"
}
},
{
"description": "Browse rows of one table with pagination and optional sorting — a quick read-only alternative to hand-writing a SELECT.",
"inputSchema": {
"properties": {
"appId": {
"description": "App ID (from vibekit_list_apps)",
"type": "string"
},
"limit": {
"description": "Max rows to return (default 50, max 200)",
"type": "number"
},
"offset": {
"description": "Row offset for pagination (default 0)",
"type": "number"
},
"table": {
"description": "Table name (see vibekit_db_schema)",
"type": "string"
}
},
"required": [
"appId",
"table"
],
"type": "object"
},
"name": "vibekit_db_table",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Rows from the requested table with pagination applied."
},
"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"
}
},
{
"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.",
"inputSchema": {
"properties": {
"appId": {
"description": "App ID (from vibekit_list_apps)",
"type": "string"
}
},
"required": [
"appId"
],
"type": "object"
},
"name": "vibekit_delete_app",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Deletion confirmation for the app, its container, and its agent."
},
"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"
}
},
{
"description": "Delete a scheduled recurring task by scheduleId. Confirm with the user first.",
"inputSchema": {
"properties": {
"scheduleId": {
"description": "Schedule ID to delete (from vibekit_list_schedules)",
"type": "string"
}
},
"required": [
"scheduleId"
],
"type": "object"
},
"name": "vibekit_delete_schedule",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Deletion confirmation for the schedule."
},
"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"
}
},
{
"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.",
"inputSchema": {
"properties": {
"repo": {
"description": "GitHub repo as 'owner/repo' (e.g. 'your-username/my-app')",
"type": "string"
},
"subdomain": {
"description": "Desired subdomain — the app goes live at <subdomain>.vibekit.bot. Lowercase letters, numbers, and hyphens.",
"type": "string"
}
},
"required": [
"repo",
"subdomain"
],
"type": "object"
},
"name": "vibekit_deploy",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Deploy result: deployUrl (https://<subdomain>.vibekit.bot) and appId."
},
"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"
}
},
{
"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.",
"inputSchema": {
"properties": {
"appId": {
"description": "App ID (from vibekit_list_apps)",
"type": "string"
}
},
"required": [
"appId"
],
"type": "object"
},
"name": "vibekit_enable_database",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Database provisioning result including the assigned schema name; DATABASE_URL is injected on next deploy."
},
"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"
}
},
{
"description": "Get full details for one hosted app — status, subdomain/URL, repo, runtime, and database/domain config. Use the appId from vibekit_list_apps.",
"inputSchema": {
"properties": {
"appId": {
"description": "App ID (from vibekit_list_apps)",
"type": "string"
}
},
"required": [
"appId"
],
"type": "object"
},
"name": "vibekit_get_app",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "App details: subdomain, status, live URL, container stats, and infrastructure topology."
},
"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"
}
},
{
"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.",
"inputSchema": {
"properties": {
"id": {
"description": "Skill ID from vibekit_list_skills (e.g. 'nextjs', 'trpc', 'auth')",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "vibekit_get_skill",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "The skill's id and full SKILL.md content."
},
"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"
}
},
{
"description": "Get the status and result of a task submitted via vibekit_submit_task.",
"inputSchema": {
"properties": {
"taskId": {
"description": "Task ID returned from vibekit_submit_task",
"type": "string"
}
},
"required": [
"taskId"
],
"type": "object"
},
"name": "vibekit_get_task",
"outputSchema": {
"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"
}
},
{
"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.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "vibekit_list_apps",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Array of hosted apps, each with id, subdomain, status, and live URL."
},
"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"
}
},
{
"description": "List an app's recent deploys, newest first, with status and commit info. Find a deployId here to pass to vibekit_rollback_deploy.",
"inputSchema": {
"properties": {
"appId": {
"description": "App ID (from vibekit_list_apps)",
"type": "string"
},
"limit": {
"description": "Max deploys to return (default 20, max 50)",
"type": "number"
}
},
"required": [
"appId"
],
"type": "object"
},
"name": "vibekit_list_deploys",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Array of past deploys with timestamps and commit 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"
}
},
{
"description": "List all of the account's scheduled recurring tasks.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "vibekit_list_schedules",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Array of scheduled tasks with id, name, and cron expression."
},
"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"
}
},
{
"description": "List available implementation skills (IDs, names, descriptions, tags) from the VibeKit skills registry. Discover skills here before fetching one with vibekit_get_skill.",
"inputSchema": {
"properties": {
"tag": {
"description": "Filter skills by tag (e.g. 'react', 'database', 'security')",
"type": "string"
}
},
"type": "object"
},
"name": "vibekit_list_skills",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Array of available skills, optionally filtered by tag, each with id, name, and tags."
},
"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"
}
},
{
"description": "List recent coding tasks, optionally filtered by status.",
"inputSchema": {
"properties": {
"limit": {
"description": "Max number of tasks to return (default 10)",
"type": "number"
},
"status": {
"description": "Filter by task status",
"enum": [
"pending",
"running",
"completed",
"failed"
],
"type": "string"
}
},
"type": "object"
},
"name": "vibekit_list_tasks",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Array of tasks with id and status."
},
"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"
}
},
{
"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.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "vibekit_list_templates",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Array of starter templates with name and description."
},
"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"
}
},
{
"description": "Get the latest automated QA results and status for an app.",
"inputSchema": {
"properties": {
"appId": {
"description": "App ID (from vibekit_list_apps)",
"type": "string"
}
},
"required": [
"appId"
],
"type": "object"
},
"name": "vibekit_qa_status",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Latest QA run status and results summary."
},
"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"
}
},
{
"description": "Redeploy an existing app to pull and ship the latest code. Use after pushing changes to the app's GitHub repo.",
"inputSchema": {
"properties": {
"appId": {
"description": "App ID (from vibekit_list_apps)",
"type": "string"
}
},
"required": [
"appId"
],
"type": "object"
},
"name": "vibekit_redeploy",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Redeploy confirmation with deploy/task status."
},
"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"
}
},
{
"description": "Restart a hosted app's container. Use when an app is wedged, or to apply changed environment variables.",
"inputSchema": {
"properties": {
"appId": {
"description": "App ID (from vibekit_list_apps)",
"type": "string"
}
},
"required": [
"appId"
],
"type": "object"
},
"name": "vibekit_restart_app",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Restart confirmation and resulting container status."
},
"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"
}
},
{
"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.",
"inputSchema": {
"properties": {
"appId": {
"description": "App ID (from vibekit_list_apps)",
"type": "string"
},
"deployId": {
"description": "Deploy ID to roll back to (from vibekit_list_deploys)",
"type": "string"
}
},
"required": [
"appId",
"deployId"
],
"type": "object"
},
"name": "vibekit_rollback_deploy",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Rollback confirmation for the selected deploy snapshot."
},
"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"
}
},
{
"description": "Kick off an automated QA run (headless-browser checks) against a hosted app. Poll vibekit_qa_status for results.",
"inputSchema": {
"properties": {
"appId": {
"description": "App ID (from vibekit_list_apps)",
"type": "string"
}
},
"required": [
"appId"
],
"type": "object"
},
"name": "vibekit_run_qa",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "QA run start confirmation with run id/status."
},
"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"
}
},
{
"description": "Set or update environment variables for an app (merges with existing). The app must be restarted or redeployed for changes to take effect.",
"inputSchema": {
"properties": {
"appId": {
"description": "App ID (from vibekit_list_apps)",
"type": "string"
},
"vars": {
"description": "Key-value pairs to set as environment variables, e.g. { \"API_KEY\": \"...\", \"NODE_ENV\": \"production\" }",
"type": "object"
}
},
"required": [
"appId",
"vars"
],
"type": "object"
},
"name": "vibekit_set_env",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Confirmation of the updated environment variables."
},
"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"
}
},
{
"description": "Start a stopped hosted app's container. Use to bring an app stopped via vibekit_stop_app back online.",
"inputSchema": {
"properties": {
"appId": {
"description": "App ID (from vibekit_list_apps)",
"type": "string"
}
},
"required": [
"appId"
],
"type": "object"
},
"name": "vibekit_start_app",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Start confirmation and resulting container status."
},
"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"
}
},
{
"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.",
"inputSchema": {
"properties": {
"appId": {
"description": "App ID (from vibekit_list_apps)",
"type": "string"
}
},
"required": [
"appId"
],
"type": "object"
},
"name": "vibekit_stop_app",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Stop confirmation; the app is retained but the container is freed."
},
"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"
}
},
{
"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.",
"inputSchema": {
"properties": {
"branch": {
"description": "Git branch to work on (default 'main')",
"type": "string"
},
"callbackUrl": {
"description": "Optional webhook URL to receive a task-completion notification.",
"type": "string"
},
"deploy": {
"description": "Auto-deploy to <subdomain>.vibekit.bot when done (default true)",
"type": "boolean"
},
"repo": {
"description": "GitHub repo as 'owner/repo'. Optional — uses the user's current repo if omitted.",
"type": "string"
},
"task": {
"description": "What you want built or changed. Be specific about features, design, and behavior.",
"type": "string"
}
},
"required": [
"task"
],
"type": "object"
},
"name": "vibekit_submit_task",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "The created task: taskId and initial status."
},
"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"
}
},
{
"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.",
"inputSchema": {
"properties": {
"taskId": {
"description": "Task ID to wait for (from vibekit_submit_task)",
"type": "string"
},
"timeoutSeconds": {
"description": "Max seconds to wait (default 300; the remote connector caps this at 120)",
"type": "number"
}
},
"required": [
"taskId"
],
"type": "object"
},
"name": "vibekit_wait_for_task",
"outputSchema": {
"description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
"properties": {
"data": {
"description": "Final task state after polling: completed or failed, with result details."
},
"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"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:29178e4f8bb9cd95ffc9983bb6127f485ddd32e5e560362426b5bc49dc6cbd5d | sha256sum