A Model Context Protocol (MCP) server that provides trading functionality through the CCXT library.
- Fetch ticker data for any symbol
- Get order book data
- View recent trades
- Create orders (market, limit, etc.)
- Cancel orders
- Fetch account balance
- Trading analysis prompts
- Order management guidance
- Testnet support
- Supports any exchange that CCXT supports
- Cached exchange instances for better performance
src/ccxt_mcp/
├── __init__.py # Main server file
├── utils/
│ └── exchange.py # Exchange management with testnet support
├── tools/
│ ├── fetch_ticker.py # Ticker data tool
│ ├── fetch_order_book.py # Order book tool
│ ├── fetch_trades.py # Trades tool
│ ├── create_order.py # Order creation tool
│ ├── cancel_order.py # Order cancellation tool
│ └── fetch_balance.py # Balance fetching tool
└── prompts/
├── trading_analysis.py # Trading analysis prompt
├── order_management.py # Order management prompt
└── testnet_guidance.py # Testnet guidance prompt
These are instructions for Claude Desktop but this mcp server could be used for any MCP Client.
- Download github repo:
git clone https://github.com/pcriadoperez/ccxt-mcp.git
-
Enter folder
cd ccxt-mcp
-
Install mcp server
mcp install run.py
-
Open Claude desktop -> Settings -> Developer -> Edit config
- Add your env variables
- You may have Replace in command you uv location (You can find it running
which uv
) - It should look like the below config
{
"mcpServers": {
"CCXT Trading Server": {
"command": "/Users/pablo/.local/bin/uv",
"args": [
"run",
"--with",
"ccxt",
"--with",
"mcp[cli]",
"mcp",
"run",
"/Users/pablo/github/ccxt-mcp-2/run.py"
],
"env":{
"BINANCE_APIKEY": "BINANCE_APIKEY",
"BINANCE_SECRET": "BINANCE_SECRET"
}
}
}
}
- Close and open claude
- Clone the repository:
git clone https://github.com/pcriadoperez/ccxt-mcp.git
cd ccxt-mcp
- Install dependencies:
uv pip install -e .
- Set up environment variables:
# Copy the example environment file
cp .env.example .env
# Edit .env with your API keys
# Add your exchange API keys in the format:
# {EXCHANGE_ID}_API_KEY=your_api_key
# {EXCHANGE_ID}_SECRET=your_secret
- Run the Dev MCP server:
mcp dev run.py
- Never commit your
.env
file - Use environment variables for API keys
- Consider using a secrets management service for production
- Testnet is recommended for development and testing
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
MIT