返回市场
币比特-MCP

币比特-MCP

作者:sammcj15 星标更新:2025-05-26

项目介绍

Bybit MCP Server

这是一个提供对Bybit加密货币交易所API只读访问的模型上下文协议(MCP)服务器。

这是ALPHA级别的软件——请自行承担风险使用!

仅使用只读API密钥与此服务器交互。我不信任我的代码处理您的“资金”,您也不应该!

功能

此MCP服务器提供了以下工具来与Bybit的API进行交互:

  • get_ticker:获取交易对的实时行情信息
  • get_orderbook:获取交易对的订单簿(市场深度)数据
  • get_kline:获取交易对的K线/蜡烛图数据
  • get_market_info:获取交易对的详细市场信息
  • get_trades:获取交易对的最新成交记录
  • get_instrument_info:获取特定交易对的详细合约信息
  • get_wallet_balance:获取已认证用户的钱包余额信息
  • get_positions:获取已认证用户的当前持仓信息
  • get_order_history:获取已认证用户的订单历史
  • get_ml_rsi:获取基于机器学习的相对强弱指数(RSI)
  • get_market_structure:获取交易对的市场结构信息
  • get_order_blocks:检测机构订单积累区域
  • get_order_history:获取已认证用户的订单历史
  • get_orderbook:获取交易对的订单簿(市场深度)数据
  • get_ticker:获取交易对的实时行情信息

还有一个高度实验性的WebUI,请参阅WebUI README以获取详细信息。

WebUI 截图

所有代码都可能有重大变更,并且在继续开发此项目时可能会添加或移除功能。

要求及安装

  1. Node.js(v22+)
  2. pnpm (npm i -g pnpm)
  3. 如果您想运行快速启动中所示的Ollama客户端,则需要安装并运行Ollama以及您选择的模型。
pnpm i

快速开始

要安装包、构建所有内容并启动交互式客户端:

pnpm i

复制.env.example文件到.env并填写您的详细信息。

cp .env.example .env
code .env

MCP-Server(仅限)

标准IO传输(默认)

pnpm serve

HTTP/SSE传输

pnpm start:http

HTTP服务器默认运行在8080端口上,提供现代可流式传输的HTTP和传统的SSE传输方式,使其兼容于Web应用程序和各种MCP客户端。详情请参阅HTTP服务器文档

MCP-Server 和 Ollama 客户端

安装所需的客户端包:

(cd client && pnpm i)

复制客户端的.env.example文件到.env并填写您的详细信息。

cp client/.env.example client/.env
code client/.env

然后通过一个命令启动客户端和服务器:

pnpm start

配置

环境变量

服务器需要设置Bybit API凭证作为环境变量:

  • BYBIT_API_KEY:您的Bybit API密钥(必需)
  • BYBIT_API_SECRET:您的Bybit API密钥(必需) - 重要提示:仅创建只读API密钥!
  • BYBIT_USE_TESTNET:设置为"true"以使用测试网而不是主网(可选,默认为false)
  • DEBUG:设置为"true"以启用调试日志(可选,默认为false)

客户端环境变量(./client/.env):

  • OLLAMA_HOST:Ollama服务器的主机(默认为http://localhost:11434)
  • DEFAULT_MODEL:用于聊天的默认模型(默认为qwen3-30b-a3b-ud-nothink-128k:q4_k_xl)

MCP 设置配置

要使用此服务器与MCP客户端一起工作,您需要将其添加到您的MCP设置配置文件中。文件位置取决于您的客户端:

MCP 示例 - Claude Desktop

位置:~/Library/Application\ Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "bybit": {
      "command": "node",
      "args": ["/path/to/bybit-mcp/build/index.js"],
      "env": {
        "BYBIT_API_KEY": "your-api-key",
        "BYBIT_API_SECRET": "your-api-secret",
        "BYBIT_USE_TESTNET": "false"
      }
    }
  }
}

MCP 示例 - gomcp

位置:~/.config/gomcp/config.yaml

mcp_servers:
  - name: "bybit"
    command: "cd /path/to/bybit-mcp && pnpm run serve"
    arguments: []
    env:
      BYBIT_API_KEY: ""      # 在这里添加您的Bybit API **只读** 密钥
      BYBIT_API_SECRET: ""   # 在这里添加您的Bybit API **只读** 密钥
      BYBIT_USE_TESTNET: "true"  # 生产环境中设置为false
      DEBUG: "false"         # 可选:设置为true以启用调试日志

