ccxt-mcp-server
Documentation
CCXT MCP Server
This project provides a Model Context Protocol (MCP) server that exposes various functions from the CCXT library as tools for Large Language Models (LLMs).
It allows LLMs to interact with cryptocurrency exchanges for tasks like fetching balances, market data, creating orders, and more, in a standardized and asynchronous way.
This server is built using FastMCP, which simplifies the process of creating MCP servers in Python.
Features
- CCXT Integration: Wraps common CCXT functions for exchange interaction.
- Asynchronous: Built using `asyncio` and `ccxt.async_support` for efficient non-blocking operations.
- Clear Tool Definitions: Uses `typing.Annotated` and `pydantic.Field` for clear parameter descriptions and constraints, making it easier for LLMs (and developers) to understand and use the tools.
- Authentication Handling: Supports API key, secret, and passphrase authentication for private endpoints.
- Public & Private Tools: Provides separate tools for public market data and private account actions.
Installation
1. Clone the repository (if you haven't already):
git clone https://github.com/jcwleo/ccxt-mcp-server.git
cd ccxt-mcp-server2. Create and activate a virtual environment (recommended):
python -m venv .venv
source .venv/bin/activate # On Windows use `.venv\Scripts\activate`3. Install dependencies:
The required libraries are listed in `requirements.txt`. You can install them using `pip` or `uv`.
pip install -r requirements.txtuv pip install -r requirements.txt
# Or, if you prefer uv's environment management:
# uv syncRunning the Server
Once the dependencies are installed, you can run the MCP server directly:
uv run uvicorn mcp_server:appYou should see output indicating the server has started, similar to:
Starting CCXT MCP Server (Async with Annotated Params and Tool Metadata)...
# ... (FastMCP server startup logs)The server will then be available for MCP clients to connect to (typically on a default port managed by FastMCP, unless configured otherwise).
MCP Server Configuration (for MCP Clients)
If you are using an MCP client that requires manual server configuration (like the Claude desktop app), you'll need to provide a configuration similar to the following JSON.
Create a `claude_desktop_config.json` file (or the equivalent for your MCP client) with the following structure:
{
"mcpServers": {
"ccxt-mcp-server": {
"command": "npx",
"args": ["mcp-remote", "http://127.0.0.1:8000/mcp/"]
}
}
}This configuration tells your MCP client how to start and communicate with the CCXT MCP server.
Available MCP Tools
This server exposes the following tools, categorized by whether they require API authentication.
Tools Requiring API Authentication (Private)
- `fetch_account_balance`: Fetches the current account balance.
- `fetch_deposit_address`: Fetches the deposit address for a currency.
- `withdraw_cryptocurrency`: Withdraws cryptocurrency to a specified address.
- `fetch_open_positions`: Fetches open positions (primarily for futures/derivatives).
- `set_trading_leverage`: Sets leverage for a trading symbol (primarily for futures).
- `create_spot_limit_order`: Places a new spot limit order.
- `create_spot_market_order`: Places a new spot market order.
- `create_futures_limit_order`: Places a new futures limit order.
- `create_futures_market_order`: Places a new futures market order.
- `cancel_order`: Cancels an existing open order.
- `fetch_order_history`: Fetches the history of orders (open/closed).
- `fetch_my_trade_history`: Fetches the history of trades executed by the user.
Tools for Public Data (No Authentication Required)
- `fetch_ohlcv`: Fetches historical OHLCV (candlestick) data.
- `fetch_funding_rate`: Fetches the funding rate for a perpetual futures contract.
- `fetch_long_short_ratio`: Fetches the long/short ratio (requires exchange-specific `params`).
- `fetch_option_contract_data`: Fetches market data for an options contract.
- `fetch_market_ticker`: Fetches the latest price ticker data for a symbol.
- `fetch_public_market_trades`: Fetches recent public trades for a symbol.
- `calculate_technical_indicator_tool`: Fetches OHLCV data and calculates a specified technical indicator (e.g., RSI, SMA, EMA, MACD, Bollinger Bands, Stochastic Oscillator, Average True Range (ATR)).
Each tool has detailed parameter descriptions available via the MCP protocol itself, thanks to the use of `Annotated` and `pydantic.Field`.
Usage Notes
- Futures/Options: When using tools related to futures or options (e.g., `fetch_open_positions`, `create_futures_limit_order`, `fetch_funding_rate`), ensure you correctly configure the CCXT client via the `params` argument, specifically passing `{'options': {'defaultType': 'future'}}` (or `'swap'`, `'option'` as needed) if the exchange requires it or doesn't default to the desired market type.
- `fetch_long_short_ratio`: This is not a standard CCXT unified method. You *must* provide the specific exchange method name and its parameters within the `params` argument (e.g., `params={'method_name': 'fapiPublicGetGlobalLongShortAccountRatio', 'method_params': {'symbol': 'BTCUSDT', 'period': '5m'}}` for Binance futures).
- Error Handling: Tools return a dictionary with an `"error"` key if an issue occurs during the CCXT call.
Frequently asked questions
What is ccxt-mcp-server?
ccxt-mcp-server is a Model Context Protocol (MCP) server listed in the TrackMCP directory.
How do I install ccxt-mcp-server?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is ccxt-mcp-server open source?
Yes — it is hosted on GitHub at https://github.com/jcwleo/ccxt-mcp-server and has 4 stars.
Related MCP tools
Damn Vulnerable MCP Server Python-based implementation. Trusted by 1200+ developers. Trusted by 1200+ developers. Trusted by 1200+ developers.
A Model Context Protocol (MCP) server that enables secure interaction with MySQL databases Python-based implementation. Trusted by 900+ developers.
Query MCP enables end-to-end management of Supabase via chat interface: read & write query executions, management API support, automatic migration versioning...
Model Context Protocol with Neo4j Python-based implementation. Trusted by 700+ developers. Trusted by 700+ developers. Trusted by 700+ developers.
An MCP server that provides control over Android devices via adb Python-based implementation. Trusted by 500+ developers.
A Model Context Protocol (MCP) server for PostgreSQL databases with enhanced capabilities for AI agents. Python-based implementation.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP