{"serverId":"mcp-registry/com.botrecipe/compute","tools":[{"name":"check_memory","fixed":{"name":"check_memory","description":"Before a heavy job, send how much memory the machine your agent runs on has free (free -m, os.freemem()) and what you are about to run. Get a memory warning and a verdict: run_local, or offload with the provider to use. Free watch-only logs would_offload for the weekly report; nothing runs.","inputSchema":{"type":"object","required":["free_mb"],"properties":{"job":{"type":"string","description":"The command or a short description, e.g. \"npm run build\" or \"playwright crawl of 40 pages\"."},"host":{"type":"string","description":"Optional name of the machine, e.g. \"my-laptop\"."},"job_mb":{"type":"number","description":"Optional: your own estimate of the job's peak memory in MB. Without it we use a rough guess by job type."},"free_mb":{"type":"number","description":"Free or available memory right now, in MB (Linux: the \"available\" column of free -m)."},"floor_mb":{"type":"number","description":"Keep at least this much free. Default 2048."},"total_mb":{"type":"number"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":285,"tokensAfter":285},{"name":"delete_provider_key","fixed":{"name":"delete_provider_key","description":"Pro, owner only: delete a saved provider key by name. Jobs on that key stop working at once.","inputSchema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":65,"tokensAfter":65},{"name":"list_providers","fixed":{"name":"list_providers","description":"Every provider this connects to, how each one runs, and (with your key) the provider keys you saved: name, provider, fingerprint, default, last used. Never shows a key.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":72,"tokensAfter":72},{"name":"provider_setup","fixed":{"name":"provider_setup","description":"Step-by-step setup for one provider: where to get the key, what to pass to save_provider_key, links to its docs and price page, and for Modal or Workers Sandbox the bridge code to deploy on your own account.","inputSchema":{"type":"object","required":["provider"],"properties":{"provider":{"type":"string","description":"vercel, e2b, daytona, modal or workers."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":113,"tokensAfter":113},{"name":"run_job","fixed":{"name":"run_job","description":"Pro: run a shell command in a fresh cloud sandbox on your own provider account (vercel (Vercel Sandbox, default), e2b, daytona, modal, workers (Workers Sandbox)) and get the exit code and the last 16 KB of stdout and stderr back. Send small input files with it. The sandbox is created for the job and stopped right after, so nothing idles on your bill. Free watch-only logs would_offload and runs nothing.","inputSchema":{"type":"object","required":["cmd"],"properties":{"cmd":{"type":"string","description":"Shell command, run with bash -lc, e.g. \"git clone https://github.com/you/app && cd app && npm ci && npm test\"."},"env":{"type":"object","description":"Optional non-secret environment variables for the command (strings)."},"files":{"type":"array","items":{"type":"object","required":["path"],"properties":{"path":{"type":"string"},"content":{"type":"string"},"encoding":{"type":"string"}}},"description":"Optional input files written before cmd runs: [{path, content, encoding?: \"base64\"}]. 50 files, 500 KB total."},"free_mb":{"type":"number","description":"Optional: memory free on your machine now, for the weekly report."},"runtime":{"type":"string","description":"Vercel only: node24 (default), node22, node26 or python3.13."},"provider":{"type":"string","description":"Name of a saved provider key (default: your default key, else vercel)."},"template":{"type":"string","description":"E2B only: template id, default base."},"timeout_s":{"type":"integer","description":"1-240 seconds, default 120."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":432,"tokensAfter":432}],"toolsChanged":5,"tokensSaved":0,"todo":[{"tool":"check_memory","params":["total_mb"]},{"tool":"delete_provider_key","params":["name"]},{"tool":"save_provider_key","params":["make_default"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}