项目简介
'binance-mcp' 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型(LLM)客户端提供币安加密货币交易所的市场数据。通过此服务器,LLM 可以实时访问币安现货和期货市场的交易数据,包括价格、成交量、K线数据等。它通过 WebSocket 提供实时数据流,并通过 REST API 提供历史数据查询功能,使得 LLM 应用能够便捷地获取和利用最新的市场信息。
主要功能点
- 实时市场数据流: 通过 WebSocket 连接,实时推送币安市场的交易、Ticker、深度等数据更新。
- 现货和期货市场支持: 同时支持币安现货和期货市场的数据获取。
- 数据访问工具: 提供工具 (Tools) 供 LLM 调用,用于查询市场数据快照和历史 K 线数据。
- 数据订阅工具: 提供工具 (Tools) 供 LLM 调用,用于订阅指定交易对的实时市场数据流。
- 错误处理和重连机制: 具备完善的错误处理机制,并在 WebSocket 连接断开时自动重连。
安装步骤
- 安装 Node.js 和 npm: 确保你的系统已安装 Node.js 和 npm (Node.js 包管理器)。
- 安装依赖: 在仓库根目录下,打开终端并运行以下命令安装项目依赖:
npm install
服务器配置
MCP客户端需要配置以下信息以连接到 'binance-mcp' 服务器。配置信息为 JSON 格式,请根据你的实际情况进行配置。
{ "serverName": "binance-mcp", "command": "npm", "args": ["start"] }
配置参数说明:
- 'serverName': 服务器的名称,可以自定义,例如 "binance-mcp"。
- 'command': 启动服务器的命令,这里使用 'npm',因为项目使用 npm 管理。
- 'args': 启动命令的参数,这里使用 '["start"]',对应 package.json 中定义的 'start' 脚本,该脚本会启动 'src/index.ts' 文件,即 MCP 服务器的入口文件。
注意: 此配置假设你已经将 'binance-mcp' 仓库克隆到本地,并且 MCP 客户端能够访问到该仓库的根目录。实际部署时,可能需要根据你的环境调整 'command' 和 'args',例如使用 Node.js 的绝对路径直接运行 'src/index.ts' 文件。
基本使用方法
-
启动服务器: 在仓库根目录下,打开终端并运行以下命令启动 MCP 服务器:
npm start服务器成功启动后,会输出 "Binance MCP server started successfully" 的日志信息。
-
在 MCP 客户端中使用: 在 MCP 客户端(例如 Claude Desktop 或其他支持 MCP 协议的客户端)中,配置上述提供的服务器配置信息。客户端将通过 Stdio 协议与 'binance-mcp' 服务器建立连接。
-
调用工具 (Tools): 连接成功后,LLM 客户端可以向 'binance-mcp' 服务器发送 MCP 请求,调用以下预定义的工具来获取币安市场数据:
-
'get_market_data': 获取指定交易对的市场数据快照。
- 参数:
{ "symbol": "交易对代码,例如 BTCUSDT", "type": "市场类型,可选值: \"spot\" (现货) 或 \"futures\" (期货)" } - 示例: 获取 BTCUSDT 现货市场的市场数据:
{ "name": "get_market_data", "arguments": { "symbol": "BTCUSDT", "type": "spot" } }
- 参数:
-
'get_klines': 获取指定交易对的历史 K 线数据。
- 参数:
{ "symbol": "交易对代码,例如 BTCUSDT", "type": "市场类型,可选值: \"spot\" (现货) 或 \"futures\" (期货)", "interval": "K线周期,例如 \"1m\" (1分钟), \"5m\", \"15m\", \"30m\", \"1h\", \"4h\", \"1d\", \"1w\", \"1M\"", "limit": "K线数量,可选,默认 500,最大 1000" } - 示例: 获取 BTCUSDT 现货市场 5 分钟周期的 100 条 K 线数据:
{ "name": "get_klines", "arguments": { "symbol": "BTCUSDT", "type": "spot", "interval": "5m", "limit": 100 } }
- 参数:
-
'subscribe_market_data': 订阅指定交易对的实时市场数据流。
- 参数:
{ "symbol": "交易对代码,例如 BTCUSDT", "type": "市场类型,可选值: \"spot\" (现货) 或 \"futures\" (期货)", "streams": "需要订阅的数据流类型数组,可选值: [\"ticker\", \"trade\", \"kline\", \"depth\"]" } - 示例: 订阅 BTCUSDT 现货市场的 Ticker 和 Trade 数据流:
{ "name": "subscribe_market_data", "arguments": { "symbol": "BTCUSDT", "type": "spot", "streams": ["ticker", "trade"] } } - 数据接收: 订阅成功后,服务器会通过 MCP 通知 (Notification) 实时推送订阅的数据。客户端需要监听相应的通知事件以接收数据。
- 参数:
-
通过以上步骤,你就可以使用 'binance-mcp' 服务器为 LLM 应用提供币安市场数据支持。
信息
分类
网页与API