canonical
Get started
MCP native

The wallet isan MCP server.

Not a plugin, not a wrapper — the daemon ships a Model Context Protocol surface out of the box. Anything that speaks MCP can work with your wallet the moment you hand it a token.

Why MCP

One protocol instead of custom SDKs.

MCP is the standard AI tools already speak — Claude, Cursor, and a fast-growing list of agent frameworks. Because the wallet exposes its surface as MCP tools and resources, there is no glue code to write and no SDK to maintain. Configure once, and every MCP client on your machine can see the wallet.

What's exposed

70+ tools, each behind a permission.

The MCP surface is generated from the same contract as the command line — status, accounts, proposals, reviews, history, chains, and more. What a given agent can actually call is decided by its token: read-only by default, propose if you allow it, approve and execute reserved for people.

the shape of a session
agent → wallet_get_status            ✓ allowed (read)
agent → wallet_create_transaction_proposal   ✓ allowed (propose)
agent → wallet_approve_proposal      ✗ refused — humans only
you   → canonicalwallet proposal approve --id <id>   ✓
Live state, not polling

Resources and subscriptions built in.

Agents can read wallet state as resources (wallet://status, wallet://inbox/me, wallet://proposal/{id}/review) and subscribe to change events — so a monitoring agent reacts to a new proposal in your inbox instead of hammering the API.