返回市场
ccxt-mcp-服务器

ccxt-mcp-服务器

作者:jcwleo6 星标更新:2025-05-23

项目介绍

CCXT MCP 服务器

smithery 徽章

该项目提供了一个模型上下文协议(MCP)服务器,该服务器将CCXT库中的各种函数作为大型语言模型(LLMs)的工具公开。

它允许LLMs以标准化和异步的方式与加密货币交易所进行交互,执行诸如获取余额、市场数据、创建订单等任务。

此服务器使用FastMCP构建,简化了在Python中创建MCP服务器的过程。

功能

  • CCXT 集成:封装了用于交易所交互的常见CCXT函数。
  • 异步:使用asyncioccxt.async_support构建,实现高效的非阻塞操作。
  • 清晰的工具定义:使用typing.Annotatedpydantic.Field来明确参数描述和约束,使LLMs(以及开发者)更容易理解和使用这些工具。
  • 身份验证处理:支持API密钥、秘密和密码短语的身份验证,用于私有端点。
  • 公共与私有工具:提供单独的工具用于公共市场数据和私有账户操作。

安装

  1. 克隆仓库(如果尚未克隆):

    git clone https://github.com/jcwleo/ccxt-mcp-server.git
    cd ccxt-mmcp-server
    
  2. 创建并激活虚拟环境(推荐):

    python -m venv .venv
    source .venv/bin/activate # 在Windows上使用`.venv\Scripts\activate`
    
  3. 安装依赖项: 所需的库列在requirements.txt中。你可以使用pipuv来安装它们。

    • 使用pip
      pip install -r requirements.txt
      
    • 使用uv(如果已安装):
      uv pip install -r requirements.txt
      # 或者,如果你更喜欢使用uv的环境管理:
      # uv sync
      

运行服务器

一旦安装了依赖项,你可以直接运行MCP服务器:

uv run uvicorn mcp_server:app

你应该会看到类似以下的输出,表明服务器已启动:

正在启动 CCXT MCP 服务器(异步且带有注解参数和工具元数据)...
# ... (FastMCP 服务器启动日志)

然后,服务器将可供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))。

每个工具都有详细的参数描述,可以通过MCP协议本身获得,这得益于Annotatedpydantic.Field的使用。

使用说明

  • 期货/期权:当使用与期货或期权相关的工具(例如fetch_open_positionscreate_futures_limit_orderfetch_funding_rate)时,请确保通过params参数正确配置CCXT客户端,特别是传递{'options': {'defaultType': 'future'}}(或'swap''option',根据需要)如果交易所需要或者不默认为所需的市场类型。
  • fetch_long_short_ratio:这不是CCXT统一的方法。你必须在params参数中提供具体的交易所方法名称及其参数(例如,对于Binance期货,params={'method_name': 'fapiPublicGetGlobalLongShortAccountRatio', 'method_params': {'symbol': 'BTCUSDT', 'period': '5m'}})。
  • 错误处理:如果在CCXT调用期间出现问题,工具将返回一个带有"error"键的字典。