{"id":574922,"recorded_at":"2026-10-27T22:57:27.505772Z","observed_at":"2026-10-27T22:57:27.505659Z","subject_kind":"endpoint","subject":"c9bc6137-a070-4074-b489-46d739111de1","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":36,"tools":[{"description":"Get VibeKit account info: plan, credit balance, and usage.","inputSchema":{"properties":{},"type":"object"},"name":"vibekit_account"},{"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"},{"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"},{"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"},{"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"},{"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"},{"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"},{"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"},{"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"},{"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"},{"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"},{"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"},{"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"},{"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"},{"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"},{"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"},{"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"},{"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"},{"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"},{"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"},{"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"},{"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"},{"description":"List all of the account's scheduled recurring tasks.","inputSchema":{"properties":{},"type":"object"},"name":"vibekit_list_schedules"},{"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"},{"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"},{"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"},{"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"},{"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"},{"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"},{"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"},{"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"},{"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"},{"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"},{"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"},{"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"},{"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"}]},"body_sha256":"32865482762240725b14d3c20a34ca3adbc206ed95f81a5e85d503ea94aa5b3c","prev_id":null,"leaf":"0x0b8d0e59c6dc3a96a4a32f545670a2d5994bb3e1c619f38910fa98d776aef198","leaf_text":"{\"body\":\"32865482762240725b14d3c20a34ca3adbc206ed95f81a5e85d503ea94aa5b3c\",\"id\":574922,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793141847505659,\"prev\":null,\"subject\":\"c9bc6137-a070-4074-b489-46d739111de1\",\"subject_kind\":\"endpoint\"}","day":{"day":"2026-10-27","leaves":273461,"root":"0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795","chained":"0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4","anchor_chain":"eip155:5042002","anchor_tx":"0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4","anchor_block":69414147},"proof":["0x0b8d329aba4f7e773d3519f84790342d6ef3948fd1b1711ba09c64ae846a60c0","0x74fb18915d9e32f4b08a7a09db21e758f8110bbf87762e93405825aeb4de4dba","0x3847fbbee5e253c6f97253ca043af639cc00282cc6e35140a3663a58080e8f58","0x13be5d0ae448e379bae805ec97c3e8b98890ddedc43149a018d2f46bfdb84fce","0xd5f4ec836f671c8b8d0f68c40d16bae92f5c90c997d01260fe76c339f319ceb9","0x7bd9235641edd7d19ed2d4b45c5341b3e9f67b3c1954d2bf84aa74aa349925ba","0xb2f4868b99751d975b994c99482630d05d487a888b69675934e5155d785266df","0xd58aa2e8c1d938f00b6f0475f5ee546f1abb21318e1365955c25d9393a85796a","0x05e859de962f0f7f47bad70b465c46c44dc635c8f30bf1eb44cf18eb8d2b64d0","0x3a9eaa672aaa217fe62adddaa5b74ee284a048148705ceb0d80777d7aec144a7","0xab9a818db8b8604daa1d300b5336a7ecdc718ee9de04e347884c3c2ff6e455d3","0x7189e38499a0d36b6f3d244260e4b1d8d20ec79407f4be030531131834122360","0x74ffd6144e8464591ea30392b981f197426cfd361178829fb8a66915e2f727b0","0x3e0ec8a2a8a954695a9b53a4a48a7656d7e3fd6a8795c73b49e2ef05b201ec3f","0x2cf27e8a181d60d0dd27c186c2eddfcbb4e8fa71cf66feeb55a4d730e15ee8c4","0x518b93854db03dc9fc938883abf30da6eaae5ae0d4336903968fd32a7df8c71b","0x22c1fb9487ee0b9732fa017a0cc321eb27a60c08450d112f755089796e12cb1c","0xa20d48798a34aba12eb9c7297722982d910f06c148f5e27ac59307422964a585","0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699"]}