The MCP surface is exactly four control tools. They are the stable interface over a catalog that can grow independently:

| Tool | Purpose | Charges money? |
| --- | --- | --- |
| [`discover`](https://scrollport.com/docs/control-tools/discover) | Find a provider-neutral job and its catalog tools. | No |
| [`inspect`](https://scrollport.com/docs/control-tools/inspect) | Read one selected catalog tool's live contract. | No |
| [`run`](https://scrollport.com/docs/control-tools/run) | Execute one catalog tool and settle its charge. | Yes |
| [`wallet`](https://scrollport.com/docs/control-tools/wallet) | Read balance, holds and available spend. | No |

## The normal loop

```text
discover → inspect → run → wallet
```

Use `tool_id` as the canonical identifier. During the compatibility window, `capability_id` is accepted as a deprecated alias where the contract says so, but new calls should use `tool_id`.

## What is not a control tool

Categories, capabilities, providers and catalog tools are catalog data. Connections are a human dashboard surface. Skills are agent-side recipes. None becomes a fifth MCP tool.

Start with [discover](https://scrollport.com/docs/control-tools/discover), or take the complete [first-run guide](https://scrollport.com/docs/guides/first-run).