使用说明
CCXT MCP服务器
该项目提供了一个模型上下文协议(MCP)服务器,该服务器从 仓储管理系统 库作为大型语言模型(LLM)的工具。
它允许LLM以标准化和异步的方式与加密货币交易所进行交互,以完成获取余额、市场数据、创建订单等任务。
此服务器是使用 FastMCP,简化了在Python中创建MCP服务器的过程。
特性
- CCXT集成:封装用于交换交互的常见CCXT函数。
- 异步:使用
asyncio和ccxt.async_support以实现高效的非阻塞操作。 - 清除工具定义:用途
typing.Annotated和pydantic.Field为了获得清晰的参数描述和约束,使LLM(和开发人员)更容易理解和使用这些工具。 - 身份验证处理:支持用于私有终结点的API密钥、机密和密码验证。
- 公共和私人工具:为公共市场数据和私人账户操作提供单独的工具。
安装
-
克隆存储库(如果您还没有):
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:pip install -r requirements.txt - 使用
uv(如果已安装):uv pip install -r requirements.txt # Or, if you prefer uv's environment management: # uv sync
- 使用
运行服务器
安装依赖项后,您可以直接运行MCP服务器:
uv run uvicorn mcp_server:app
您应该看到指示服务器已启动的输出,类似于:
Starting CCXT MCP Server (Async with Annotated Params and Tool Metadata)...
# ... (FastMCP server startup logs)
然后,服务器将可供MCP客户端连接(通常在FastMCP管理的默认端口上,除非另有配置)。
MCP服务器配置(适用于MCP客户端)
如果您使用的MCP客户端需要手动配置服务器(如Claude桌面应用程序),则需要提供类似于以下JSON的配置。
创建一个 claude_desktop_config.json 具有以下结构的文件(或MCP客户端的等效文件):
{
"mcpServers": {
"ccxt-mcp-server": {
"command": "npx",
"args": ["mcp-remote", "http://127.0.0.1:8000/mcp/"]
}
}
}
此配置告诉您的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:获取最近公开交易的交易品种。calculate_technical_indicator_tool:获取OHLCV数据并计算指定的技术指标(例如RSI、SMA、EMA、MACD、布林带、随机振荡器、平均真实范围(ATR))。
由于使用了 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呼叫期间出现问题,请键入。
