README
🚀 Binance MCP 服务器
Binance MCP 服务器是一个与 Binance API 交互的工具集,支持 REST API 和 WebSocket 连接。它提供了一系列命令,可让用户获取市场数据、订阅实时更新以及管理 WebSocket 流。
🚀 快速开始
Binance MCP 服务器支持与 Binance API 的交互,借助 REST API 和 WebSocket 连接,能满足用户对市场数据获取、实时更新订阅以及 WebSocket 流管理等需求。
✨ 主要特性
市场数据
- 获取当前价格
- 查询历史数据
- 订阅 K 线图更新
24 小时交易统计
- 涨跌幅
- 成交量
- 最高价和最低价
实时 WebSocket 更新
- 订阅实时成交信息
- 接收盘口深度更新
- 获取最佳买价和卖价
💻 使用示例
基础用法
# 检查 Binance API 是否可达
is_connected = ping_binance()
# 获取服务器当前时间(以毫秒为单位的纪元时间)
server_time = get_server_time()
高级用法
# 获取比特币当前价格
btc_price = get_price(symbol="BTCUSDT")
# 详细查询24小时交易统计
btc_stats = get_24hr_ticker(symbol="BTCUSDT")
print(f"比特币价格变动百分比:{btc_stats['priceChangePercent']}%")
print(f"比特币24小时成交量:{btc_stats['volume']} BTC")
# 获取4小时时间窗口的滚动统计信息
btc_4h_stats = get_rolling_window_ticker(symbol="BTCUSDT", window_size="4h")
print(f"比特币4小时价格变动百分比:{btc_4h_stats['priceChangePercent']}%")
高级用法
# 订阅实时成交更新
trade_sub = subscribe_to_trade_stream(symbol="BTCUSDT")
# 一段时间后获取最新成交数据
latest_trade = get_latest_stream_data(stream_name="btcusdt@trade")
print(f"最新成交价格:{latest_trade['data']['p']}")
# 订阅5分钟K线图更新
kline_sub = subscribe_to_kline_stream(symbol="ETHUSDT", interval="5m")
# 清理所有订阅
unsubscribe_from_stream(stream_name="btcusdt@trade")
unsubscribe_from_stream(stream_name="ethusdt@kline_5m")
📚 详细文档
项目结构
binance_mcp_server/
├── binance_api.py # 核心 REST API 交互模块
├── binance_ws_api.py # WebSocket 连接管理模块
├── commands/ # MCP 命令定义
│ ├── __init__.py
│ ├── market_data.py # 当前价格、历史数据和订单簿命令
│ ├── market_info.py # 交易所信息和元数据命令
│ └── websocket_streams.py # WebSocket 流命令
└── server.py # 主 MCP 服务器设置和初始化
扩展说明
添加新工具
要添加新的功能,可以在 binance_api.py 中创建相应的函数,并在其中一个命令模块中注册为 MCP 工具。
支持私有 API 端点
要支持经过身份验证的 API 调用:
- 修改
binance_api.py以包含身份验证 - 创建额外的命令模块用于交易操作
- 在
server.py中注册新的命令
故障排除
- 连接问题:确保服务器正在运行后再尝试连接客户端
- 速率限制:Binance 可能会对过多 API 调用进行限流,需注意处理
- WebSocket 连接:检查网络状态和代理设置,确保没有干扰
术语表
- MCP:Machine Control Protocol(机器控制协议)
- REST API:基于 HTTP 的编程接口
- WebSocket:实时双工通信协议
通过以上介绍,用户可以全面了解如何使用 Binance MCP 服务器进行市场数据交互和管理。
Scan to contact