加密货币交易所统一接口服务器

一个为加密货币交易所(支持Bybit、Binance和OKX)提供的统一接口服务器,实现公共API(市场数据)和私有API(交易、账户管理)的交互。

  • by sydowma
  • Python
  • 本地部署
  • 7 星标
  • 更新于
在 GitHub 查看 sydowma/crypto_exchange_mcp

使用说明

加密货币交换MCP服务器

用于加密货币交易所的全面MCP(模型上下文协议)服务器实现,支持 Bybit, 币安,以及 欧易该包提供了一个统一的接口,用于与公共API(市场数据)和私有API(交易、账户管理)进行交互。

特征

公共API(无需身份验证)

  • 实时价格数据 -获取当前股票信息
  • 订单簿访问 -检索现货和期货市场的订单深度
  • Kline/烛台数据 -不同时间间隔的历史OHLCV数据
  • 资金率监测 -跟踪永久合同融资率
  • 开放兴趣跟踪 -监控合约未平仓合约(Bybit)
  • 交易对信息 -查询可用符号

私有API(需要身份验证)

  • 账户余额 -查询多个资产的钱包余额
  • 仓位管理 -查看未结头寸和未实现的PnL
  • 下单 -下达市价单和限价单
  • 订单取消 -取消单个或所有订单
  • 订单历史 -检索过去的订单和订单
  • 未结订单 -查看待处理订单

支持的交易所

交易所 现货 期货 公共API 私有API
Bybit ✅ ✅ ✅ ✅
币安 ✅ ✅ ✅ ✅
OKX ✅ ✅ ✅ ✅

安装

来自GitHub发布

uv tool install https://github.com/sydowma/crypto_exchange_mcp/releases/download/v0.3.1/crypto_exchange_mcp_python-0.3.1-py3-none-any.whl

带紫外线(推荐)

cd crypto_exchange_mcp/crypto_exchange_mcp_python
uv sync

使用pip

cd crypto_exchange_mcp/crypto_exchange_mcp_python
pip install -r requirements.txt

配置

仅适用于公共API

无需配置!公开市场数据端点开箱即用。

对于私有API

使用API凭据设置环境变量:

# Bybit
export BYBIT_API_KEY="your_bybit_api_key"
export BYBIT_API_SECRET="your_bybit_api_secret"

# Binance
export BINANCE_API_KEY="your_binance_api_key"
export BINANCE_API_SECRET="your_binance_api_secret"

# OKX
export OKX_API_KEY="your_okx_api_key"
export OKX_API_SECRET="your_okx_api_secret"
export OKX_PASSPHRASE="your_okx_passphrase"

或复制 .env.example 到 .env 并填写您的凭据:

cp .env.example .env

使用Claude Desktop

统一服务器(推荐)

增添 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) 或 %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "crypto-exchange": {
      "command": "uv",
      "args": [
        "--directory",
        "{your_path}/crypto_exchange_mcp/crypto_exchange_mcp_python",
        "run",
        "crypto_exchange_server.py"
      ],
      "env": {
        "BYBIT_API_KEY": "your_bybit_api_key",
        "BYBIT_API_SECRET": "your_bybit_api_secret",
        "BINANCE_API_KEY": "your_binance_api_key",
        "BINANCE_API_SECRET": "your_binance_api_secret",
        "OKX_API_KEY": "your_okx_api_key",
        "OKX_API_SECRET": "your_okx_api_secret",
        "OKX_PASSPHRASE": "your_okx_passphrase"
      }
    }
  }
}

单个Exchange服务器

您也可以单独运行每个交易所:

{
  "mcpServers": {
    "bybit": {
      "command": "uv",
      "args": [
        "--directory",
        "{your_path}/crypto_exchange_mcp/crypto_exchange_mcp_python",
        "run",
        "bybit.py"
      ]
    },
    "binance": {
      "command": "uv",
      "args": [
        "--directory",
        "{your_path}/crypto_exchange_mcp/crypto_exchange_mcp_python",
        "run",
        "binance.py"
      ]
    },
    "okx": {
      "command": "uv",
      "args": [
        "--directory",
        "{your_path}/crypto_exchange_mcp/crypto_exchange_mcp_python",
        "run",
        "okx.py"
      ]
    }
  }
}

