币安MCP服务器
一个模型上下文协议 (MCP) 服务器,将币安加密货币交易所数据提供给大型语言模型 (LLM) 代理。该服务器允许 LLM 通过标准化接口访问币安的实时和历史市场数据。
特征
实时价格数据:获取币安上任何交易对的当前价格
订单簿访问:检索显示不同价格水平买入/卖出兴趣的订单簿快照
历史价格数据:获取任意时间范围内的 OHLCV(开盘价、最高价、最低价、收盘价、成交量)烛台数据
实时 WebSocket 流:通过 WebSocket 订阅实时交易、股票行情和订单簿更新
全面的市场数据:访问交易、24 小时统计数据、汇总交易、滚动窗口数据等
交易所信息:访问交易规则、符号信息和费用结构
只读操作:所有数据均通过 Binance 的公共 REST API 获取(无需 API 密钥)
符合 MCP 标准:可与任何兼容 MCP 的 LLM 客户端配合使用
Related MCP server: BSC MCP Server
要求
Python 3.8+
带有 CLI 工具的
mcp软件包 (mcp[cli])requestsREST API 库用于 WebSocket 流的
websockets库uvicorn用于上菜(可选)
安装
克隆此存储库:
安装依赖项:
用法
直接运行服务器
要在独立模式下运行服务器:
这将启动 MCP 服务器,它将通过 STDIO 监听连接。
使用 MCP Inspector 的开发模式
对于开发和测试,请使用 MCP Inspector:
这将打开 MCP Inspector 界面,您可以在其中以交互方式测试服务器的工具。
在 Claude Desktop 中安装
要将此服务器与 Claude Desktop 一起使用:
如果尚未安装 MCP CLI 工具,请安装它:
在 Claude Desktop 中安装服务器:
您现在可以在 Claude Desktop 对话中直接访问 Binance 数据。
示例客户端
提供了一个示例客户端脚本来演示编程用法:
该脚本连接到服务器并检索各种类型的市场数据。
可用工具
连接和基本信息
ping_binance() :测试与币安 API 服务器的连接
例如:
ping_binance()
get_server_time() :从币安获取当前服务器时间
例如:
get_server_time()
市场数据
get_price(symbol) :获取交易对的当前价格
例如:
get_price(symbol="BTCUSDT")
get_order_book(symbol,depth=10) :获取当前订单簿
示例:
get_order_book(symbol="ETHUSDT", depth=5)
get_historical_prices(symbol, interval="1d", limit=100) :获取历史 OHLCV 数据
例如:
get_historical_prices(symbol="BTCUSDT", interval="1h", limit=24)有效间隔:“1m”、“3m”、“5m”、“15m”、“30m”、“1h”、“2h”、“4h”、“6h”、“8h”、“12h”、“1d”、“3d”、“1w”、“1M”
get_ui_klines(symbol, interval="1d", limit=100) :获取 UI 优化的 K 线数据
例如:
get_ui_klines(symbol="BTCUSDT", interval="1h", limit=24)
get_recent_trades(symbol, limit=20) :获取某个符号的最近交易
例如:
get_recent_trades(symbol="BTCUSDT", limit=50)
get_historical_trades(symbol, limit=20, from_id=None) :获取某个符号的旧交易
例如:
get_historical_trades(symbol="BTCUSDT", limit=100, from_id=12345)
get_aggregate_trades(symbol, limit=20) :获取压缩/聚合交易
例如:
get_aggregate_trades(symbol="ETHUSDT", limit=30)
get_24hr_ticker(symbol) :获取24小时价格变化统计
例如:
get_24hr_ticker(symbol="BNBUSDT")
get_all_24hr_tickers() :获取所有符号的 24 小时统计数据
例如:
get_all_24hr_tickers()
get_trading_day_ticker(symbol, type="FULL") :获取交易日价格变化统计
例如:
get_trading_day_ticker(symbol="BTCUSDT", type="FULL")
get_all_trading_day_tickers(type="FULL") :获取所有交易品种的交易日统计数据
例如:
get_all_trading_day_tickers(type="MINI")
get_rolling_window_ticker(symbol, window_size="1d", type="FULL") :获取滚动窗口价格统计数据
例如:
get_rolling_window_ticker(symbol="BTCUSDT", window_size="4h")
get_all_rolling_window_tickers(window_size="1d", type="FULL") :获取所有符号的滚动窗口统计信息
例如:
get_all_rolling_window_tickers(window_size="4h", type="MINI")
get_average_price(symbol) :获取当前平均价格(5分钟加权平均值)
例如:
get_average_price(symbol="BTCUSDT")
get_book_ticker(symbol) :获取最佳买入/卖出价格和数量
例如:
get_book_ticker(symbol="ETHBTC")
get_all_book_tickers() :获取所有符号的最佳买入/卖出价
示例:
get_all_book_tickers()
市场信息
get_exchange_info() :获取全面的交易所信息,包括交易规则和交易品种列表
get_trading_fees() :获取默认交易费率(注意:出于演示目的,返回默认公开费用)
WebSocket 流
subscribe_to_trade_stream(symbol) :订阅实时交易事件
例如:
subscribe_to_trade_stream(symbol="BTCUSDT")
subscribe_to_kline_stream(symbol, interval="1m") : 订阅 K 线/K 线更新
例如:
subscribe_to_kline_stream(symbol="BTCUSDT", interval="5m")
subscribe_to_ticker_stream(symbol) :订阅 24 小时股票代码更新
例如:
subscribe_to_ticker_stream(symbol="ETHUSDT")
subscribe_to_book_ticker_stream(symbol) :订阅最佳买入/卖出更新
例如:
subscribe_to_book_ticker_stream(symbol="BNBUSDT")
subscribe_to_depth_stream(symbol, levels=10) :订阅订单簿更新
例如:
subscribe_to_depth_stream(symbol="BTCUSDT", levels=5)
list_active_subscriptions() :列出所有活动的 WebSocket 订阅
例如:
list_active_subscriptions()
get_latest_stream_data(stream_name) :从流中获取最新数据
例如:
get_latest_stream_data(stream_name="btcusdt@trade")
unsubscribe_from_stream(stream_name) :取消订阅流
例如:
unsubscribe_from_stream(stream_name="btcusdt@kline_1m")
cleanup_all_streams() :关闭所有 WebSocket 连接并清理资源
例如:
cleanup_all_streams()
项目结构
示例
基本连接
获取当前市场数据
使用 WebSocket 流
实施情况
有关已实施和计划的 API 端点的详细概述,请参阅API 实施状态文档。
扩展服务器
添加新工具
要添加新工具,请在 Binance API 模块中创建适当的函数,然后在其中一个命令模块中将其注册为 MCP 工具。
支持私有 API 端点
支持经过身份验证的 API 调用:
修改
binance_api.py以包含身份验证为交易操作创建额外的命令模块
在
server.py中注册新命令
故障排除
连接问题:在尝试连接客户端之前,请确保服务器正在运行
速率限制:币安可能会对过多的 API 调用进行速率限制;考虑为高流量部署实施缓存
WebSocket 稳定性:WebSocket 连接可能会在 24 小时后断开(币安限制);服务器将尝试自动重新连接
数据格式:不同的符号或间隔可能返回略有不同的格式的数据
执照
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。
致谢
Binance 提供全面的公共 API
用于标准化 LLM 工具交互的 MCP 项目