CCXT MCP 服务器
该项目提供了一个模型上下文协议 (MCP) 服务器,它将CCXT库中的各种功能公开为大型语言模型 (LLM) 的工具。
它允许 LLM 以标准化和异步的方式与加密货币交易所进行交互,执行获取余额、市场数据、创建订单等任务。
该服务器使用FastMCP构建,它简化了在 Python 中创建 MCP 服务器的过程。
特征
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:获取某个符号的近期公开交易。
由于使用了Annotated和pydantic.Field ,每个工具都具有通过 MCP 协议本身提供的详细参数描述。
使用说明
期货/期权:当使用与期货或期权相关的工具(例如,
fetch_open_positions、create_futures_limit_order、fetch_funding_rate)时,请确保通过params参数正确配置 CCXT 客户端,特别是如果交易所需要或不默认为所需的市场类型,则传递{'options': {'defaultType': 'future'}}(或'swap'、'option')。fetch_long_short_ratio:这不是 CCXT 统一的标准方法。您必须在params参数中提供具体的交易所方法名称及其参数(例如,对于币安合约,params={'method_name': 'fapiPublicGetGlobalLongShortAccountRatio', 'method_params': {'symbol': 'BTCUSDT', 'period': '5m'}})。错误处理:如果在 CCXT 调用期间出现问题,工具将返回带有
"error"键的字典。