/ccxt-mcp
Official CCXT MCP (Model Context Protocol) server — connect an AI agent to 100+ cryptocurrency exchanges and prediction markets for market data, balances, and opt-in trading. Covers installing the server in Claude Desktop/Code, Cursor, VS Code and other MCP hosts; configuring
Claude Code
$ npx -y skills add ccxt/ccxt --skill ccxt-mcp --agent claude-code
Codex
$ npx skills add ccxt/ccxt --skill ccxt-mcp -a codex -y
Cursor
$ npx skills add ccxt/ccxt --skill ccxt-mcp -a cursor -y
Gemini CLI
$ npx skills add ccxt/ccxt --skill ccxt-mcp -a gemini-cli -y
GitHub Copilot
$ npx skills add ccxt/ccxt --skill ccxt-mcp -a github-copilot -y
OpenCode
$ npx skills add ccxt/ccxt --skill ccxt-mcp -a opencode -y
Windsurf
$ npx skills add ccxt/ccxt --skill ccxt-mcp -a windsurf -y
SKILL.md
ccxt-mcp.SKILL.mdname: ccxt-mcp
description: Official CCXT MCP (Model Context Protocol) server — connect an AI agent to 100+ cryptocurrency exchanges and prediction markets for market data, balances, and opt-in trading. Covers installing the server in Claude Desktop/Code, Cursor, VS Code and other MCP hosts; configuring named accounts and API keys (kept local, never seen by the model); the capability tiers and safety rails; sandbox/testnet trading; and how to drive the tools. Use when the user wants an agent to fetch prices/order books/candles, check balances/orders/positions, place or cancel orders, or explore prediction markets across exchanges.
CCXT MCP Server
`ccxt-mcp` is the official CCXT Model Context Protocol server. It runs **locally over stdio** and lets an AI agent (Claude Desktop/Code, Cursor, VS Code, Windsurf, …) use the unified CCXT API across 100+ crypto exchanges and prediction markets.
- npm: `ccxt-mcp` · runs via `npx -y ccxt-mcp` · source: https://github.com/ccxt/ccxt/tree/master/mcp
- Full docs: https://docs.ccxt.com/docs/mcp
Key property: **your API keys stay on your machine and the model never sees them.** Tools reference accounts by a name you choose; credentials are never tool parameters and never appear in results.
Install
Requires Node.js ≥ 18. Pick the host:
- **Claude Code**: `claude mcp add ccxt -- npx -y ccxt-mcp`
- **Claude Desktop** / **Cursor** / **Windsurf** — add to the host's MCP config:
{ "mcpServers": { "ccxt": { "command": "npx", "args": ["-y", "ccxt-mcp"] } } }- **VS Code** (`.vscode/mcp.json`) — use `inputs` for encrypted key storage:
{
"inputs": [
{ "id": "binance-key", "type": "promptString", "password": true },
{ "id": "binance-secret", "type": "promptString", "password": true }
],
"servers": { "ccxt": {
"command": "npx", "args": ["-y", "ccxt-mcp"],
"env": { "BINANCE_APIKEY": "${input:binance-key}", "BINANCE_SECRET": "${input:binance-secret}" }
} }
}- **Non-technical / Claude Desktop**: a signed `.mcpb` desktop-extension bundle installs by drag-and-drop and stores keys in the OS keychain.
With no configuration the server already serves **public market data on every exchange** — a useful install on its own.
Configure accounts
To use private data or trading, create the config file (its path is shown by the `get_safety_status` tool):
- macOS: `~/Library/Application Support/ccxt-mcp/config.json`
- Linux: `~/.config/ccxt-mcp/config.json`
- Windows: `%APPDATA%\ccxt-mcp\config.json`
- Or set `CCXT_MCP_CONFIG` to any path.
{
"accounts": {
"binance-testnet": {
"exchange": "binance",
"apiKey": "…", "secret": "…",
"sandbox": true, // testnet — trades fake money; recommended first stop
"trading": true // "true" enables trading on SANDBOX/DEMO accounts only
},
"binance-main": {
"exchange": "binance",
"apiKey": "…", "secret": "…",
"trading": "live", // live trading requires the explicit string "live"…
"maxOrderValue": 250, // …and a per-order USD cap you author (null = opt out)
"maxDailyValue": 1000, // optional rolling-24h cap
"allowedSymbols": ["BTC/USDT", "ETH/*"], // optional strict allowlist
"confirm": "live" // always (every order) | live (default: only LIVE accounts; sandbox/demo execute WITHOUT a confirm step) | never
},
"polymarket-main": { "exchange": "polymarket", "walletAddress": "0x…", "privateKey": "0x…" }
}
}Any credential the exchange needs works (`apiKey`, `secret`, `password`, `uid`, `walletAddress`, `privateKey`, …), plus `sandbox`/`demo`, `defaultType`, `options`, and `prediction: true` for exchanges that exist in both crypto and prediction namespaces (e.g. hyperliquid). `chmod 600` the file. Env vars also work: `<EXCHANGEID>_<CREDENTIAL>` (e.g. `BINANCE_APIKEY`, `OKX_PASSWORD`) fill missing fields, and `CCXT_MCP_EXCHANGE`/`CCXT_MCP_APIKEY`/`CCXT_MCP_SECRET`/`CCXT_MCP_SANDBOX`/`CCXT_MCP_TRADING` define a single account named `default`. The `accounts` map holds as many exchanges/accounts as you want — one entry each.
On **Claude Desktop** the `.mcpb` install form has fields for a single exchange plus a **Config file** picker — point that at a `config.json` (as above) to configure multiple exchanges, or create the file at the default path and leave the form blank.
Capability tiers (opt-in, off by default)
| Tier | What it enables | How to turn it on | |---|---|---| | market | tickers, order books, OHLCV, trades, market search, prediction events, raw GET endpoints | on by default, no keys | | read | balances, orders, own trades, positions | configure an account | | trading | create/edit/cancel orders, leverage, margin | per-account `"trading": true` (sandbox) or `"live"` | | funds | withdraw, transfer, deposit addresses | per-account `"funds": true` or `"live"` | | implicitWrites | raw POST/PUT/DELETE endpoints | per-account `"implicitWrites": true` |
Tiers can **only** be enabled by the user editing the config file — never from the conversation, and there is no tool that edits config. Disabled tiers do not appear in the tool list. `"trading": true` works on **sandbox/demo accounts only**; live trading requires typing `"trading": "live"` plus a `maxOrderValue`. Order-placing tools preview and require confirmation, validate against market limits and your caps, and journal every mutating call.
Sandbox / testnet
Set `"sandbox": true` on an account to trade fake money on the exchange testnet — `create_order` then goes to the testnet host (e.g. `testnet.binance.vision`), never production. Use **testnet keys** from the exchange's testnet portal (live keys won't authenticate against testnet). This is the recommended way to try trading.
Using the tools (what the agent calls)
- **Discovery**: `list_exchanges`, `describe_exchange`, `describe_method` (search method names / signatures / per-exchange pa
Read more
name: ccxt-mcp description: Official CCXT MCP (Model Context Protocol) server — connect an AI agent to 100+ cryptocurrency exchanges and prediction markets for market data, balances, and opt-in trading. Covers installing the server in Claude Desktop/Code, Cursor, VS Code and other MCP hosts; configuring named accounts and API keys (kept local, never seen by the model); the capability tiers and safety rails; sandbox/testnet trading; and how to drive the tools. Use when the user wants an agent to fetch prices/order books/candles, check balances/orders/positions, place or cancel orders, or explore prediction markets across exchanges.
CCXT MCP Server
`ccxt-mcp` is the official CCXT Model Context Protocol server. It runs **locally over stdio** and lets an AI agent (Claude Desktop/Code, Cursor, VS Code, Windsurf, …) use the unified CCXT API across 100+ crypto exchanges and prediction markets.
- npm: `ccxt-mcp` · runs via `npx -y ccxt-mcp` · source: https://github.com/ccxt/ccxt/tree/master/mcp
- Full docs: https://docs.ccxt.com/docs/mcp
Key property: **your API keys stay on your machine and the model never sees them.** Tools reference accounts by a name you choose; credentials are never tool parameters and never appear in results.
Install
Requires Node.js ≥ 18. Pick the host:
- **Claude Code**: `claude mcp add ccxt -- npx -y ccxt-mcp`
- **Claude Desktop** / **Cursor** / **Windsurf** — add to the host's MCP config:
{ "mcpServers": { "ccxt": { "command": "npx", "args": ["-y", "ccxt-mcp"] } } }- **VS Code** (`.vscode/mcp.json`) — use `inputs` for encrypted key storage:
{
"inputs": [
{ "id": "binance-key", "type": "promptString", "password": true },
{ "id": "binance-secret", "type": "promptString", "password": true }
],
"servers": { "ccxt": {
"command": "npx", "args": ["-y", "ccxt-mcp"],
"env": { "BINANCE_APIKEY": "${input:binance-key}", "BINANCE_SECRET": "${input:binance-secret}" }
} }
}- **Non-technical / Claude Desktop**: a signed `.mcpb` desktop-extension bundle installs by drag-and-drop and stores keys in the OS keychain.
With no configuration the server already serves **public market data on every exchange** — a useful install on its own.
Configure accounts
To use private data or trading, create the config file (its path is shown by the `get_safety_status` tool):
- macOS: `~/Library/Application Support/ccxt-mcp/config.json`
- Linux: `~/.config/ccxt-mcp/config.json`
- Windows: `%APPDATA%\ccxt-mcp\config.json`
- Or set `CCXT_MCP_CONFIG` to any path.
{
"accounts": {
"binance-testnet": {
"exchange": "binance",
"apiKey": "…", "secret": "…",
"sandbox": true, // testnet — trades fake money; recommended first stop
"trading": true // "true" enables trading on SANDBOX/DEMO accounts only
},
"binance-main": {
"exchange": "binance",
"apiKey": "…", "secret": "…",
"trading": "live", // live trading requires the explicit string "live"…
"maxOrderValue": 250, // …and a per-order USD cap you author (null = opt out)
"maxDailyValue": 1000, // optional rolling-24h cap
"allowedSymbols": ["BTC/USDT", "ETH/*"], // optional strict allowlist
"confirm": "live" // always (every order) | live (default: only LIVE accounts; sandbox/demo execute WITHOUT a confirm step) | never
},
"polymarket-main": { "exchange": "polymarket", "walletAddress": "0x…", "privateKey": "0x…" }
}
}Any credential the exchange needs works (`apiKey`, `secret`, `password`, `uid`, `walletAddress`, `privateKey`, …), plus `sandbox`/`demo`, `defaultType`, `options`, and `prediction: true` for exchanges that exist in both crypto and prediction namespaces (e.g. hyperliquid). `chmod 600` the file. Env vars also work: `<EXCHANGEID>_<CREDENTIAL>` (e.g. `BINANCE_APIKEY`, `OKX_PASSWORD`) fill missing fields, and `CCXT_MCP_EXCHANGE`/`CCXT_MCP_APIKEY`/`CCXT_MCP_SECRET`/`CCXT_MCP_SANDBOX`/`CCXT_MCP_TRADING` define a single account named `default`. The `accounts` map holds as many exchanges/accounts as you want — one entry each.
On **Claude Desktop** the `.mcpb` install form has fields for a single exchange plus a **Config file** picker — point that at a `config.json` (as above) to configure multiple exchanges, or create the file at the default path and leave the form blank.
Capability tiers (opt-in, off by default)
| Tier | What it enables | How to turn it on | |---|---|---| | market | tickers, order books, OHLCV, trades, market search, prediction events, raw GET endpoints | on by default, no keys | | read | balances, orders, own trades, positions | configure an account | | trading | create/edit/cancel orders, leverage, margin | per-account `"trading": true` (sandbox) or `"live"` | | funds | withdraw, transfer, deposit addresses | per-account `"funds": true` or `"live"` | | implicitWrites | raw POST/PUT/DELETE endpoints | per-account `"implicitWrites": true` |
Tiers can **only** be enabled by the user editing the config file — never from the conversation, and there is no tool that edits config. Disabled tiers do not appear in the tool list. `"trading": true` works on **sandbox/demo accounts only**; live trading requires typing `"trading": "live"` plus a `maxOrderValue`. Order-placing tools preview and require confirmation, validate against market limits and your caps, and journal every mutating call.
Sandbox / testnet
Set `"sandbox": true` on an account to trade fake money on the exchange testnet — `create_order` then goes to the testnet host (e.g. `testnet.binance.vision`), never production. Use **testnet keys** from the exchange's testnet portal (live keys won't authenticate against testnet). This is the recommended way to try trading.
Using the tools (what the agent calls)
- **Discovery**: `list_exchanges`, `describe_exchange`, `describe_method` (search method names / signatures / per-exchange pa
A crypto trading API with more than 100 exchanges and prediction markets in JavaScript / TypeScript / Python / C# / PHP / Go / Java / Rust.
Other skills on ccxt.
More skills from other plugins.
3-statement-model
Complete, populate and fill out 3-statement financial model templates (Income Statement, Balance Sheet, Cash Flow Statement) .…
3-statement-model
Complete, populate and fill out 3-statement financial model templates (Income Statement, Balance Sheet, Cash Flow Statement) .…
eli5
Explain a topic like I'm a 5 year old. Use when the user types /eli5 <topic> or asks for a dead-simple picture explainer of how…
Questions about ccxt-mcp.
- Which coding agents can use ccxt-mcp?
- ccxt-mcp installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

