Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,551Letters: 14Defects: 1,323counted 4 min ago
teppi

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 yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:29178e4f8bb9cd95ffc9983bb6127f485ddd32e5e560362426b5bc49dc6cbd5d | sha256sum