The six MCP tools, what each returns, and which one spends.
The surface is deliberately small. Every tool an agent can call is a tool that can be prompt-injected into calling, so only one of them moves money.
| Tool | Purpose | Spends |
|---|---|---|
| search_services | Capability search across every configured registry, ranked and explained | No |
| describe_service | Schemas, payment options, trust signals, and a policy preview for one service | No |
| estimate_cost | What one call would cost, and whether policy would allow it | No |
| call_service | Discover, pay, call — returns the result plus a payment summary | Yes |
| get_balance | On-chain balance and remaining budget under every limit | No |
| list_transactions | Spend history with receipts and the rule that decided each one | No |
The upstream result, plus a payment summary: amount, asset, USD value, transaction hash, explorer link, receipt id, and the budget left. A refused call returns the rule that refused it and what to do about it — refusals are answers, not errors.
{
"status": "ok",
"result": {
"city": "Berlin",
"temperature": 17.4
},
"payment": {
"paid": true,
"usd_value": 0.001,
"asset_symbol": "USD₮0",
"network": "eip155:14",
"tx_hash": "0x…",
"receipt_id": "rcpt_…"
},
"budget": {
"remaining_usd": {
"today": 9.94,
"session": 4.9,
"lifetime": 99.9
}
}
}