Ccxt
shuhaozhang95
README
CCXT MCP 服务器
<img src="assets/ccxt-logo.png" alt="CCXT Logo" width="100" height="100"/>
使用 MCP (模型上下文协议) 和 CCXT 的高性能加密货币交易所集成。
特性
- 🚀 交易所支持: 连接到 20+ 个加密货币交易所
- 🔃 市场类型: 支持现货、期货、永续合约等市场
- 🔧 代理配置: 通过代理访问交易所的选项
- 📊 快速 & 可靠: 优化的缓存和速率限制
- 🌐 MCP 标准: 通过 MCP 与 Claude 和 GPT 等 LLM 兼容
CCXT MCP 服务器集成架构
CCXT MCP 服务器通过模型上下文协议将语言模型连接到加密货币交易所。它充当桥梁,允许 LLM 通过统一的 API 访问实时市场数据并在多个交易所执行交易操作。
该架构包括:
- 发送请求的 LLM 客户端(Claude 和其他 MCP 兼容模型)
- 标准化通信的模型上下文协议 (MCP)
- 处理请求并管理交易所交互的 CCXT MCP 服务器
- 提供对交易所 API 的统一访问的 CCXT 库
- 与多个加密货币交易所的连接
CCXT MCP 服务器代码架构
该服务器被组织成三个主要模块,以提高可维护性和可扩展性:
- Exchange: 管理交易所实例、凭据和符号验证
- Utils: 提供缓存、速率限制和日志记录功能
- Tools: 实现用于交易所交互的 MCP 工具和资源
快速开始
通过 Smithery 安装
要通过 Smithery 为 Claude Desktop 自动安装 mcp-server-ccxt:
npx -y @smithery/cli install @doggybee/mcp-server-ccxt --client claude
NPM 包 (推荐)
您可以从 npm 安装 CCXT MCP 服务器:
# 全局安装
npm install -g @mcpfun/mcp-server-ccxt
# 启动服务器
mcp-server-ccxt
或者直接运行:
npx @mcpfun/mcp-server-ccxt
手动安装
或者,您可以克隆并构建存储库:
# 克隆存储库
git clone https://github.com/doggybee/mcp-server-ccxt.git
cd mcp-server-ccxt
# 安装依赖
npm install
# 构建服务器
npm run build
# 启动服务器
npm start
配置
-
创建一个环境变量文件
cp .env.example .env -
编辑
.env文件以添加您的交易所 API 密钥# 默认交易所 (可选) DEFAULT_EXCHANGE=binance # 默认市场类型 (可选) DEFAULT_MARKET_TYPE=spot # API 凭据 (可选) BINANCE_API_KEY=your_api_key BINANCE_SECRET=your_api_secret # 代理配置 (可选) USE_PROXY=false PROXY_URL=http://username:password@your-proxy-server:port # 旧格式 (仍然支持,但建议使用上面的集成 URL 格式) # PROXY_USERNAME= # PROXY_PASSWORD=
用法
注意: 如果您在使用 MCP 通信时遇到任何问题,请参阅 故障排除指南 以获取解决方案。
运行服务器
启动服务器:
# 如果通过 npm 全局安装
mcp-server-ccxt
# 如果手动安装
npm start
与 Claude for Desktop 一起使用
- 将服务器添加到您的
claude_desktop_config.json:
如果通过 npm 安装(全局):
{
"mcpServers": {
"ccxt": {
"command": "mcp-server-ccxt"
}
}
}
如果手动安装:
{
"mcpServers": {
"ccxt": {
"command": "node",
"args": [
"/path/to/mcp-server-ccxt/build/index.js"
]
}
}
}
- 重启 Claude for Desktop
在另一个项目中用作模块
您也可以在您自己的 Node.js 项目中使用此包作为模块:
// 导入 CCXT MCP 服务器
import '@mcpfun/mcp-server-ccxt';
// 服务器在导入时自动启动
// 您可以通过环境变量配置它
示例查询
以下是一些您可以与 MCP 服务器一起使用的示例查询:
- "币安上比特币的当前价格是多少?"
- "显示 Coinbase 上 ETH/USDT 的订单簿"
- "获取币安上 BTC/USDT 过去 24 根蜡烛的 1 小时 OHLCV 数据"
- "比较不同交易所 SOL/USDT 的价格"
- "我在币安上的当前余额是多少?" (需要 API 密钥)
- "在 Kraken 上下达 0.1 ETH 的市价买单" (需要 API 密钥)
可用工具
公共 API 工具
list-exchanges: 列出所有可用的加密货币交易所get-ticker: 获取交易对的当前 ticker 信息batch-get-tickers: 一次获取多个交易对的 ticker 信息get-orderbook/get-order-book: 获取交易对的市场订单簿get-ohlcv: 获取交易对的 OHLCV 蜡烛图数据get-trades: 获取交易对的最近交易get-markets: 获取交易所的所有可用市场get-exchange-info: 获取交易所信息和状态get-leverage-tiers: 获取期货杠杆等级get-funding-rates: 获取当前资金费率get-positions: 获取未平仓头寸信息get-open-orders: 获取所有未平仓订单get-order-history: 获取订单历史记录
私有 API 工具 (需要 API 密钥)
account-balance: 从加密货币交易所获取您的账户余额place-market-order: 在交易所下达市价单place-limit-order: 在交易所下达限价单cancel-order: 取消现有订单cancel-all-orders: 取消所有未平仓订单set-leverage: 设置期货杠杆set-margin-mode: 设置期货保证金模式place-futures-market-order: 下达期货市价单place-futures-limit-order: 下达期货限价单transfer-funds: 在账户之间转移资金(例如,现货到期货)
配置 & 实用工具
cache-stats: 获取 CCXT 缓存统计信息clear-cache: 清除 CCXT 缓存set-log-level: 设置日志记录级别get-proxy-config: 获取代理设置set-proxy-config: 配置代理设置set-market-type: 设置默认市场类型set-default-exchange: 更改默认交易所system-info: 获取系统和环境信息
性能优化
MCP-CCXT 包含多项优化以确保高性能:
-
LRU 缓存系统:
- 不同类型的数据具有不同的 TTL
- Ticker 数据:10 秒
- 订单簿数据:5 秒
- 市场数据:1 小时
-
自适应速率限制:
- 根据交易所响应自动调整请求速率
- 为错误实现指数退避
- 管理每个交易所的并发请求
-
交易所连接管理:
- 交易所实例的有效初始化
- 正确的错误处理和重试
安全最佳实践
API 密钥安全
-
创建专用 API 密钥:
- 为不同的应用程序/目的创建单独的 API 密钥
- 永远不要在不同的服务或应用程序中重复使用 API 密钥
-
限制 API 密钥权限:
- 仅启用您需要的权限(例如,只读用于市场数据)
- 如果您只需要交易功能,请禁用提款权限
- 在可用时使用 IP 白名单来限制对已知 IP 的访问
-
安全存储:
- 永远不要将 API 密钥提交到版本控制系统
- 将 API 密钥存储在环境变量或安全保险库中
- 使用通过
.gitignore从 git 中排除的.env文件
风险免责声明
本软件仅供参考。使用本软件与加密货币交易所交互涉及重大风险:
- 财务风险: 加密货币交易涉及损失风险
- API 安全: 确保您的 API 密钥具有适当的权限限制
- 无投资建议: 此工具不提供投资建议
- 无保证: 该软件按“原样”提供,不提供任何形式的保证
许可证
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE.txt 文件。
版权和归属
本项目使用 CCXT 库 (https://github.com/ccxt/ccxt),它是:
Copyright (c) 2016-2024 CCXT developers
CCXT 在 MIT 许可证下发布,该许可证包含在下面:
特此授予任何人免费获得本软件及其相关文档文件(“软件”)副本的许可,以便不受限制地处理本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售本软件副本的权利,并允许向其提供本软件的人员这样做,但须符合以下条件:
上述版权声明和本许可声明应包含在本软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何形式的明示或暗示保证,包括但不限于适销性、适用于特定目的和不侵权的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同、侵权或其他方面,由本软件或本软件的使用或其他交易引起、产生或与之相关。
对于问题、功能请求或贡献,请访问 GitHub 存储库。
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
MCP Package Docs Server
促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。
Claude Code MCP
一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。
@kazuph/mcp-taskmanager
用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。
Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。
mermaid-mcp-server
一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。
Jira-Context-MCP
MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。
Linear MCP Server
一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。
JSON Resume MCP Server
一个服务器,它通过分析你的代码项目来增强 AI 助手的能力,使其能够更新你的 JSON 简历,自动提取技能并生成专业的描述。