io.github.codespar/mcp-coinbase-cdp
io.github.codespar/mcp-coinbase-cdp · 273 stars · TypeScript · MIT
MCP server MCP server for Coinbase Developer Platform (CDP) — Trading, Wallets, Payments under one CDP key
Install
The repo has no one-line install. Follow its README.
Published as
- npm
@codespar/mcp-coinbase-cdpstdio
From the server's entry in the official MCP Registry.
Configuration
| Name | Set as | What it is |
|---|---|---|
COINBASE_CDP_KEY_NAMERequired | Env var | CDP key id of the form organizations/<org>/apiKeys/<id>. Mint at https://portal.cdp.coinbase.com. |
COINBASE_CDP_PRIVATE_KEYRequired · Secret | Env var | PEM-encoded ECDSA P-256 private key downloaded once at mint time from https://portal.cdp.coinbase.com. Pass the full PEM including BEGIN/END lines. |
Files
@codespar/mcp-coinbase-cdp
MCP server for the Coinbase Developer Platform (CDP) — single npm package covering three CDP product surfaces under one key:
- Trading — onchain swap / trade API
- Wallets — Smart / Embedded / MPC wallet primitives
- Payments — onchain outbound payment infrastructure
All three live on the same CDP account, share one ES256 JWT-signed key, and share one base URL (https://api.cdp.coinbase.com) — so they ship as one package, not three.
Positioning vs the rest of the catalog
| Server | Coinbase surface | Auth |
|---|---|---|
@codespar/mcp-coinbase |
Advanced Trade exchange (legacy retail) | HMAC API keys (CB-ACCESS-*) |
@codespar/mcp-coinbase-commerce |
Commerce merchant gateway (accept BTC/ETH/USDC at checkout) | API key (X-CC-Api-Key) |
@codespar/mcp-coinbase-cdp |
Developer Platform (Trading + Wallets + Payments) | ES256 JWT (this package) |
Each surface has a separate API host, a separate key type, and a separate dashboard — they do not share credentials. Mint the right key for the surface you want.
Tools (15)
Trading (4)
| Tool | Purpose |
|---|---|
list_quotes |
List recent swap quotes minted under the authenticated CDP account. |
create_swap |
Create an onchain swap between two assets. |
get_swap |
Get a single swap by id — full status, executed amounts, gas, tx hash. |
cancel_swap |
Cancel a pending swap before it lands onchain. |
Wallets (7)
| Tool | Purpose |
|---|---|
create_wallet |
Create a new wallet (smart / embedded / MPC). |
list_wallets |
List wallets under the authenticated CDP account. |
get_wallet |
Get a single wallet by id. |
list_balances |
List asset balances across all addresses + networks. |
transfer |
Send a transfer from a wallet to a destination address. |
get_transaction |
Get a single transaction by id. |
list_transactions |
List historical transactions for a wallet. |
Payments (4)
| Tool | Purpose |
|---|---|
create_payment |
Create an onchain payment (outbound transfer to a payee). |
list_payments |
List historical payments. |
get_payment |
Get a single payment by id. |
cancel_payment |
Cancel a pending payment before it lands onchain. |
Install
npm install -g @codespar/mcp-coinbase-cdp
Environment
COINBASE_CDP_KEY_NAME="organizations/<org>/apiKeys/<id>" COINBASE_CDP_PRIVATE_KEY="-----BEGIN EC PRIVATE KEY----- ... -----END EC PRIVATE KEY-----"
Mint the key (and download the PEM once — it is not recoverable later) at https://portal.cdp.coinbase.com. The same key authenticates Trading, Wallets, and Payments.
Important — the PEM must be the full multi-line block including
BEGIN/ENDlines. When supplying via shell env, wrap in double quotes and preserve newlines (or use$'...'/ a.envfile).
Authentication
CDP signs every request with a fresh ES256 JWT in the Authorization: Bearer … header.
JWT claims (per request):
| Claim | Value |
|---|---|
sub |
COINBASE_CDP_KEY_NAME |
iss |
"cdp" |
aud |
["cdp_service"] |
nbf |
now (unix seconds) |
exp |
now + 120 |
uri |
"<METHOD> api.cdp.coinbase.com<path>" (path includes any query string) |
JWT header:
| Field | Value |
|---|---|
alg |
"ES256" |
typ |
"JWT" |
kid |
COINBASE_CDP_KEY_NAME |
nonce |
random 16-byte hex (per request) |
Signed with the ECDSA P-256 private key from COINBASE_CDP_PRIVATE_KEY. The PEM is imported once at startup and cached — only the JWT is minted per request.
Run
# stdio (default — for Claude Desktop, Cursor, etc.) npx @codespar/mcp-coinbase-cdp # HTTP (for server-to-server testing) MCP_HTTP=true MCP_PORT=3000 npx @codespar/mcp-coinbase-cdp
Enterprise
Need governance, budget limits, and audit trails for agent-driven onchain transactions? CodeSpar Enterprise adds policy engine, payment routing, and compliance templates on top of these MCP servers.
License
MIT
Facts
- Kind
- MCP server
- Group
- Uncategorized
- Stars
- 273
- License
- MIT
- Language
- TypeScript
- Last push
- 2026-09-27
- Forks
- 50
- MCP Registry
- io.github.codespar/mcp-coinbase-cdp
- Homepage
- codespar.dev/servers
- Topics
- agentic-commerce, ai-agents, brazil, claude, fintech, latin-america, llm-tools, mcp, model-context-protocol, nfe, open-finance, payments, pix
- 1REAio.github.morluto/reaReverse engineer anything from your terminal or agent with one CLI and MCP server.125.3k
- 2com.browser-use/browser-usecom.browser-use/browser-useControl a real Chrome browser to complete any task: fill forms, extract data, book flights.117.7k
- 3World Monitorapp.worldmonitor/mcpLive markets, conflicts, country risk, chokepoints, energy, and China decision signals. 93 tools.88.3k
- 4Scrapling MCP Serverd4vinci/scrapling🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scraplingdev86.9k
- 5Everythingmodelcontextprotocol/serversThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.85.8k
- 6Fetchmodelcontextprotocol/serversA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.85.8k