{"name":"com.botrecipe/budget","slug":"botrecipe-budget","title":"Run Budget Guard","description":"Hard dollar, token, call and time caps shared by every sub-agent in one agent run.","url":"https://mcp.market/server/botrecipe-budget","rating":null,"grade":"C","score":69,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T00:40:26.767Z","last_ok_at":"2026-11-04T00:40:26.767Z","latency_ms":452},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://budget.cloudforbots.com","version":"1.0.1","remotes":[{"type":"streamable-http","url":"https://budget.cloudforbots.com/mcp"}],"packages":[],"tools":[{"name":"budget_status","description":"See spend vs limits, remaining budget, whether the run is stopped and why, and the last 20 ledger events. Set close=true when the run finishes.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"handle":{"type":"string","description":"The budget handle from open_budget (looks like bg_<id>.<secret>). Pass it to every sub-agent so they all spend from the same budget."},"close":{"type":"boolean"}},"required":["handle"]}},{"name":"open_budget","description":"Open a hard budget for one agent run before it starts: max dollars, tokens, calls and/or wall-clock seconds. Returns a handle. Give the handle to every sub-agent; they all draw from the same ledger, so one runaway loop or fork cannot exceed the run cap.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"label":{"type":"string","description":"What this run is for, e.g. \"nightly code cleanup\"."},"max_usd":{"type":"number","description":"Dollar cap for the whole run (your own estimates per call)."},"max_tokens":{"type":"integer","description":"Token cap (input + output) for the whole run."},"max_calls":{"type":"integer","description":"Cap on model/tool calls for the whole run."},"max_seconds":{"type":"integer","description":"Wall-clock cap in seconds from now."},"ttl_hours":{"type":"integer","description":"Handle lifetime (free max 24, Pro max 168). Default 24."},"mode":{"type":"string","enum":["shadow","enforce"],"description":"shadow = watch only: track spend and flag where the cap WOULD have stopped the run, never block (free). enforce = return allowed=false at the cap (Pro). Default: enforce on Pro, shadow on free."}}}},{"name":"record","description":"After a call, report the actual usage minus what you reserved (positive if it cost more, negative to give back an overestimate). Keeps the ledger honest without blocking.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"handle":{"type":"string","description":"The budget handle from open_budget (looks like bg_<id>.<secret>). Pass it to every sub-agent so they all spend from the same budget."},"usd":{"type":"number"},"tokens":{"type":"integer"},"note":{"type":"string"}},"required":["handle"]}},{"name":"reserve","description":"Call BEFORE each model call, tool call or sub-agent spawn with your estimate. Returns allowed=true and deducts it, or allowed=false with the limit that tripped. When allowed is false, stop, do not retry, and return your partial result to the user. Atomic, so parallel sub-agents cannot both slip under the cap.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"handle":{"type":"string","description":"The budget handle from open_budget (looks like bg_<id>.<secret>). Pass it to every sub-agent so they all spend from the same budget."},"usd":{"type":"number","description":"Estimated cost of the next call in USD."},"tokens":{"type":"integer","description":"Estimated tokens of the next call."},"calls":{"type":"integer","description":"Number of calls to reserve (default 1)."},"note":{"type":"string","description":"Short note, e.g. \"web_search #12\"."}},"required":["handle"]}},{"name":"usage_and_upgrade","description":"Show today's usage for your key or IP and the $49/month All Access upgrade link (cloudforbots.com/offer). Free tier: 500 calls/day. Not metered.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"weekly_report","description":"Draft a plain-English report of the last 7 days for your key (or IP): runs, spend, runs that went over their cap, and dollars spent after a cap would have stopped them. Read-only; sends nothing. Show it to your user.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}}],"scan":{"score":69,"grade":"C","scanned_at":"2026-10-15T21:46:14.593Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-15T21:46:14.567Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 472ms"]},"poisoning":{"score":15,"max":15,"notes":["6 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://budget.cloudforbots.com/mcp","reachable":true,"authRequired":false,"latencyMs":472,"serverInfo":{"name":"run-budget-guard","version":"1.0.0"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://botrecipe.com/sh-logo.svg","source":"site"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}