mcp

mcp hosts a Model Context Protocol (MCP) server that exposes the daemon RPC as typed tool calls over stdio. Agents invoke tools with structured JSON parameters and receive raw proto-JSON responses from the daemon. The parent mcp command is a group; the work happens in mcp serve.

Flags

mcp itself takes no bespoke flags; it dispatches to mcp serve below. The subcommand accepts --help and the global connection flags (--rpcserver, --tlscertpath, --no-tls).

Example

mcp alone prints usage and exits; the subcommand does the work:

Terminal
wavecli mcp serve

Subcommands

mcp serve

Starts an MCP server on stdio that exposes each daemon RPC as a typed tool call. The server runs until the client disconnects. It registers the everyday wallet-verb tools first (so an agent listing tools sees the day-to-day surface first), then the legacy daemon tools.

mcp serve takes no bespoke flags beyond the global connection flags; it reuses the same TLS, --no-tls, and --tlscertpath handling as every other command so the MCP surface honors the daemon connection settings.

Terminal
wavecli mcp serve

Registered tools include the everyday balance, getinfo, and send surfaces plus the advanced ark.* namespace (for example ark.vtxos.list, ark.vtxos.refresh, ark.vtxos.leave, ark.oor.receive, ark.send.inround, ark.send.oor).

ark.vtxos.refresh carries the same fee-consent contract as the CLI. Since there’s no interactive prompt to fall back to, a real refresh requires yes: true; without it the tool returns an error telling the agent to call dry_run: true first for the itemized advisory estimate, then re-call with yes: true to acknowledge the fee and queue.

The raw send tools (ark.send.inround, ark.send.oor) carry the same money-movement gate as their CLI counterparts: a real send requires yes: true, while dry_run: true previews stay ungated. Without either the tool returns an actionable error instead of dispatching funds.