Server data from the Official MCP Registry
AI agent substrate: spend caps, rate limits, idempotency, reconciliation, approval bridges
AI agent substrate: spend caps, rate limits, idempotency, reconciliation, approval bridges
Remote endpoints: streamable-http: https://gvnr.dev/mcp
Valid MCP server (2 strong, 1 medium validity signals). No known CVEs in dependencies. Imported from the Official MCP Registry.
Endpoint verified · Requires authentication · 1 issue found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Remote Plugin
No local installation needed. Your AI client connects to the remote endpoint directly.
Add this to your MCP configuration to connect:
{
"mcpServers": {
"dev-gvnr-gvnr": {
"url": "https://gvnr.dev/mcp"
}
}
}From the project's GitHub README.
Substrate primitives for AI agents — spend caps, rate limits, idempotency, post-call reconciliation, human approval bridges. One MCP endpoint, one credit pool, no infrastructure to deploy.
Listed on the Official MCP Registry as dev.gvnr/gvnr.
No deployment. No proxy. No self-hosting.
Agents cost 10–12x more than estimated in production. System prompts, retry loops, and tool calls multiply fast. A runaway agent can generate a $47,000 bill in 11 days. The common fix — self-hosting LiteLLM — requires running infrastructure most developers won't set up.
Gvnr is the hosted alternative: an external authority your agent checks before spending.
budget_clear (MCP tool or REST) before each LLM request{ approved: true } or { approved: false, reason: "..." }The envelope is configured by you (per-agent daily or session cap). The credit balance is topped up via USDC on Base.
curl -X POST https://gvnr.dev/v1/account
# { "api_key": "bg_...", "account_id": "..." }
Open the payment page for your chosen pack, pass your API key as a query param:
https://gvnr.dev/pay/starter?api_key=bg_YOUR_KEY
Send USDC on Base to the address shown, paste your tx hash — credits are added after on-chain verification.
Or, if you prefer the programmatic path — POST the tx hash directly:
curl -X POST \
-H "Authorization: Bearer bg_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"tx_hash":"0x..."}' \
https://gvnr.dev/v1/account/topup-verify/starter
curl -X PUT \
-H "Authorization: Bearer bg_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"agent_id":"my-agent","limit_usd":5,"window":"daily"}' \
https://gvnr.dev/v1/budget/envelope
# { "success": true, "agent_id": "my-agent", "limit_usd": 5, "window": "daily" }
curl -X PUT \
-H "Authorization: Bearer bg_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"agent_id":"my-agent","provider":"anthropic","model":"claude-sonnet-4-6","requests_per_minute":30}' \
https://gvnr.dev/v1/rate/envelope
# { "success": true, ... }
curl -X POST \
-H "Authorization: Bearer bg_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"agent_id":"my-agent","model":"claude-sonnet-4-6","estimated_tokens":2000}' \
https://gvnr.dev/v1/budget/clear
# { "approved": true, "remaining_usd": 4.994 }
curl -X POST \
-H "Authorization: Bearer bg_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"agent_id":"my-agent","provider":"anthropic","model":"claude-sonnet-4-6"}' \
https://gvnr.dev/v1/rate/check
# { "allowed": true, "requests_remaining_this_minute": 29 }
idempotency_checkcurl -X POST \
-H "Authorization: Bearer bg_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"key":"job-abc-123","ttl_seconds":3600}' \
https://gvnr.dev/v1/idempotency/check
# First call: { "is_first_call": true, "ttl_remaining_seconds": 3600 }
# Replay: { "is_first_call": false, "ttl_remaining_seconds": 3598 }
curl -X POST \
-H "Authorization: Bearer bg_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"agent_id":"my-agent","actual_input_tokens":1800,"actual_output_tokens":2400}' \
https://gvnr.dev/v1/budget/reconcile
# { "ok": true, "drift_usd": 0.003, "remaining_usd": 4.991, "balance_usd": 9.991 }
reconcile is optional but keeps the envelope honest — Anthropic, OpenAI, and Gemini all return usage fields with the actual token counts; pass those in.
Add to Claude Desktop or any MCP-compatible client:
https://gvnr.dev/mcp?api_key=bg_YOUR_KEY
claude mcp add gvnr --transport http \
"https://gvnr.dev/mcp?api_key=bg_YOUR_KEY"
| Tool | Description |
|---|---|
budget_clear(agent_id, model, estimated_tokens) | Check clearance and deduct estimated cost |
set_envelope(agent_id, limit_usd, window?) | Create or update an agent's spend envelope |
get_balance() | Get current account credit balance |
reconcile(agent_id, actual_input_tokens, actual_output_tokens) | Apply the drift between estimated and actual cost after the LLM responds |
set_rate_envelope(agent_id, provider, model, requests_per_minute) | Allocate a per-(agent, provider, model) rate share |
rate_check(agent_id, provider, model) | Approve or deny based on the rate envelope; returns retry_after_ms on denial |
idempotency_check(key, ttl_seconds?) | Dedupe retries on a caller-supplied key; returns is_first_call |
All endpoints (except POST /v1/account) require Authorization: Bearer bg_YOUR_KEY.
| Method | Path | Description |
|---|---|---|
POST | /v1/account | Provision account — returns api_key |
GET | /v1/account/balance | Current credit balance |
GET | /v1/packs/:pack/info | Public — pack details, USDC address, raw amount |
POST | /v1/account/topup-verify/:pack | Submit tx hash → verify on-chain → credit account |
POST | /v1/account/topup/:pack | x402-gated credit top-up (machine clients) |
| Method | Path | Description |
|---|---|---|
POST | /v1/budget/clear | Clearance call — approve or deny |
PUT | /v1/budget/envelope | Create or update agent envelope |
GET | /v1/budget/envelope/:agent_id | Read envelope state |
{ "approved": true, "remaining_usd": 4.994 }
{ "approved": false, "remaining_usd": 0, "reason": "envelope_exceeded" }
Denial reasons: no_credits · no_envelope · envelope_exceeded
Top up at GET /pay/:pack?api_key=bg_YOUR_KEY. Send USDC on Base mainnet — credits added after on-chain verification.
| Pack | Price | Clearances | Link |
|---|---|---|---|
starter | $19 | ~10k/month | /pay/starter |
growth | $39 | ~30k/month | /pay/growth |
studio | $79 | ~100k/month | /pay/studio |
daily — resets at UTC midnight each daysession — never resets (use for one-shot tasks)Model pricing is a static lookup on the hot path — no external calls. Includes claude-opus-4-7, claude-sonnet-4-6, claude-haiku-4-5, gpt-4o, gpt-4o-mini, and others. Embedding models (text-embedding-3-small/large, gemini-embedding-001/2) are billed input-only — pass input tokens to budget_clear for those. Unknown models fall back to a conservative default.
X402_NETWORK | Chain | Notes |
|---|---|---|
eip155:84532 | Base Sepolia | Testnet — safe for development |
eip155:8453 | Base mainnet | Real USDC |
Current deployment: Base mainnet.
MIT — see LICENSE.
The canonical hosted service is at https://gvnr.dev. Self-hosted instances are unaffiliated.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.