Binance MCP Server

Binance MCP Server

一个模型上下文协议服务器,向大型语言模型(LLMs)公开币安加密货币交易所的数据,允许代理访问实时价格、订单簿和历史市场数据,而无需 API 密钥。

Category
访问服务器

README

Binance MCP 服务器

一个模型上下文协议 (MCP) 服务器,用于向大型语言模型 (LLM) 代理公开 Binance 加密货币交易所的数据。该服务器允许 LLM 通过标准化接口访问来自 Binance 的实时和历史市场数据。

特性

  • 实时价格数据: 获取 Binance 上任何交易对的当前价格
  • 订单簿访问: 检索订单簿快照,显示不同价格水平的买/卖兴趣
  • 历史价格数据: 获取任何时间范围的 OHLCV(开盘价、最高价、最低价、收盘价、成交量)K线图数据
  • 实时 WebSocket 流: 通过 WebSockets 订阅实时交易、报价和订单簿更新
  • 全面的市场数据: 访问交易、24 小时统计数据、聚合交易等
  • 交易所信息: 访问交易规则、符号信息和费用结构
  • 只读操作: 所有数据均通过 Binance 的公共 REST API 获取(无需 API 密钥)
  • MCP 标准兼容: 适用于任何 MCP 兼容的 LLM 客户端

要求

  • Python 3.8+
  • 带有 CLI 工具的 mcp 包 (mcp[cli])
  • 用于 REST API 的 requests
  • 用于 WebSocket 流的 websockets
  • 用于服务的 uvicorn (可选)

安装

  1. 克隆此存储库:
git clone https://github.com/yourusername/binance_mcp_server.git
cd binance_mcp_server
  1. 安装依赖项:
pip install -r requirements.txt

用法

直接运行服务器

要以独立模式运行服务器:

python run_server.py

这将启动 MCP 服务器,该服务器将通过 STDIO 侦听连接。

使用 MCP Inspector 的开发模式

对于开发和测试,请使用 MCP Inspector:

mcp dev run_server.py

这将打开 MCP Inspector 界面,您可以在其中交互式地测试服务器的工具。

在 Claude Desktop 中安装

要将此服务器与 Claude Desktop 一起使用:

  1. 如果尚未安装,请安装 MCP CLI 工具:
pip install "mcp[cli]"
  1. 在 Claude Desktop 中安装服务器:
mcp install run_server.py
  1. 现在,您可以直接在 Claude Desktop 对话中访问 Binance 数据。

示例客户端

提供了一个示例客户端脚本来演示程序化用法:

python example_client.py

此脚本连接到服务器并检索各种类型的市场数据。

可用工具

市场数据

  • 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_recent_trades(symbol, limit=20): 获取符号的最新交易

    • 示例: get_recent_trades(symbol="BTCUSDT", limit=50)
  • 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_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()

项目结构

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 服务器设置和初始化

示例

获取当前市场数据

# 获取比特币的当前价格
btc_price = get_price(symbol="BTCUSDT")

# 获取详细的 24 小时统计数据
btc_stats = get_24hr_ticker(symbol="BTCUSDT")
print(f"BTC 价格变动: {btc_stats['priceChangePercent']}%")
print(f"BTC 24 小时成交量: {btc_stats['volume']} BTC")

使用 WebSocket 流

# 订阅实时交易更新
trade_sub = subscribe_to_trade_stream(symbol="BTCUSDT")

# 过一段时间后,获取最新的交易数据
latest_trade = get_latest_stream_data(stream_name="btcusdt@trade")
print(f"最新交易价格: {latest_trade['data']['p']}")

# 订阅 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")

实施状态

有关已实施和计划的 API 端点的详细概述,请参阅 API 实施状态 文档。

扩展服务器

添加新工具

要添加新工具,请在 Binance API 模块中创建适当的函数,然后将它们注册为其中一个命令模块中的 MCP 工具。

支持私有 API 端点

要支持经过身份验证的 API 调用:

  1. 修改 binance_api.py 以包含身份验证
  2. 为交易操作创建其他命令模块
  3. server.py 中注册新命令

故障排除

  • 连接问题: 确保服务器在尝试与客户端连接之前正在运行
  • 速率限制: Binance 可能会限制过多的 API 调用;考虑为高流量部署实施缓存
  • WebSocket 稳定性: WebSocket 连接可能会在 24 小时后断开连接(Binance 限制);服务器将尝试自动重新连接
  • 数据格式: 不同的符号或间隔可能会以略有不同的格式返回数据

许可证

该项目已获得 MIT 许可证的许可 - 有关详细信息,请参阅 LICENSE 文件。

致谢

  • 感谢 Binance 提供全面的公共 API
  • 感谢 MCP 项目标准化 LLM 工具交互

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选