可用工具

公开市场数据

  • get_ticker(exchange, symbol) -获取价格和24小时统计数据
  • get_orderbook(exchange, symbol, limit) -获取订单簿深度
  • get_klines(exchange, symbol, interval, limit) -获取烛台数据
  • get_symbols(exchange, spot, futures) -列出交易对
  • get_funding_rate(exchange, symbol) -获得永久融资利率
  • get_open_interest(exchange, symbol) -获取合约未平仓合约
  • get_new_coins_okx(limit) -在OKX上获取新列出的硬币

私人交易和账户

  • get_balance(exchange) -获取账户余额
  • get_positions(exchange) -获取空缺职位
  • place_order(exchange, symbol, side, order_type, quantity, price) -下单
  • cancel_order(exchange, symbol, order_id) -取消订单
  • get_open_orders(exchange, symbol) -获取待处理订单
  • get_order_history(exchange, symbol, limit) -获取订单历史记录

实用

  • get_supported_exchanges() -列出交换和身份验证状态
  • get_external_mcp_servers() -列出已配置的现成外部MCP服务器
  • list_exchange_mcp_tools(exchange) -列出来自外部交换MCP服务器的工具
  • call_exchange_mcp_tool(exchange, tool_name, arguments) -调用外部交换MCP服务器公开的工具

外部MCP聚合

统一服务器可以将现有的交换MCP实现作为stdio启动 子服务器,并通过一个入口点公开它们。

默认外部服务器:

Exchange 外部MCP 默认命令
Bybit 官方Bybit交易MCP npx -y bybit-official-trading-server@latest
OKX 官方OKX代理交易工具包 npx -y @okx_ai/okx-trade-mcp@latest --modules market --read-only
币安 社区币安MCP服务器 uvx --from binance-mcp-server binance-mcp-server

从主界面使用这些工具 crypto-exchange MCP服务器:

  1. get_external_mcp_servers() 检查已配置的子项。
  2. list_exchange_mcp_tools("bybit") 或另一个交换来查看儿童工具。
  3. call_exchange_mcp_tool("bybit", "tool_name", {"arg": "value"}) 调用儿童工具。

用以下命令覆盖或添加子MCP服务器 CRYPTO_EXCHANGE_MCP_CONFIG:

{
  "servers": {
    "okx": {
      "command": "npx",
      "args": [
        "-y",
        "@okx_ai/okx-trade-mcp@latest",
        "--modules",
        "market,spot,account",
        "--read-only"
      ],
      "env_keys": ["OKX_API_KEY", "OKX_API_SECRET", "OKX_PASSPHRASE"]
    }
  }
}

集 CRYPTO_EXCHANGE_MCP_ENABLE_DEFAULTS=false 禁用内置外部MCP 定义,并且仅依赖于您的配置文件。

Exchange的符号格式

交易所 现货格式 期货格式
Bybit BTCUSDT BTCUSDT
币安 BTCUSDT BTCUSDT
OKX BTC-USDT BTC-USDT-SWAP

注: OKX现货交易实际使用 -USD 后缀(例如。, BTC-USD)但是 -USDT 也适用于自动收报机查询。

建筑

crypto_exchange_mcp_python/
├── core/                      # Core abstractions
│   ├── __init__.py
│   ├── base.py               # Base exchange class and data models
│   ├── config.py             # Configuration and credential management
│   └── exceptions.py         # Custom exceptions
├── exchanges/                 # Exchange implementations
│   ├── bybit/
│   │   └── client.py         # Bybit API client
│   ├── binance/
│   │   └── client.py         # Binance API client
│   └── okx/
│       └── client.py         # OKX API client
├── bybit.py                  # Legacy Bybit MCP server
├── okx.py                    # Legacy OKX MCP server
├── crypto_exchange_server.py # Unified MCP server
└── .env.example              # Example configuration

API文档

许可证

Apache许可证2.0