mcp_approval_pack
Generate the approval prompt and spend policy an agent should show before using a paid or risky tool. Returns maxPayment, seller checks, risk reasons, allowed fields, and what not to send.
What is mcp_approval_pack?
mcp_approval_pack is a paid work product in the MCP Trust category on agenttoll.dev. It costs $0.05 per call, settled in USDC on Base via the x402 payment protocol. No API keys or accounts: your agent inspects the metadata, explains the expected result, caps the spend, calls the tool, and receives structured JSON with a receipt envelope.
Input parameters
Only send these request-body fields. If this block is empty, send {}.
{
"tool_name": "optional tool name",
"route_url": "optional route URL",
"price_usd": "optional number or string",
"task_intent": "optional user task",
"max_payment_usd": "optional number or string",
"tool_schema": "optional tool schema object or JSON string",
"method": "optional HTTP method",
"seller_address": "optional 0x seller wallet"
}
Request body
{
"tool_name": "x402_market_radar",
"route_url": "https://agenttoll.dev/paid/x402/market-radar",
"price_usd": "0.05",
"task_intent": "check x402 market demand",
"max_payment_usd": "0.05",
"tool_schema": {
"name": "x402_market_radar",
"description": "Return an x402 catalog and ranking brief for agent buyers.",
"properties": {
"query_limit": {
"type": "integer"
}
}
},
"seller_address": "0x62a0D3d9DF0dE8804983009949c714EaeAFd87F1"
}
HTTP endpoint
POST JSON to this URL. The first unpaid call returns HTTP 402 with x402 payment requirements; an x402-capable client signs and retries.
https://agenttoll.dev/paid/mcp/approval-pack
MCP call
Connect an MCP client to the endpoint, call tool mcp_approval_pack, and pass the request body as arguments.
https://agenttoll.dev/mcp
MCP paid-tool calls may surface the payment challenge inside the JSON-RPC result instead of as a raw HTTP 402.
What the agent needs to transact
{
"mcp": {
"endpoint": "https://agenttoll.dev/mcp",
"tool": "mcp_approval_pack",
"arguments": {
"tool_name": "x402_market_radar",
"route_url": "https://agenttoll.dev/paid/x402/market-radar",
"price_usd": "0.05",
"task_intent": "check x402 market demand",
"max_payment_usd": "0.05",
"tool_schema": {
"name": "x402_market_radar",
"description": "Return an x402 catalog and ranking brief for agent buyers.",
"properties": {
"query_limit": {
"type": "integer"
}
}
},
"seller_address": "0x62a0D3d9DF0dE8804983009949c714EaeAFd87F1"
}
},
"http": {
"method": "POST",
"url": "https://agenttoll.dev/paid/mcp/approval-pack",
"headers": {
"content-type": "application/json"
},
"body": {
"tool_name": "x402_market_radar",
"route_url": "https://agenttoll.dev/paid/x402/market-radar",
"price_usd": "0.05",
"task_intent": "check x402 market demand",
"max_payment_usd": "0.05",
"tool_schema": {
"name": "x402_market_radar",
"description": "Return an x402 catalog and ranking brief for agent buyers.",
"properties": {
"query_limit": {
"type": "integer"
}
}
},
"seller_address": "0x62a0D3d9DF0dE8804983009949c714EaeAFd87F1"
},
"unpaid_response": "HTTP 402 with x402 payment requirements",
"paid_response": "HTTP 200 JSON with payment-response receipt header"
},
"payment": {
"protocol": "x402",
"scheme": "exact",
"price_usd": "0.05",
"max_payment_usd": "0.05",
"network": "eip155:8453",
"network_name": "Base mainnet",
"asset": "USDC",
"asset_address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"pay_to": "0x62a0D3d9DF0dE8804983009949c714EaeAFd87F1"
},
"expected_result": "JSON approval pack with maxPayment, seller checks, approval prompt, risk reasons, allowed fields, blocked fields, and receipt envelope.",
"approval_prompt": "This AgentToll call costs $0.05 on Base mainnet. Verify payTo 0x62a0D3d9DF0dE8804983009949c714EaeAFd87F1, asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, and maxPayment $0.05 before approving. It returns JSON approval pack with maxPayment, seller checks, approval prompt, risk reasons, allowed fields, blocked fields, and receipt envelope.",
"receipt": "https://agenttoll.dev/receipt/:tx",
"receipt_schema": "https://agenttoll.dev/agenttoll-receipt-v1.md"
}
Agent approval metadata
Use this before asking a user to approve payment. It states the cap, seller wallet, asset, route, and expected result in one buyer contract.
Suggested approval line: This AgentToll call costs $0.05 on Base mainnet. Verify payTo 0x62a0D3d9DF0dE8804983009949c714EaeAFd87F1, asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, and maxPayment $0.05 before approving. It returns JSON approval pack with maxPayment, seller checks, approval prompt, risk reasons, allowed fields, blocked fields, and receipt envelope.
{
"schemaVersion": "agenttoll.buyer_contract.v1",
"service": "agenttoll.dev",
"tool": "mcp_approval_pack",
"category": "MCP Trust",
"method": "POST",
"endpoint": "https://agenttoll.dev/paid/mcp/approval-pack",
"priceUsd": "0.05",
"maxPaymentUsd": "0.05",
"protocol": "x402",
"scheme": "exact",
"network": "eip155:8453",
"networkName": "Base mainnet",
"asset": "USDC",
"assetContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"payTo": "0x62a0D3d9DF0dE8804983009949c714EaeAFd87F1",
"facilitator": "https://api.cdp.coinbase.com/platform/v2/x402",
"requestBody": {
"tool_name": "x402_market_radar",
"route_url": "https://agenttoll.dev/paid/x402/market-radar",
"price_usd": "0.05",
"task_intent": "check x402 market demand",
"max_payment_usd": "0.05",
"tool_schema": {
"name": "x402_market_radar",
"description": "Return an x402 catalog and ranking brief for agent buyers.",
"properties": {
"query_limit": {
"type": "integer"
}
}
},
"seller_address": "0x62a0D3d9DF0dE8804983009949c714EaeAFd87F1"
},
"input": {
"tool_name": "optional tool name",
"route_url": "optional route URL",
"price_usd": "optional number or string",
"task_intent": "optional user task",
"max_payment_usd": "optional number or string",
"tool_schema": "optional tool schema object or JSON string",
"method": "optional HTTP method",
"seller_address": "optional 0x seller wallet"
},
"expectedResult": "JSON approval pack with maxPayment, seller checks, approval prompt, risk reasons, allowed fields, blocked fields, and receipt envelope.",
"verifyBeforePaying": [
"network must equal eip155:8453",
"asset contract must equal 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"payTo must equal 0x62a0D3d9DF0dE8804983009949c714EaeAFd87F1",
"maxPayment must be no more than $0.05",
"resource path must match this endpoint"
],
"receiptSchema": "https://agenttoll.dev/agenttoll-receipt-v1.md"
}
Pricing & payment
Paid JSON responses include agenttoll_receipt with request, result, and payment-term hashes. The receipt lets a user audit what the agent bought after the call. If your buyer runtime exposes a settlement transaction hash, verify it at /receipt/<tx>.
FAQ
How much does mcp_approval_pack cost?
$0.05 per call in USDC on Base. No subscriptions or minimums.
Do I need an API key?
No. Payment is handled by the x402 protocol. Your agent wallet sends USDC on Base, the server verifies the transfer, and returns the data.
Which AI models work with mcp_approval_pack?
Any model that supports MCP — Claude, GPT-4, Gemini, or local models via an MCP client. The tool returns structured JSON that any model can parse.
How do I verify my payment?
After settlement, check /receipt/<tx> for on-chain verification via Basescan. Every payment is a real USDC transfer to 0x62a0D3d9…
