# Tools

> 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 |

### What call_service returns

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.

```json
{
  "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
    }
  }
}
```
