crypto-mcp-server
服务介绍
Crypto MCP Server
这是一个使用 TypeScript 编写的加密货币 Model Context Protocol (MCP) 服务器通过 Binance 公共 API 提供实时行情查询能力
你可以将其接入 ChatGPTClaude DesktopStrands 或任何支持 MCP 的客户端让 AI 直接调用加密货币工具
功能概览
当前实现了 5 个强大的工具覆盖从基础价格查询到深度市场分析
get_price 获取实时价格
获取指定交易对的实时价格
输入参数
symbol交易对符号如 BTCETHSOL不区分大小写quote报价货币如 USDTBUSD默认 USDT
输出
- 实时价格
- 交易对符号
- 时间戳Unix 和 ISO 格式
使用示例
"BTC 现在多少钱"
调用 get_price({ symbol: "BTC", quote: "USDT" })
get_24h_stats 获取24小时统计数据
获取交易对过去24小时的完整统计数据包括涨跌幅成交量最高/最低价等
输入参数
symbol交易对符号如 BTCETHquote报价货币默认 USDT
输出
- 价格变化绝对值和百分比
- 当前价格开盘价最高价最低价
- 24小时成交量成交额
- 加权平均价
- 买卖盘价格
使用示例
"ETH 今天涨了多少"
调用 get_24h_stats({ symbol: "ETH" })
get_ohlcv 获取K线数据
获取技术分析所需的K线蜡烛图数据支持多种时间间隔
输入参数
symbol交易对符号quote报价货币默认 USDTintervalK线时间间隔1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 6h, 8h, 12h, 1d, 3d, 1w, 1M默认 1hlimit返回的K线数量1-1000默认 500
输出
- 格式化的K线数组每条包含
- 开盘时间收盘时间
- 开盘价最高价最低价收盘价
- 成交量成交额
- 成交笔数主动买入量等
使用示例
"给我 BTC 最近10小时的K线数据"
调用 get_ohlcv({ symbol: "BTC", interval: "1h", limit: 10 })
get_symbol_overview 智能综合概览
智能组合工具整合多个数据源提供交易对的全面分析
输入参数
symbol交易对符号quote报价货币默认 USDT
输出
- 当前价格实时价格
- 24小时涨跌价格变化和百分比
- 最高/最低价24小时价格区间
- 趋势判断
- 趋势类型上涨/下跌/盘整
- 趋势强度-1 到 1 的数值
- 趋势描述基于K线分析的详细说明
- 移动平均线分析
- RSI 指标
- 交易量分析
- 交易量等级高/中/低
- 交易量描述
使用示例
"BTC 今天怎么样属于上涨还是盘整"
调用 get_symbol_overview({ symbol: "BTC" })
这个工具特别适合回答综合性的市场分析问题模型可以基于返回的数据生成自然语言回答
get_order_book 获取交易深度订单簿
查看市场流动性深度和买卖盘强度适合做交易分析
输入参数
symbol交易对符号quote报价货币默认 USDTlimit订单深度数量5-5000默认 100
输出
- 最佳买卖价当前最优买价和卖价
- 价差分析买卖价差绝对值和百分比
- 流动性分析
- 买盘总量卖盘总量
- 总流动性
- 买卖盘比例
- 买盘强度强/弱/平衡
- 前10档买卖盘明细价格数量总额
使用示例
"BTC 的买卖盘深度怎么样"
调用 get_order_book({ symbol: "BTC", limit: 20 })
数据源说明
本项目使用 Binance 公开 REST API
- 实时价格
GET /api/v3/ticker/price - 24小时统计
GET /api/v3/ticker/24hr - K线数据
GET /api/v3/klines - 订单簿
GET /api/v3/depth
无需 API Key无限制地调用基础行情数据
环境要求
- Node.js 18+
- npm或 yarn / pnpm
- 允许访问 Binance API网络连接
安装与运行
1. 安装依赖
npm install
2. 编译项目
npm run build
3. 运行服务器
npm start
4. 开发模式热重载
npm run dev
工作原理
- MCP 客户端启动该服务器通过 stdio 通信
- 用户问模型"现在 BTC 价格多少"
- 模型判断 调用 MCP 工具
get_price - MCP 服务器访问 Binance API 返回价格
- 模型用结果生成自然语言回答
MCP 客户端配置示例
Claude Desktop 配置
编辑 claude_desktop_config.jsonmacOS 路径~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"crypto-mcp": {
"command": "node",
"args": ["/path/to/trade_mcp/dist/server.js"],
"transport": "stdio"
}
}
}
其他 MCP 客户端
根据客户端文档配置确保
command:nodeargs:["dist/server.js"]使用绝对路径transport:stdio
配置好后即可在客户端中直接使用所有工具
调试方式
方法 1: MCP Inspector需要浏览器界面
如果环境支持浏览器推荐使用 MCP Inspector
npx @modelcontextprotocol/inspector node dist/server.js
你可以
- 查看当前服务器暴露的所有工具
- 单独测试每个工具调用
- 查看请求 / 响应细节
方法 2: 命令行测试脚本服务器环境推荐
如果服务器环境无法打开浏览器可以使用命令行测试脚本
# 1. 先编译项目
npm run build
# 2. 运行测试脚本测试 MCP 服务器
npm test
# 或
node test/test-server.js
测试脚本会
- 启动 MCP 服务器
- 测试列出工具功能
- 测试所有5个工具的功能
- 显示详细的请求和响应信息
方法 3: 直接测试 Binance API
验证网络连接和 API 可用性
node test/test-api-direct.js
这会直接调用 Binance API不经过 MCP 服务器用于诊断网络问题
使用场景示例
场景 1: 简单价格查询
用户"BTC 现在多少钱"
模型调用 get_price "BTC 当前价格为 $92,026.49 USDT"
场景 2: 市场分析
用户"BTC 今天怎么样属于上涨还是盘整"
模型调用 get_symbol_overview
"BTC 今天表现良好属于上涨趋势当前价格 $92,028.73
24小时涨幅 0.975%最高价 $93,160最低价 $88,608
根据K线分析呈现明显上涨趋势交易量很高市场活跃"
场景 3: 技术分析
用户"给我 ETH 最近10小时的K线数据"
模型调用 get_ohlcv({ symbol: "ETH", interval: "1h", limit: 10 })
返回详细的K线数据供分析
场景 4: 流动性分析
用户"BTC 的买卖盘深度怎么样"
模型调用 get_order_book
"BTC 当前最佳买价 $92,026.49最佳卖价 $92,026.50
价差仅 0.0001%流动性很好买盘总量 $XXX卖盘总量 $XXX
买卖盘比例平衡市场深度充足"
如何扩展更多工具
你可以轻松添加更多 Binance API 工具例如
- 历史数据查询获取更长时间范围的数据
- 技术指标计算MACD布林带KDJ 等
- 多交易所支持整合 OKXCoinbase 等
- 价格提醒监控价格变化
- 交易功能需要 API Key下单查询订单等
参考现有工具的实现方式在 src/server.ts 中添加新的 Schema 和函数即可
注意事项
-
API 速率限制Binance 公共 API 有速率限制当前非常宽松如需高频请求建议添加缓存机制
-
数据格式MCP 工具返回时应保持 JSON 格式AI 才能稳定理解
-
交易功能若要扩展版本到交易/下单功能需要使用 Binance API Key本项目默认未涉及资金操作
-
网络连接确保服务器可以访问
api.binance.com -
错误处理所有工具都包含完善的错误处理会返回友好的错误信息
技术栈
- TypeScript类型安全的开发体验
- Zod强大的参数验证
- MCP SDKModel Context Protocol 官方 SDK
- Binance API可靠的加密货币数据源
更新日志
v1.0.0
- 实现 5 个核心工具
- 智能趋势分析移动平均线RSI
- 完整的测试覆盖
- 中文友好的文档和描述
贡献
欢迎提交 Issue 和 Pull Request
许可证
MIT License