Alpaca MCP Server
OFFICIAL SERVERTrade and pull market data through an Alpaca brokerage account: stocks, ETFs, options and crypto
Crypto exchange and prediction market data, balances and opt-in trading through the ccxt library
Official · ccxt TypeScript Local · stdio Finance and payments
52 popularity score ★ 45k ↓ 571/wk
Opens the app, which asks before it adds the server.
claude mcp add ccxt -- npx -y ccxt-mcp{
"mcpServers": {
"ccxt": {
"command": "npx",
"args": [
"-y",
"ccxt-mcp"
]
}
}
}{
"mcpServers": {
"ccxt": {
"command": "npx",
"args": [
"-y",
"ccxt-mcp"
]
}
}
}{
"servers": {
"ccxt": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"ccxt-mcp"
]
}
}
}[mcp_servers.ccxt]
command = "npx"
args = ["-y", "ccxt-mcp"]gemini mcp add --scope user ccxt npx -- -y ccxt-mcpCCXT_MCP_CONFIG |
Optional: Path to a config.json with accounts and tier switches, instead of the default per-OS location. |
|---|---|
CCXT_MCP_EXCHANGE |
Optional: Exchange id for a single account named default. |
CCXT_MCP_APIKEY |
Optional: API key for the default account. |
CCXT_MCP_SECRET |
Optional: API secret for the default account. |
CCXT_MCP_SANDBOX |
Optional: Use the exchange's sandbox/testnet for the default account. |
CCXT_MCP_TRADING |
Optional: Trading switch for the default account. |
BINANCE_APIKEY |
Optional: Example of the <EXCHANGEID>_<CREDENTIAL> pattern that fills missing credentials per exchange (also e.g. BINANCE_SECRET, OKX_PASSWORD). |
The CCXT MCP server is the MCP front end the ccxt maintainers ship from their own repository. It wraps the ccxt unified API, so one set of tools covers more than 100 cryptocurrency exchanges plus prediction markets such as Polymarket. It runs on your own machine over stdio and talks directly to each exchange.
With no setup it serves public market data: exchange and market listings, tickers, order books, candles (OHLCV), recent trades and prediction-market events, plus read-only access to any unified fetch method or raw GET endpoint. Live WebSocket streams can be opened in the background and read later, with an option to block until the next update instead of polling.
Adding an exchange account to its config file unlocks private reads: balances, open and past orders, your own trades and positions. Order placement, leverage and margin changes, withdrawals and transfers, and raw write endpoints are separate tiers that stay off until switched on per account in that file. Plain trading: true works only on sandbox or demo accounts; live trading needs the value "live" and a per-order dollar cap you choose. Every write is shown for confirmation first, checked against market limits and your caps, and logged to an append-only journal.
| Runtime | Node.js 18+ |
|---|
Node.js 18 or later. Public market data needs nothing else. Private data and trading need an account on the chosen exchange and its API credentials (or a wallet address and private key for Polymarket), written to the server's config.json or passed as environment variables.
Trading, funds movement and raw write endpoints are off by default, and no tool can switch them on: only the config file can. Plain trading: true only trades on sandbox or demo accounts. List results are capped and paginated, and the raw exchange payload is dropped by default. Some exchanges block cloud, VPN or US IP addresses (HTTP 451), so a proxy may be needed. The first call on a large exchange can take seconds while markets load; they are then cached for 24 hours. Idle live streams stop after 10 minutes.
It suits developers and traders who want an assistant to read crypto market data across many exchanges from one place, and those who want it to place orders under caps they set themselves, starting on a testnet. Because it is published by the ccxt project and runs locally, keys never pass through a hosted service. If you only need one exchange's own tooling, or prefer that nothing on your machine can trade, run it without accounts or with keys that have trading disabled.
list_exchangesdescribe_exchangedescribe_methodsearch_marketsget_tickersget_orderbookget_ohlcvget_tradessearch_eventscall_read_methodcall_implicit_getget_safety_statuswatch_subscribewatch_readwatch_unsubscribewatch_listlist_accountsget_balanceget_ordersget_my_tradesget_positionscreate_orderedit_ordercancel_ordercancel_all_ordersset_leverageset_margin_modecall_write_methodwithdrawtransferget_deposit_addresscall_implicit_write