MCP

The same port as the API serves the Model Context Protocol over Streamable HTTP at /mcp. Point any MCP client at http://<host>:8080/mcp with the header Authorization: Bearer <DOCKER_MONERO_API_TOKEN>.

Each tool calls the same code as the matching REST endpoint and returns the same JSON, so the behavior and the error codes are the ones in api.md. A failed tool call returns isError with text such as WALLET_NOT_OPEN: the wallet is not open.

Tools

Tool Does
monero_node_info Node height, sync progress, connections, version.
monero_get_block Block header by height or hash, or the latest block.
monero_get_transaction A transaction’s pool or block status and confirmations.
monero_fee_estimate Per-byte fee for each priority.
monero_list_wallets Every wallet and whether it is open.
monero_open_wallet Open a wallet with its password.
monero_close_wallet Save and close a wallet.
monero_wallet_status Open or not, and how far it has synced.
monero_wallet_balance Total and unlocked balance of one account.
monero_wallet_addresses Primary address and subaddresses of one account.
monero_wallet_transfers Transfer history, newest first, paginated.
monero_create_wallet Create a wallet and leave it open. Not in read-only mode.
monero_create_address Create a subaddress. Not in read-only mode.
monero_generate_blocks Mine blocks. Regtest only, not in read-only mode.
monero_transfer Send XMR. Only when both DOCKER_MONERO_ALLOW_TRANSFERS=true and DOCKER_MONERO_MCP_ALLOW_TRANSFERS=true, and never in read-only mode.

Tools that are switched off are not registered at all, so an agent never sees an action it could not take.

Restoring a wallet from a seed or keys is not a tool on purpose: those secrets should not pass through an agent’s context. Use the REST endpoints for that. Mempool statistics (GET /v1/node/mempool) are REST only too, and monero_transfer takes no subaddressIndices.

The tools are registered in internal/pkg/mcp/tools.go. To install the agent skill or the stdio bridge, see agent integrations.