{"name":"Gvnr","description":"Budget & cost control for AI agents — per-agent spend caps, rate limits, idempotency, reconciliation, and approval bridges over one MCP endpoint. Pay-as-you-go in USDC on Base.","version":"1.8.1","url":"https://gvnr.dev/mcp","transport":["streamable-http"],"authentication":{"type":"bearer","description":"API key obtained from POST https://gvnr.dev/v1/account"},"tools":[{"name":"budget_clear","description":"Check if an agent is authorized to spend tokens and deduct the estimated cost","annotations":{"title":"Clear budget for a planned LLM call","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"set_envelope","description":"Create or update a spend envelope for an agent","annotations":{"title":"Set spend envelope for an agent","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_balance","description":"Get the remaining governance-operation quota for this account","annotations":{"title":"Get governance-operation quota","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"reconcile","description":"Reconcile a prior budget_clear with actual usage; applies the drift to the agent envelope (spend cap)","annotations":{"title":"Reconcile a clearance with actual usage","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"set_rate_envelope","description":"Create or update a rate-limit envelope per (agent, provider, model)","annotations":{"title":"Set rate envelope for (agent, provider, model)","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"rate_check","description":"Check whether an agent is allowed to make a call against the rate envelope; increments the counter on allow","annotations":{"title":"Check rate limit (increments counter on allow)","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"idempotency_check","description":"Dedupe retries on a caller-supplied key; returns is_first_call=true on first call, false on replays within TTL","annotations":{"title":"Reserve an idempotency key","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"request_approval","description":"Request human approval for an agent action; returns approval_id + approval_url, agent polls check_approval for the decision","annotations":{"title":"Request human approval for an action","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"check_approval","description":"Poll the status of a pending approval (pending / approved / denied / timeout)","annotations":{"title":"Check the status of an approval request","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}]}