Skip to main content
Glama

MCP Server CCXT

by carlosatta
TOOLS.md16.2 kB
# MCP CCXT Tool Reference Complete reference for all 23 tools available in the MCP CCXT Web Server. --- ## Public Tools (13) These tools do not require API credentials and can be used by anyone. ### 1. list_exchanges **Description**: List all available cryptocurrency exchanges supported by CCXT. **Parameters**: | Name | Type | Required | Description | |------|------|----------|-------------| | certified | boolean | No | Filter for CCXT certified exchanges only | **Example**: ```json { "name": "list_exchanges", "arguments": { "certified": false } } ``` **Response**: ```json { "count": 105, "exchanges": ["binance", "coinbase", "kraken", ...], "configured": ["binance", "coinbase", "kraken", "bitfinex", "bybit"] } ``` --- ### 2. get_ticker **Description**: Get current ticker information for a trading pair. **Parameters**: | Name | Type | Required | Description | |------|------|----------|-------------| | symbol | string | Yes | Trading symbol (e.g. "BTC/USDT") | | exchange | string | No | Exchange to use (default from env) | **Example**: ```json { "name": "get_ticker", "arguments": { "symbol": "BTC/USDT", "exchange": "binance" } } ``` **Response**: ```json { "exchange": "binance", "symbol": "BTC/USDT", "timestamp": 1707820800000, "datetime": "2025-10-22T14:00:00.000Z", "last": 108295.31, "bid": 108295.31, "ask": 108295.32, "high": 114000, "low": 106708.18, "baseVolume": 39502.53, "quoteVolume": 4291234567.89 } ``` --- ### 3. batch_get_tickers **Description**: Get ticker information for multiple trading pairs at once. **Parameters**: | Name | Type | Required | Description | |------|------|----------|-------------| | symbols | array | Yes | Array of trading symbols | | exchange | string | No | Exchange to use | **Example**: ```json { "name": "batch_get_tickers", "arguments": { "symbols": ["BTC/USDT", "ETH/USDT", "BNB/USDT"] } } ``` **Response**: ```json { "exchange": "binance", "count": 3, "tickers": { "BTC/USDT": { "last": 108442.61, "bid": 108442.60, "ask": 108442.62, "high": 114000, "low": 106708.18, "volume": 39502.53, "timestamp": 1707820800000 }, "ETH/USDT": { ... }, "BNB/USDT": { ... } } } ``` --- ### 4. get_orderbook **Description**: Get market order book (bids and asks) for a trading pair. **Parameters**: | Name | Type | Required | Description | |------|------|----------|-------------| | symbol | string | Yes | Trading symbol | | limit | number | No | Number of orders (default: 20) | | exchange | string | No | Exchange to use | **Example**: ```json { "name": "get_orderbook", "arguments": { "symbol": "BTC/USDT", "limit": 5 } } ``` **Response**: ```json { "exchange": "binance", "symbol": "BTC/USDT", "timestamp": 1707820800000, "bids": [ [108421.93, 0.5], [108421.86, 1.2], ... ], "asks": [ [108421.94, 0.8], [108421.95, 2.1], ... ] } ``` --- ### 5. get_ohlcv **Description**: Get OHLCV (Open, High, Low, Close, Volume) candlestick data. **Parameters**: | Name | Type | Required | Description | |------|------|----------|-------------| | symbol | string | Yes | Trading symbol | | timeframe | string | Yes | Timeframe ("1m", "5m", "1h", "1d", etc.) | | limit | number | No | Number of candles (default: 100) | | since | number | No | Timestamp in ms to fetch from | | exchange | string | No | Exchange to use | **Example**: ```json { "name": "get_ohlcv", "arguments": { "symbol": "BTC/USDT", "timeframe": "1h", "limit": 24 } } ``` **Response**: ```json { "exchange": "binance", "symbol": "BTC/USDT", "timeframe": "1h", "count": 24, "data": [ { "timestamp": 1707820800000, "datetime": "2025-10-22T14:00:00.000Z", "open": 108000, "high": 108500, "low": 107800, "close": 108295, "volume": 123.45 }, ... ] } ``` --- ### 6. get_trades **Description**: Get recent trades for a trading pair. **Parameters**: | Name | Type | Required | Description | |------|------|----------|-------------| | symbol | string | Yes | Trading symbol | | limit | number | No | Number of trades (default: 50) | | since | number | No | Timestamp in ms | | exchange | string | No | Exchange to use | **Example**: ```json { "name": "get_trades", "arguments": { "symbol": "BTC/USDT", "limit": 10 } } ``` **Response**: ```json { "exchange": "binance", "symbol": "BTC/USDT", "count": 10, "trades": [ { "id": "12345678", "timestamp": 1707820800000, "datetime": "2025-10-22T14:00:00.000Z", "symbol": "BTC/USDT", "side": "buy", "price": 108432, "amount": 0.00818, "cost": 887.01 }, ... ] } ``` --- ### 7. get_markets **Description**: Get all available markets for an exchange. **Parameters**: | Name | Type | Required | Description | |------|------|----------|-------------| | exchange | string | No | Exchange to use | | search | string | No | Filter markets by symbol | | type | string | No | Market type ("spot", "future", "swap", "option") | **Example**: ```json { "name": "get_markets", "arguments": { "search": "BTC", "type": "spot" } } ``` **Response**: ```json { "exchange": "binance", "count": 50, "total": 50, "markets": [ { "symbol": "ETH/BTC", "base": "ETH", "quote": "BTC", "active": true, "type": "spot", "spot": true, "future": false, "swap": false, "option": false }, ... ] } ``` --- ### 8. get_exchange_info **Description**: Get exchange information, capabilities, and status. **Parameters**: | Name | Type | Required | Description | |------|------|----------|-------------| | exchange | string | No | Exchange to query | **Example**: ```json { "name": "get_exchange_info", "arguments": {} } ``` **Response**: ```json { "id": "binance", "name": "Binance", "countries": [], "version": "1", "certified": true, "pro": true, "has": { "fetchTicker": true, "fetchTickers": true, "fetchOrderBook": true, "fetchOHLCV": true, "fetchBalance": true, "createOrder": true, "cancelOrder": true, ... }, "timeframes": ["1m", "3m", "5m", "15m", "30m", "1h", "2h", "4h", "6h", "8h", "12h", "1d", "3d", "1w", "1M"], "urls": { ... } } ``` --- ### 9. get_leverage_tiers **Description**: Get futures leverage tiers for a symbol (shows max leverage by position size). **Parameters**: | Name | Type | Required | Description | |------|------|----------|-------------| | symbol | string | Yes | Trading symbol | | exchange | string | No | Exchange to use | **Example**: ```json { "name": "get_leverage_tiers", "arguments": { "symbol": "BTC/USDT" } } ``` **Note**: Not all exchanges support this feature. --- ### 10. get_funding_rates **Description**: Get current funding rates for perpetual futures contracts. **Parameters**: | Name | Type | Required | Description | |------|------|----------|-------------| | symbol | string | No | Trading symbol (omit for all) | | exchange | string | No | Exchange to use | **Example**: ```json { "name": "get_funding_rates", "arguments": { "symbol": "BTC/USDT" } } ``` **Note**: Requires exchange with perpetual futures support. --- ### 11. get_positions **Description**: Get open positions information. **Parameters**: | Name | Type | Required | Description | |------|------|----------|-------------| | symbol | string | No | Trading symbol | | exchange | string | No | Exchange to use | **Note**: Typically requires authentication even though it's in public tools. Use with configured API keys. --- ### 12. get_open_orders **Description**: Get all open orders. **Parameters**: | Name | Type | Required | Description | |------|------|----------|-------------| | symbol | string | No | Trading symbol | | exchange | string | No | Exchange to use | **Note**: Typically requires authentication. Use with configured API keys. --- ### 13. get_order_history **Description**: Get order history (closed orders). **Parameters**: | Name | Type | Required | Description | |------|------|----------|-------------| | symbol | string | No | Trading symbol | | since | number | No | Timestamp in ms | | limit | number | No | Number of orders | | exchange | string | No | Exchange to use | **Note**: Typically requires authentication. Use with configured API keys. --- ## Private Tools (10) These tools require API credentials configured in `.env` file. ### 14. account_balance **Description**: Get account balance for all assets. **Requires**: API credentials in `.env` **Parameters**: | Name | Type | Required | Description | |------|------|----------|-------------| | exchange | string | No | Exchange to use | **Example**: ```json { "name": "account_balance", "arguments": {} } ``` **Response**: ```json { "exchange": "binance", "timestamp": 1707820800000, "balances": { "USDT": { "free": 10000.50, "used": 500.25, "total": 10500.75 }, "BTC": { "free": 0.5, "used": 0.1, "total": 0.6 } } } ``` --- ### 15. place_market_order **Description**: Place a market order (immediate execution at current price). **⚠️ WARNING**: This executes real trades with real money! **Requires**: API credentials with trading permissions **Parameters**: | Name | Type | Required | Description | |------|------|----------|-------------| | symbol | string | Yes | Trading symbol | | side | string | Yes | "buy" or "sell" | | amount | number | Yes | Amount to trade | | exchange | string | No | Exchange to use | **Example**: ```json { "name": "place_market_order", "arguments": { "symbol": "BTC/USDT", "side": "buy", "amount": 0.001 } } ``` --- ### 16. place_limit_order **Description**: Place a limit order at a specific price. **⚠️ WARNING**: This executes real trades with real money! **Requires**: API credentials with trading permissions **Parameters**: | Name | Type | Required | Description | |------|------|----------|-------------| | symbol | string | Yes | Trading symbol | | side | string | Yes | "buy" or "sell" | | amount | number | Yes | Amount to trade | | price | number | Yes | Limit price | | exchange | string | No | Exchange to use | **Example**: ```json { "name": "place_limit_order", "arguments": { "symbol": "BTC/USDT", "side": "buy", "amount": 0.001, "price": 50000 } } ``` --- ### 17. cancel_order **Description**: Cancel a specific order by ID. **Requires**: API credentials **Parameters**: | Name | Type | Required | Description | |------|------|----------|-------------| | orderId | string | Yes | Order ID to cancel | | symbol | string | No | Trading symbol (required by some exchanges) | | exchange | string | No | Exchange to use | **Example**: ```json { "name": "cancel_order", "arguments": { "orderId": "12345678", "symbol": "BTC/USDT" } } ``` --- ### 18. cancel_all_orders **Description**: Cancel all open orders for a symbol or all symbols. **Requires**: API credentials **Parameters**: | Name | Type | Required | Description | |------|------|----------|-------------| | symbol | string | No | Trading symbol (omit for all) | | exchange | string | No | Exchange to use | **Example**: ```json { "name": "cancel_all_orders", "arguments": { "symbol": "BTC/USDT" } } ``` --- ### 19. set_leverage **Description**: Set leverage for futures trading. **Requires**: API credentials with futures permissions **Parameters**: | Name | Type | Required | Description | |------|------|----------|-------------| | symbol | string | Yes | Trading symbol | | leverage | number | Yes | Leverage (e.g. 1, 2, 5, 10, 20, 50, 100, 125) | | exchange | string | No | Exchange to use | **Example**: ```json { "name": "set_leverage", "arguments": { "symbol": "BTC/USDT", "leverage": 10 } } ``` --- ### 20. set_margin_mode **Description**: Set margin mode for futures trading. **Requires**: API credentials with futures permissions **Parameters**: | Name | Type | Required | Description | |------|------|----------|-------------| | symbol | string | Yes | Trading symbol | | marginMode | string | Yes | "isolated" or "cross" | | exchange | string | No | Exchange to use | **Example**: ```json { "name": "set_margin_mode", "arguments": { "symbol": "BTC/USDT", "marginMode": "isolated" } } ``` --- ### 21. place_futures_market_order **Description**: Place a futures market order. **⚠️ WARNING**: This executes real futures trades! **Requires**: API credentials with futures trading permissions **Parameters**: | Name | Type | Required | Description | |------|------|----------|-------------| | symbol | string | Yes | Trading symbol | | side | string | Yes | "buy" or "sell" | | amount | number | Yes | Amount to trade | | reduceOnly | boolean | No | Close position only | | exchange | string | No | Exchange to use | **Example**: ```json { "name": "place_futures_market_order", "arguments": { "symbol": "BTC/USDT", "side": "buy", "amount": 0.1, "reduceOnly": false } } ``` --- ### 22. place_futures_limit_order **Description**: Place a futures limit order. **⚠️ WARNING**: This executes real futures trades! **Requires**: API credentials with futures trading permissions **Parameters**: | Name | Type | Required | Description | |------|------|----------|-------------| | symbol | string | Yes | Trading symbol | | side | string | Yes | "buy" or "sell" | | amount | number | Yes | Amount to trade | | price | number | Yes | Limit price | | reduceOnly | boolean | No | Close position only | | postOnly | boolean | No | Maker only | | exchange | string | No | Exchange to use | **Example**: ```json { "name": "place_futures_limit_order", "arguments": { "symbol": "BTC/USDT", "side": "buy", "amount": 0.1, "price": 100000, "postOnly": true } } ``` --- ### 23. transfer_funds **Description**: Transfer funds between accounts (e.g. spot to futures). **Requires**: API credentials **Parameters**: | Name | Type | Required | Description | |------|------|----------|-------------| | currency | string | Yes | Currency to transfer (e.g. "USDT", "BTC") | | amount | number | Yes | Amount to transfer | | fromAccount | string | Yes | "spot", "futures", "margin", "swap" | | toAccount | string | Yes | "spot", "futures", "margin", "swap" | | exchange | string | No | Exchange to use | **Example**: ```json { "name": "transfer_funds", "arguments": { "currency": "USDT", "amount": 1000, "fromAccount": "spot", "toAccount": "futures" } } ``` --- ## Error Handling All tools return errors in the following format: ```json { "isError": true, "content": [ { "type": "text", "text": "Error message describing what went wrong" } ] } ``` Common errors: - **Missing credentials**: "No credentials configured for {exchange}" - **Exchange not supported**: "{exchange} does not support {feature}" - **Authentication required**: "This operation requires authentication" - **Invalid parameters**: Schema validation errors - **API errors**: CCXT exception messages --- ## Rate Limits Be aware of exchange API rate limits: - **Binance**: 1200 requests/minute - **Coinbase**: 10 requests/second - **Kraken**: 15-20 requests/second - **Bitfinex**: Varies by endpoint - **Bybit**: 120 requests/minute Exceeding rate limits will result in temporary bans. --- ## Best Practices 1. **Use batch operations** when possible (e.g. `batch_get_tickers`) 2. **Cache public data** (markets, exchange info) 3. **Implement retry logic** for transient errors 4. **Monitor rate limits** in production 5. **Test with small amounts** before live trading 6. **Use limit orders** for better price control 7. **Set proper leverage** for futures trading 8. **Always check order status** after placement --- ## Support For issues or questions about specific tools: 1. Check CCXT documentation for exchange-specific details 2. Review MCP SDK documentation for protocol details 3. Open an issue on GitHub with tool name and error message

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/carlosatta/mcp-server-ccxt'

If you have feedback or need assistance with the MCP directory API, please join our Discord server