MCP Integration
DCP exposes your vault to AI agents through @dcprotocol/agent over MCP. Use stdio MCP for local desktop clients and streamable HTTP MCP for URL-based or remote clients.
Keep DCP Desktop running (or a vault reachable). The agent is a thin bridge; the vault does the signing, policy, and approvals. Requires Node.js 22.
Claude Desktop, Cursor, VS Code (stdio)
Add this to the client's MCP config:
{
"mcpServers": {
"dcp": {
"command": "npx",
"args": ["-y", "@dcprotocol/agent", "run", "--mode", "mcp", "--agent", "agent_local_dev"]
}
}
}Installed globally (npm i -g @dcprotocol/agent)? The command dcp-agent works too.
OpenClaw (stdio)
openclaw mcp set dcp '{"command":"npx","args":["-y","@dcprotocol/agent","run","--mode","mcp","--agent","agent_openclaw_local"]}'
openclaw gateway restartHermes (stdio)
mcp_servers:
dcp:
enabled: true
command: "dcp-agent"
args: ["run", "--mode", "mcp", "--agent", "agent_hermes_local"]
tools:
prompts: false
resources: falseThen run /reload-mcp or restart Hermes.
Streamable HTTP MCP
For clients that expect an HTTP MCP URL (and for remote agents):
dcp-agent run --mode http-mcp --agent openclaw_local --host 127.0.0.1 --port 8420
# endpoint:
http://127.0.0.1:8420/mcpThe HTTP MCP endpoint binds to
127.0.0.1 by default. Only expose it beyond loopback through the DCP relay (remote-agent flow). Never bind it to a public interface.Tools
Every agent sees the same 14 tools. Sensitive ones (write, sign, transfer, swap) go through budget + approval on your device.
Data
| Tool | What it does |
|---|---|
vault_read | Read an approved data record (e.g. identity.email). |
vault_write | Store a data record in the vault. |
vault_scope_guide | Return the canonical DCP scope names. |
Wallet reads (no approval)
| Tool | What it does |
|---|---|
vault_get_address | Get the user's Solana public address. |
vault_get_balances | Read SOL and SPL token balances (e.g. USDC). |
vault_get_tx_history | List recent transaction signatures. |
vault_get_tx_status | Check on-chain status of a transaction by signature. |
vault_search_tokens | Search the Jupiter token list by symbol, name, or mint. |
vault_budget_check | Check a proposed amount against the user's budget policy. |
Wallet actions & signing (approval + budget)
| Tool | What it does |
|---|---|
vault_transfer | Send SOL or an SPL token to an address. |
vault_swap | Swap one Solana token for another via Jupiter. |
vault_sign_tx | Sign an unsigned Solana transaction. |
vault_sign_message | Sign a wallet message. |
vault_sign_x402 | Sign a Solana x402 payment payload. |
Exact inputs and outputs for each tool are in the MCP Tools Reference.
Canonical data scopes
- Identity:
identity.name,identity.email,identity.phone - Address:
address.home - API keys:
credentials.api.openai,credentials.api.anthropic,credentials.api.github
Call vault_scope_guide for the authoritative, current list.
Try it
What is my Solana wallet address from DCP?
What is my email from DCP?
What are my token balances?
Send 0.001 SOL to <address>
Swap 5 USDC to SOL