MCP Tools Reference
Integrations should call DCP through MCP. The HTTP endpoint is streamable HTTP MCP; it is not a general REST API.
Endpoint
dcp-agent run --mode http-mcp --host 127.0.0.1 --port 8420
http://127.0.0.1:8420/mcpInitialize With curl
curl -i -sS \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-X POST http://127.0.0.1:8420/mcp \
--data '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"dcp-client","version":"1.0.0"}}}'Copy the returned mcp-session-id.
List Tools
curl -i -sS \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'mcp-session-id: PASTE_SESSION_ID_HERE' \
-X POST http://127.0.0.1:8420/mcp \
--data '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'Tools
| Tool | Required input | Optional input |
|---|---|---|
vault_get_address | chain: "solana" | |
vault_budget_check | amount, currency | chain: "solana" |
vault_scope_guide | ||
vault_read | scope | fields |
vault_write | scope, data | |
vault_sign_tx | chain: "solana", unsigned_tx | description, amount, currency, destination, idempotency_key |
vault_sign_message | chain: "solana", message | encoding, description |
vault_sign_x402 | network: "solana", payload | amount, currency, recipient, purpose |
vault_transfer | chain: "solana", to, amount | currency, mint, decimals, confirm, description, idempotency_key |
vault_swap | chain: "solana", from_token, to_token, amount | slippage_bps, from_decimals, to_decimals, confirm, description, idempotency_key |
vault_get_balances | chain: "solana" | |
vault_get_tx_history | limit, before, chain | |
vault_get_tx_status | signature | chain: "solana" |
vault_search_tokens | query | limit |
Input Rules
chainandnetworkare currentlysolana.unsigned_txis an unsigned Solana transaction encoded as base64.payloadforvault_sign_x402is the exact x402 payment payload encoded as base64.encodingforvault_sign_messageisutf8orbase64. Useutf8unless the challenge is already base64.currencycan beSOL,USDC,USDT, or1LY.- 1LY SPL mint:
Aih3sbAbu39Yn7jB2Qf4btZ5eWtDGQJH2gMfC4qdBAGS. - For
vault_transfer,tois the destination Solana address; usecurrencyfor known tokens ormint+decimalsfor an arbitrary SPL token. - For
vault_swap,from_token/to_tokenacceptSOL, a symbol likeUSDC, or a mint address;slippage_bpsdefaults to 50. confirm(transfer/swap) isconfirmed(default, waits for on-chain confirmation) orsubmitted(returns on broadcast).- Pass a stable
idempotency_keyonvault_transfer/vault_swapto make retries safe (no accidental double-spend). - Use exact scopes such as
identity.name,identity.email, andcredentials.api.openai.
Approval Behavior
Wallet reads (address, balances, history, status, token search) return without a prompt. Writes, transaction signing, message signing, x402 signing, transfers, and swaps go through budget checks and can require approval in DCP Desktop or Telegram. Each approval is bound to the exact amount and destination you see; an approval for one transaction cannot be reused for a different one. Requests within trusted policy and budget limits may complete without another prompt.