内容
# 加密货币交易所MCP服务器
一个针对加密货币交易所的综合MCP(模型上下文协议)服务器实现,支持**Bybit**、**Binance**和**OKX**。该软件包提供了一个统一的接口,用于与公共API(市场数据)和私有API(交易、账户管理)进行交互。
## 功能
### 公共API(无需身份验证)
- **实时价格数据** - 获取当前行情信息
- **订单簿访问** - 检索现货和期货市场的订单簿深度
- **K线/蜡烛图数据** - 历史的OHLCV数据,支持多种时间间隔
- **资金费率监控** - 跟踪永续合约的资金费率
- **未平仓合约跟踪** - 监控合约未平仓量(Bybit)
- **交易对信息** - 查询可用的交易对
### 私有API(需要身份验证)
- **账户余额** - 查询多个资产的钱包余额
- **仓位管理** - 查看开仓和浮动盈亏
- **订单下达** - 下达市价和限价订单
- **订单取消** - 取消单个或所有订单
- **订单历史** - 检索过去的订单和成交记录
- **未成交订单** - 查看待处理订单
## 支持的交易所
| 交易所 | 现货 | 期货 | 公共API | 私有API |
|----------|------|---------|------------|-------------|
| Bybit | ✅ | ✅ | ✅ | ✅ |
| Binance | ✅ | ✅ | ✅ | ✅ |
| OKX | ✅ | ✅ | ✅ | ✅ |
## 安装
### 从GitHub发布版本
```shell
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
```
### 使用uv(推荐)
```shell
cd crypto_exchange_mcp/crypto_exchange_mcp_python
uv sync
```
### 使用pip
```shell
cd crypto_exchange_mcp/crypto_exchange_mcp_python
pip install -r requirements.txt
```
## 配置
### 仅限公共API
无需配置!公共市场数据端点开箱即用。
### 私有API
使用API凭证设置环境变量:
```bash
# 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`并填写凭证:
```shell
cp .env.example .env
```
## 与Claude Desktop一起使用
### 统一服务器(推荐)
添加到 `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS)
或 `%APPDATA%\Claude\claude_desktop_config.json` (Windows):
```json
{
"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"
}
}
}
}
```
### 单个交易所服务器
您也可以单独运行每个交易所:
```json
{
"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子服务器,并通过一个入口公开它们。
默认外部服务器:
| 交易所 | 外部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` |
| Binance | 社区Binance 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"})` 调用子工具。
使用`CRYPTO_EXCHANGE_MCP_CONFIG`覆盖或添加子MCP服务器:
```json
{
"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定义,仅依赖您的配置文件。
## 交易所特定的符号格式
| 交易所 | 现货格式 | 期货格式 |
|----------|-------------|----------------|
| Bybit | `BTCUSDT` | `BTCUSDT` |
| Binance | `BTCUSDT` | `BTCUSDT` |
| OKX | `BTC-USDT` | `BTC-USDT-SWAP` |
**注意:** OKX现货交易实际上使用`-USD`后缀(例如,`BTC-USD`),但`-USDT`也适用于行情查询。
## 架构
```
crypto_exchange_mcp_python/
├── core/ # 核心抽象
│ ├── __init__.py
│ ├── base.py # 基础交易所类和数据模型
│ ├── config.py # 配置和凭证管理
│ └── exceptions.py # 自定义异常
├── exchanges/ # 交易所实现
│ ├── bybit/
│ │ └── client.py # Bybit API客户端
│ ├── binance/
│ │ └── client.py # Binance API客户端
│ └── okx/
│ └── client.py # OKX API客户端
├── bybit.py # 旧版Bybit MCP服务器
├── okx.py # 旧版OKX MCP服务器
├── crypto_exchange_server.py # 统一MCP服务器
└── .env.example # 示例配置
```
## API文档
- [Bybit API](https://bybit-exchange.github.io/docs/v5/)
- [Binance API](https://binance-docs.github.io/apidocs/)
- [OKX API](https://www.okx.com/docs-v5/)
## 许可证
Apache License 2.0
连接信息
猜你喜欢
Vibe-Trading
Vibe-Trading:您的个人交易代理
ai-berkshire
AI 时代的伯克希尔:基于 Claude Code 的价值投资研究框架。巴菲特·芒格·段永平·李录四大师方法论 + 多Agent并行研究。
HexStrike AI
HexStrike AI是一个AI驱动的MCP网络安全自动化平台,拥有150多个工具。
sp500-mcp-server
sp500-mcp-server
delphi-complier-mcp-server
用于 AI Agent 的 Delphi Complier MCP Server,用于编译项目和文件以检查 AI 代码结果。
1c-buddy
1C Buddy是一个聊天和MCP服务器,支持与1C:Напарник的OpenAI兼容API通信。