客户端集成

此包包含一个TypeScript客户端,它提供了一个命令行界面,用于与Ollama LLMs和bybit-mcp服务器进行交互。客户端支持:

  • 与Ollama模型进行互动聊天
  • 直接访问所有bybit-mcp交易工具
  • 自动服务器管理
  • 基于环境的配置
  • 调试日志

详细的客户端文档,请参阅客户端README

运行服务器

生产环境

  1. 构建服务器:
pnpm build
  1. 运行服务器:
node build/index.js

开发环境

对于带有自动TypeScript重新编译的开发:

pnpm watch

为了在开发期间检查MCP服务器:

pnpm inspector

工具文档

获取行情信息

{
  "name": "get_ticker",
  "arguments": {
    "symbol": "BTCUSDT",
    "category": "spot" // 可选,默认为"spot"
  }
}

获取订单簿数据

{
  "name": "get_orderbook",
  "arguments": {
    "symbol": "BTCUSDT",
    "category": "spot", // 可选,默认为"spot"
    "limit": 25 // 可选,默认为25(可用值:1, 25, 50, 100, 200)
  }
}

获取K线/蜡烛图数据

{
  "name": "get_kline",
  "arguments": {
    "symbol": "BTCUSDT",
    "category": "spot", // 可选,默认为"spot"
    "interval": "1", // 可选,默认为"1"(可用值:"1", "3", "5", "15", "30", "60", "120", "240", "360", "720", "D", "M", "W")
    "limit": 200 // 可选,默认为200(最大值1000)
  }
}

获取市场信息

{
  "name": "get_market_info",
  "arguments": {
    "category": "spot", // 可选,默认为"spot"
    "symbol": "BTCUSDT", // 可选,如果不提供则返回该类别下的所有符号的信息
    "limit": 200 // 可选,默认为200(最大值1000)
  }
}

获取最近成交记录

{
  "name": "get_trades",
  "arguments": {
    "symbol": "BTCUSDT",
    "category": "spot", // 可选,默认为"spot"
    "limit": 200 // 可选,默认为200(最大值1000)
  }
}

获取合约信息

{
  "name": "get_instrument_info",
  "arguments": {
    "symbol": "BTCUSDT", // 必需
    "category": "spot" // 可选,默认为"spot"
  }
}

返回关于交易合约的详细信息,包括:

  • 基础货币和报价货币
  • 交易状态
  • 数量过滤器(最小/最大订单数量)
  • 价格过滤器(价格变动单位)
  • 杠杆设置(针对期货)
  • 合约细节(针对期货)

获取钱包余额

{
  "name": "get_wallet_balance",
  "arguments": {
    "accountType": "UNIFIED", // 必需(可用值:"UNIFIED", "CONTRACT", "SPOT")
    "coin": "BTC" // 可选,如果不提供则返回所有币种
  }
}

获取持仓信息

{
  "name": "get_positions",
  "arguments": {
    "category": "linear", // 必需(可用值:"linear", "inverse")
    "symbol": "BTCUSDT", // 可选
    "baseCoin": "BTC", // 可选
    "settleCoin": "USDT", // 可选
    "limit": 200 // 可选,默认为200
  }
}

获取订单历史

{
  "name": "get_order_history",
  "arguments": {
    "category": "spot", // 必需(可用值:"spot", "linear", "inverse")
    "symbol": "BTCUSDT", // 可选
    "baseCoin": "BTC", // 可选
    "orderId": "1234567890", // 可选
    "orderLinkId": "myCustomId", // 可选
    "orderStatus": "Filled", // 可选(可用值:"Created", "New", "Rejected", "PartiallyFilled", "PartiallyFilledCanceled", "Filled", "Cancelled", "Untriggered", "Triggered", "Deactivated")
    "orderFilter": "Order", // 可选(可用值:"Order", "StopOrder")
    "limit": 200 // 可选,默认为200
  }
}

支持的类别

  • spot:现货交易
  • linear:线性永续合约
  • inverse:反向永续合约

许可证

MIT