
CCXT MCP Server: Setup for Claude Code, Cursor and Other Apps
Lets Claude, Cursor and other assistants read prices and order books on 100+ crypto exchanges and prediction markets, and trade if you switch it on.
CCXT MCP lets your assistant look up prices, order books, candles and prediction market events on more than 100 exchanges. With no setup it serves public market data only. Add exchange API keys in a local config file and it can also read balances, orders and positions.
It is made by the CCXT project and runs on your computer. Trading and withdrawals are off until you turn them on for each account in the config file. Live trading needs the word "live" and an order size cap you set.
Good for
- Traders who want live prices, order books and candles in a chat
- Developers testing trading ideas on exchange testnets
- Researchers comparing markets and prediction events
- Cautious users who want trading and withdrawals off by default
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Client does not support this transport.
Install CCXT MCP
Claude Code
- 1
Copy this prompt.
Add the CCXT MCP server to Claude Code. Run this command: claude mcp add ccxt -- npx -y ccxt-mcp Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Node.js.
Built from the package data we hold. Not yet tested by us.
Tools
Lists the exchanges and prediction markets you can query
Lists every exchange CCXT supports, so the assistant can pick valid exchange names.
Try: “Which exchanges can you query?”
Network ·
list_exchangesShows what one exchange supports
Describes one exchange: its features, limits and which functions it offers.
Try: “What does Kraken support?”
Network ·
describe_exchangeLooks up how a CCXT function works on an exchange
Searches CCXT methods and shows their signatures, per-exchange parameters and links to the docs.
Try: “How do I fetch funding rates on Bybit?”
Read ·
describe_methodFinds trading pairs on an exchange
Searches an exchange's markets so the assistant uses real symbols such as BTC/USDT instead of guessing.
Try: “Find BTC perpetual contracts on Binance.”
Network ·
search_marketsGets current prices for one or more pairs
Fetches the latest price, high, low and volume for the pairs you name.
Try: “What are BTC/USDT and ETH/USDT trading at on Binance?”
Network ·
get_tickersShows the buy and sell orders waiting on a pair
Fetches the order book for a pair, with the best bids and asks.
Try: “Show the top 10 bids and asks for BTC/USDT on OKX.”
Network ·
get_orderbookGets price history as candles
Fetches open, high, low, close and volume candles for a pair over a time range.
Try: “Get hourly candles for ETH/USDT on Binance for the last 24 hours.”
Network ·
get_ohlcvLists recent trades on a pair
Fetches the latest public trades for a pair on an exchange.
Try: “Show the last 50 trades for SOL/USDT on Coinbase.”
Network ·
get_tradesFinds prediction market events
Searches prediction markets such as Polymarket and Kalshi and returns outcome handles you can use in other tools.
Try: “Find prediction markets about the next Fed rate decision.”
Network ·
search_eventsQuotes the best way to convert one asset to another
Quotes the best route to convert an asset at a given size across about 50 exchanges using the CCXT order router. It is a quote only and needs no keys.
Try: “What is the best route to swap 5 ETH to USDC?”
Network ·
fetch_routeRuns any other read-only CCXT lookup
Runs any fetch or load method not covered by a dedicated tool, such as funding rates, ledger or open interest. Only read methods are accepted.
Try: “Fetch the open interest for BTC on Bybit.”
Network ·
call_read_methodCalls a raw GET endpoint on an exchange
Calls an exchange-specific GET endpoint directly, for data the unified tools do not cover.
Try: “Call the exchange's raw status endpoint.”
Network ·
call_implicit_getShows which permissions are switched on
Shows the config file path, the accounts loaded and which tiers (trading, funds, raw writes) are enabled.
Try: “What can this server do right now?”
Read ·
get_safety_statusOpens a live data stream
Opens a background WebSocket stream, such as a ticker, order book or your own orders, that you read with watch_read.
Try: “Start streaming BTC/USDT trades from Binance.”
Network ·
watch_subscribeReads new data from a live stream
Returns the latest updates for a stream you opened with watch_subscribe.
Try: “What has the BTC stream shown since I last asked?”
Read ·
watch_readStops a live data stream
Closes a stream you opened earlier.
Try: “Stop the BTC/USDT stream.”
Network ·
watch_unsubscribeLists your open live streams
Lists the streams currently open.
Try: “Which streams are open?”
Read ·
watch_listLists the exchange accounts you configured
Lists account names from your config file. It never shows keys.
Try: “Which exchange accounts do you have?”
Read ·
list_accountsShows an account's balances
Fetches balances for a named account on its exchange. Needs credentials in the config file.
Try: “What is my balance on binance-main?”
Network ·
get_balanceLists an account's orders
Fetches open or past orders for a named account.
Try: “Show my open orders on binance-main.”
Network ·
get_ordersLists an account's own trades
Fetches your executed trades for a named account.
Try: “Show my last 20 trades on binance-main.”
Network ·
get_my_tradesLists open futures positions
Fetches open positions for a named account.
Try: “What positions do I hold on binance-main?”
Network ·
get_positionsPlaces a buy or sell order
Places an order on a named account. Off until you enable trading in the config file. Live orders show a preview and need confirmation, and respect your caps.
Try: “Buy 0.01 BTC at 60000 on binance-testnet.”
Write ·
create_orderChanges an open order
Edits an existing order with the same preview, confirm and cap checks. Needs trading enabled.
Try: “Move my open BTC order to 61000.”
Write ·
edit_orderCancels one order
Cancels one order. Needs trading enabled.
Try: “Cancel order 12345 on binance-testnet.”
Delete ·
cancel_orderCancels all open orders
Cancels all open orders on an account, optionally for one symbol. Needs trading enabled.
Try: “Cancel all my open ETH orders on binance-testnet.”
Delete ·
cancel_all_ordersSets leverage on a futures market
Changes the leverage for a market on a named account. Needs trading enabled.
Try: “Set 3x leverage on BTC/USDT:USDT.”
Write ·
set_leverageSwitches between cross and isolated margin
Changes the margin mode for a market. Needs trading enabled.
Try: “Switch BTC/USDT:USDT to isolated margin.”
Write ·
set_margin_modeRuns a less common trading action
Runs a vetted long-tail write method such as margin, position or batch-cancel operations. Needs trading enabled.
Try: “Cancel these three orders in one batch.”
Delete ·
call_write_methodExecutes a quoted route across your accounts
Executes a fetch_route result across your accounts. Each order still follows the account's caps, symbol lists and confirmation. Needs trading enabled.
Try: “Execute route abc123.”
Write ·
execute_routeSends funds out to an address
Withdraws funds from an account. Off by default; you must enable funds per account in the config file.
Try: “Withdraw 100 USDT to my saved address.”
Write ·
withdrawMoves funds between accounts or wallets
Makes an internal transfer on an exchange. Off by default; needs funds enabled.
Try: “Transfer 50 USDT from spot to futures.”
Write ·
transferGets a deposit address
Fetches the deposit address for a coin on an account. Needs funds enabled.
Try: “What is my deposit address for USDT on binance-main?”
Network ·
get_deposit_addressCalls a raw POST, PUT or DELETE endpoint
Calls an exchange-specific write endpoint directly, including key management. Off by default; needs raw writes enabled per account.
Try: “Call the exchange's raw endpoint to create a sub-account.”
Delete ·
call_implicit_write
Read from the source code
Permissions
low risk · 4 things to watch
Low risk
On the default install it reads public market data and cannot trade. Keep trading, funds and raw writes off, and use exchange keys without withdrawal rights if you ever add accounts.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only modeHow to turn it on
Watch out for
Trading and withdrawals can move real money
Once you enable them for an account, create_order, withdraw and transfer act on it. Keep them off, use sandbox accounts first, and turn off withdrawal rights on the exchange key. github.com
Keys sit in a plain config file
The README says to chmod 600 the file, and warns that a local agent with file access could read it. Use the host's secret storage and an IP allowlist on the key. github.com
Raw write endpoints can change anything the key allows
call_implicit_write sends raw POST, PUT or DELETE calls, including key management. Leave it off unless you need it. github.com
Unavailable tools still appear in the list
By default every tool is listed and errors if its tier is off. Set hideDisabledTools for a leaner list. github.com
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Turning on read-only | Trading, funds and raw-write tiers are off by default and can only be enabled in the config file. Set settings.hideDisabledTools to true to hide the tools that are not enabled. |
|---|---|
| Talks to | Exchange APIs of the exchanges you query |
| Sign-in and keys | None for public data. Exchange keys live in a local config file (or environment variables) and are never passed through the model. |
Questions
Is the CCXT MCP server official?
Yes. It ships in the CCXT repository and its README calls it the official CCXT MCP server.
Does it need an API key?
No, not for public market data. For balances and orders you add exchange keys to a local config file or environment variables, and the model never sees them.
Can it trade or withdraw funds?
Only if you allow it. Trading, withdrawals and raw writes are off by default and can only be switched on in the config file. Live orders also need a size cap you set and a confirmation.
Can I run it read-only?
Yes. That is the default. Do not enable trading, funds or raw writes, and optionally hide the unused tools with the hideDisabledTools setting.
Does it run locally or hosted?
Locally. It runs on your machine and talks straight to the exchanges. The README says nothing is hosted and your keys never pass through a third-party service.
Which exchanges does it support?
More than 100 exchanges and prediction markets, including Binance, OKX, Polymarket and Kalshi. Ask the assistant to list exchanges for the full set.
How do I add it to Claude Code?
Use the Claude Code command in the install box. It needs Node.js 18 or newer. Accounts are optional and set up afterwards in the config file.
Information
updated Nov 2, 2026
- Publisher
- Official
- Package
ccxt-mcp- Registry
- npm
- Transport
- stdio
- Auth
- API key
- Version
- 0.1.3
- License
- MIT
- Last commit
- Oct 30, 2026
- Open issues
- 257
- Listed in
- Official MCP registry
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 4Hide
- github.com · github.com
- github.com · github.com
- github.com · github.com
- github.com · github.com