项目简介

'binance-mcp' 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型(LLM)客户端提供币安加密货币交易所的市场数据。通过此服务器,LLM 可以实时访问币安现货和期货市场的交易数据,包括价格、成交量、K线数据等。它通过 WebSocket 提供实时数据流,并通过 REST API 提供历史数据查询功能,使得 LLM 应用能够便捷地获取和利用最新的市场信息。

主要功能点

  • 实时市场数据流: 通过 WebSocket 连接,实时推送币安市场的交易、Ticker、深度等数据更新。
  • 现货和期货市场支持: 同时支持币安现货和期货市场的数据获取。
  • 数据访问工具: 提供工具 (Tools) 供 LLM 调用,用于查询市场数据快照和历史 K 线数据。
  • 数据订阅工具: 提供工具 (Tools) 供 LLM 调用,用于订阅指定交易对的实时市场数据流。
  • 错误处理和重连机制: 具备完善的错误处理机制,并在 WebSocket 连接断开时自动重连。

安装步骤

  1. 安装 Node.js 和 npm: 确保你的系统已安装 Node.js 和 npm (Node.js 包管理器)。
  2. 安装依赖: 在仓库根目录下,打开终端并运行以下命令安装项目依赖:
    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' 文件。

基本使用方法

  1. 启动服务器: 在仓库根目录下,打开终端并运行以下命令启动 MCP 服务器:

    npm start

    服务器成功启动后,会输出 "Binance MCP server started successfully" 的日志信息。

  2. 在 MCP 客户端中使用: 在 MCP 客户端(例如 Claude Desktop 或其他支持 MCP 协议的客户端)中,配置上述提供的服务器配置信息。客户端将通过 Stdio 协议与 'binance-mcp' 服务器建立连接。

  3. 调用工具 (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