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/mcp

Initialize 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

ToolRequired inputOptional input
vault_get_addresschain: "solana"
vault_budget_checkamount, currencychain: "solana"
vault_scope_guide
vault_readscopefields
vault_writescope, data
vault_sign_txchain: "solana", unsigned_txdescription, amount, currency, destination, idempotency_key
vault_sign_messagechain: "solana", messageencoding, description
vault_sign_x402network: "solana", payloadamount, currency, recipient, purpose

Input Rules

  • chain and network are currently solana.
  • unsigned_tx is an unsigned Solana transaction encoded as base64.
  • payload for vault_sign_x402 is the exact x402 payment payload encoded as base64.
  • encoding for vault_sign_message is utf8 or base64. Use utf8 unless the challenge is already base64.
  • currency can be SOL, USDC, USDT, or 1LY.
  • 1LY SPL mint: Aih3sbAbu39Yn7jB2Qf4btZ5eWtDGQJH2gMfC4qdBAGS.
  • Use exact scopes such as identity.name, identity.email, and credentials.api.openai.

Approval Behavior

Reads, writes, message signing, transaction signing, and x402 signing can require approval. The user can approve in DCP Desktop or Telegram. Requests that fit trusted policy and budget limits may complete without another prompt.