CCXT MCP-сервер
Этот проект предоставляет сервер Model Context Protocol (MCP), который предоставляет различные функции из библиотеки CCXT в качестве инструментов для больших языковых моделей (LLM).
Он позволяет LLM взаимодействовать с криптовалютными биржами для выполнения таких задач, как получение балансов, рыночных данных, создание заказов и т. д., стандартизированным и асинхронным способом.
Этот сервер создан с использованием FastMCP , что упрощает процесс создания серверов MCP на Python.
Функции
Интеграция CCXT : Оборачивает общие функции CCXT для обмена взаимодействием.
Асинхронный : создан с использованием
asyncioиccxt.async_supportдля эффективных неблокирующих операций.Понятные определения инструментов : использует
typing.Annotatedиpydantic.Fieldдля понятных описаний параметров и ограничений, что упрощает понимание и использование инструментов для специалистов LLM (и разработчиков).Обработка аутентификации : поддерживает аутентификацию с помощью ключа API, секрета и парольной фразы для частных конечных точек.
Публичные и частные инструменты : предоставляет отдельные инструменты для публичных рыночных данных и действий с частными счетами.
Related MCP server: MCP Ethers Wallet
Установка
Клонируйте репозиторий (если вы еще этого не сделали):
git clone https://github.com/jcwleo/ccxt-mcp-server.git cd ccxt-mcp-serverСоздать и активировать виртуальную среду (рекомендуется):
python -m venv .venv source .venv/bin/activate # On Windows use `.venv\Scripts\activate`Установка зависимостей: Необходимые библиотеки перечислены в
requirements.txt. Вы можете установить их с помощьюpipилиuv.Используя
pip install -r requirements.txtИспользуя
uv pip install -r requirements.txt # Or, if you prefer uv's environment management: # uv sync
Запуск сервера
После установки зависимостей вы можете запустить сервер MCP напрямую:
Вы должны увидеть вывод, указывающий на то, что сервер запущен, примерно такой:
После этого сервер станет доступен для подключения клиентов MCP (обычно через порт по умолчанию, управляемый FastMCP, если не настроено иное).
Конфигурация сервера MCP (для клиентов MCP)
Если вы используете клиент MCP, требующий ручной настройки сервера (например, приложение Claude для настольных ПК), вам необходимо предоставить конфигурацию, аналогичную следующему JSON.
Создайте файл claude_desktop_config.json (или эквивалент для вашего клиента MCP) со следующей структурой:
Важный:
Замените
"/path/to/your/ccxt-mcp-server"фактическим абсолютным путем к каталогу, в который вы клонировали или загрузили этот проектccxt-mcp-server(т. е. каталогу, содержащемуmcp_server.py)."command"и"args"будут зависеть от того, как вы запускаете проекты Python и используете ли выuvили виртуальную среду. В примере выше используетсяuv.Если вы используете виртуальную среду напрямую с
python, команда может выглядеть так:{ "mcpServers": { "ccxt-mcp-server": { "command": "/path/to/your/.venv/bin/python", // Or `python.exe` on Windows "args": [ "mcp_server.py" ], "workingDirectory": "/path/to/your/ccxt-mcp-server" } } }Убедитесь, что
commandуказывает на исполняемый файл Python в вашей виртуальной среде, аworkingDirectoryустановлен в корневой каталог проекта.
Эта конфигурация сообщает вашему клиенту MCP, как запуститься и взаимодействовать с сервером CCXT MCP.
Доступные инструменты MCP
Этот сервер предоставляет следующие инструменты, отсортированные по необходимости аутентификации API.
Инструменты, требующие аутентификации API (частные)
fetch_account_balance: Извлекает текущий баланс счета.fetch_deposit_address: извлекает адрес депозита для валюты.withdraw_cryptocurrency: Выводит криптовалюту на указанный адрес.fetch_open_positions: извлекает открытые позиции (в основном для фьючерсов/деривативов).set_trading_leverage: Устанавливает кредитное плечо для торгового символа (в основном для фьючерсов).create_spot_limit_order: размещает новый спотовый лимитный ордер.create_spot_market_order: размещает новый ордер на спотовом рынке.create_futures_limit_order: размещает новый лимитный ордер на фьючерс.create_futures_market_order: размещает новый ордер на фьючерсном рынке.cancel_order: Отменяет существующий открытый заказ.fetch_order_history: Извлекает историю заказов (открытых/закрытых).fetch_my_trade_history: Извлекает историю сделок, совершенных пользователем.
Инструменты для публичных данных (аутентификация не требуется)
fetch_ohlcv: извлекает исторические данные OHLCV (японские свечи).fetch_funding_rate: извлекает ставку финансирования для бессрочного фьючерсного контракта.fetch_long_short_ratio: извлекает соотношение длинных и коротких позиций (требуютсяparams, специфичные для биржи).fetch_option_contract_data: извлекает рыночные данные для опционного контракта.fetch_market_ticker: извлекает последние данные ценового тикера для символа.fetch_public_market_trades: извлекает последние публичные сделки для символа.
Каждый инструмент имеет подробные описания параметров, доступные через сам протокол MCP благодаря использованию Annotated и pydantic.Field .
Заметки об использовании
Фьючерсы/опционы : при использовании инструментов, связанных с фьючерсами или опционами (например,
fetch_open_positions,create_futures_limit_order,fetch_funding_rate), убедитесь, что вы правильно настроили клиент CCXT с помощью аргументаparams, в частности, передав{'options': {'defaultType': 'future'}}(или'swap','option'по мере необходимости), если биржа требует этого или не использует по умолчанию желаемый тип рынка.fetch_long_short_ratio: Это не стандартный унифицированный метод CCXT. Вы должны указать конкретное имя метода обмена и его параметры в аргументеparams(например,params={'method_name': 'fapiPublicGetGlobalLongShortAccountRatio', 'method_params': {'symbol': 'BTCUSDT', 'period': '5m'}}для фьючерсов Binance).Обработка ошибок : инструменты возвращают словарь с ключом
"error"если во время вызова CCXT возникает проблема.