关于 CCXT MCP Server
CCXT MCP Server 将 CCXT 加密货币交易所操作封装为供大模型和开发者使用的异步工具。它将公开市场数据与需认证的账户及交易操作分开提供。
主要功能
- 01获取公开市场数据
- 02查询余额、持仓和订单历史
- 03创建或取消现货及期货订单
- 04使用 API 凭据认证私有端点
- 05根据 OHLCV 数据计算指标
适用场景
- 01查询加密货币价格和 K 线历史
- 02查看账户余额与未平仓头寸
- 03提交或取消交易所订单
- 04根据市场数据计算技术指标
MCP 相关
该 MCP 服务将 CCXT 交易所功能作为工具提供给 MCP 客户端,并区分公开数据操作和需认证操作。私有端点支持 API key、secret 和 passphrase 认证。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
CCXT MCP 服务
本项目提供一个模型上下文协议(MCP)服务,将 CCXT 库中的各种函数作为工具提供给大模型(LLM)。
它支持大模型以标准化的异步方式与加密货币交易所交互,执行获取余额、市场数据、创建订单等任务。
此服务使用 FastMCP 构建,简化了在 Python 中创建 MCP 服务的流程。
功能
- CCXT 集成:封装常用的 CCXT 函数,用于与交易所交互。
- 异步:使用
asyncio和ccxt.async_support构建,可高效执行非阻塞操作。 - 清晰的工具定义:使用
typing.Annotated和pydantic.Field清晰地描述参数及其限制,让大模型(和开发者)更容易理解和使用这些工具。 - 身份验证处理:支持私有端点所需的 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 的使用,每个工具的详细参数说明都可通过 MCP 协议本身获取。
使用说明
- 期货/期权:使用与期货或期权相关的工具(例如
fetch_open_positions、create_futures_limit_order、fetch_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"键的字典。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。