加密货币市场数据服务

Binance MCP Server是一个提供实时加密货币市场数据访问的服务,支持获取交易对信息、订单簿分析和历史数据等功能,适用于金融分析和交易决策。

  • by danishashko
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 danishashko/binance-mcp-server

使用说明

Binance MCP Server


模型上下文协议(MCP)服务器,提供对Binance公共Spot API的访问,使LLM能够获取实时加密货币市场数据、交易对信息和交易所统计数据。

特性

🎯 核心能力

  • 实时价格数据:获取任何交易对的当前价格和24小时统计数据
  • 市场发现:按资产或关键字搜索和探索可用的交易对
  • 订单簿分析:使用买卖数据分析市场深度
  • 历史数据:检索烛台/OHLC数据以进行技术分析
  • 贸易流量:查看最近的交易和市场活动
  • 交流信息:访问交易规则、利率限制和交易品种详细信息

🔧 可用工具

  1. binance_get-ticker -获取当前价格和24小时统计数据
  2. 二进制搜索符号 -按资产或关键字查找交易对
  3. binance_get_order_book -获取订单深度(出价/要价)
  4. binance_getklines -获取烛台/OHLC数据以绘制图表
  5. binance_get_recent_trades -查看最近执行的交易
  6. binance_get_sexchange_info -获取全面的交易信息
  7. binance_get_price -快速价格查询(轻量级)
  8. binance_get_best_price -获得最佳出价/要价

✨ 主要特点

  • 不要求进行验证:所有终结点都使用公共API(不需要API密钥)
  • 双响应格式:人类可读的Markdown和机器可读的JSON
  • 智能截断:在有用的指导下自动处理大型回复
  • 可操作错误:清除错误消息,指导用户正确使用
  • 了解费率限制:尊重币安API费率限制并提供指导

安装

先决条件

  • Python 3.10或更高版本
  • pip(Python包管理器)

设置

  1. 克隆或下载此存储库

  2. 安装依赖项:

    pip install -r requirements.txt
    
  3. 验证安装:

    python -m py_compile binance_mcp.py
    

用法

使用克劳德桌面

将此添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "binance": {
      "command": "python",
      "args": ["/absolute/path/to/binance_mcp.py"]
    }
  }
}

替换 /absolute/path/to/binance_mcp.py 带有文件的实际路径。

测试

您可以使用MCP检查器或直接调用工具来测试服务器:

# Example: Get current Bitcoin price
binance_get_price(symbols=["BTCUSDT"])

# Example: Search for all BTC trading pairs
binance_search_symbols(base_asset="BTC")

# Example: Get 24hr statistics
binance_get_ticker(symbols=["BTCUSDT", "ETHUSDT"])

# Example: Get hourly candlestick data
binance_get_klines(symbol="BTCUSDT", interval="1h", limit=24)

工具详细信息

binance_get-ticker

获取当前价格和24小时交易统计数据。

参数:

  • symbols:交易对符号列表(必填)
  • type:“满”或“迷你”(默认值:“全”)
  • response_format:“markdown”或“json”(默认值:“markdown”)

示例:

binance_get_ticker(symbols=["BTCUSDT", "ETHUSDT"], type="FULL")

退货:当前价格、24小时变化率、高/低、交易量、买卖等。


二进制搜索符号

通过筛选基础资产、报价资产或关键字来查找交易对。

参数:

  • base_asset:基础货币过滤器(例如“BTC”)
  • quote_asset:报价货币过滤器(例如“USDT”)
  • search_term:在符号名称中搜索的关键字
  • status:“交易”或“全部”(默认为“交易”)
  • response_format:“markdown”或“json”(默认值:“markdown”)

示例:

# Find all BTC pairs
binance_search_symbols(base_asset="BTC")

# Find all USDT pairs
binance_search_symbols(quote_asset="USDT")

# Find specific pair
binance_search_symbols(base_asset="BTC", quote_asset="USDT")

# Search by keyword
binance_search_symbols(search_term="DOGE")

退货:具有状态和特征的匹配交易对列表。


binance_get_order_book

获取订单深度,显示出价和要价。

参数:

  • symbol:交易对符号(必填)
  • limit:深度级别-5、10、20、50、100、500、1000或5000(默认值:100)
  • response_format:“markdown”或“json”(默认值:“markdown”)

示例:

binance_get_order_book(symbol="BTCUSDT", limit=20)

退货:包含价格、数量和价差分析的订单簿。


binance_getklines

获取烛台/OHLC数据以进行技术分析。

参数:

  • symbol:交易对符号(必填)
  • interval:时间间隔(必填)-“1m”、“5m”、“15mm”、“30m”、“1h”、“4h”、“1d”、“1w”、“1m”
  • limit:蜡烛数(默认值:100,最大值:1000)
  • start_time:可选的开始时间戳(毫秒)
  • end_time:可选结束时间戳(毫秒)
  • response_format:“markdown”或“json”(默认值:“markdown”)

示例:

# Last 24 hours of hourly data
binance_get_klines(symbol="BTCUSDT", interval="1h", limit=24)

# Last 30 days of daily data
binance_get_klines(symbol="ETHUSDT", interval="1d", limit=30)

# Last year of weekly data
binance_get_klines(symbol="BNBUSDT", interval="1w", limit=52)

退货:OHLC数据,包括交易量、交易计数和变化百分比。


binance_get_recent_trades

获取某个交易品种的最近执行交易。

参数:

  • symbol:交易对符号(必填)
  • limit:交易次数(默认值:100,最大值:1000)
  • response_format:“markdown”或“json”(默认值:“markdown”)

示例:

binance_get_recent_trades(symbol="BTCUSDT", limit=50)

退货:最近的交易,包括价格、数量、时间和买卖双方。


binance_get_sexchange_info

获取全面的交易信息和交易规则。

参数:

  • symbols:特定符号的可选列表
  • response_format:“markdown”或“json”(默认值:“markdown”)

示例:

# Get info for specific symbols
binance_get_exchange_info(symbols=["BTCUSDT", "ETHUSDT"])

# Get info for all symbols (large response)
binance_get_exchange_info()

退货:交易所时区、汇率限制、交易规则、交易品种详细信息。


binance_get_price

仅获取最新价格(轻量级,快速查询)。

参数:

  • symbols:交易对符号列表(必填)
  • response_format:“markdown”或“json”(默认值:“markdown”)

示例:

binance_get_price(symbols=["BTCUSDT", "ETHUSDT", "BNBUSDT"])

退货:每个符号的当前价格。


binance_get_best_price

从订单簿中获取最佳买卖价格。

参数:

  • symbols:交易对符号列表(必填)
  • response_format:“markdown”或“json”(默认值:“markdown”)

示例:

binance_get_best_price(symbols=["BTCUSDT"])

退货:包含数量和价差分析的最佳买卖价格。

常见用例

1.查看当前加密货币价格

# Simple price check
binance_get_price(symbols=["BTCUSDT", "ETHUSDT"])

# Detailed 24hr statistics
binance_get_ticker(symbols=["BTCUSDT", "ETHUSDT"])

2.查找交易对

# Find all Bitcoin pairs
binance_search_symbols(base_asset="BTC")

# Find all USDT pairs
binance_search_symbols(quote_asset="USDT")

# Search for specific coins
binance_search_symbols(search_term="DOGE")

3.技术分析

# Get hourly data for last 24 hours
binance_get_klines(symbol="BTCUSDT", interval="1h", limit=24)

# Get daily data for last 30 days
binance_get_klines(symbol="BTCUSDT", interval="1d", limit=30)

4.市场深度分析

# Check order book depth
binance_get_order_book(symbol="BTCUSDT", limit=100)

# Get best bid/ask
binance_get_best_price(symbols=["BTCUSDT"])

5.监控市场活动

# View recent trades
binance_get_recent_trades(symbol="BTCUSDT", limit=100)

错误处理

服务器提供可操作的错误消息:

无效符号

Error: Symbol 'BTCUSD' not found on Binance.

Did you mean: BTCUSDT, BTCBUSD, BTCUSDC?

To find valid trading pairs, use the 'binance_search_symbols' tool:
- Search by base asset: binance_search_symbols(base_asset="BTC")
- Search by quote asset: binance_search_symbols(quote_asset="USDT")

速率限制

Error: Rate limit exceeded (HTTP 429)

Binance rate limit: 6000 request weight per minute

Action: Wait 60 seconds before making more requests.
Tip: Use multiple symbols in one request instead of separate requests.

响应太大

Response truncated: Showing 50 of 200 symbols

The full response exceeds the 25,000 character limit.

To get more specific results:
- Filter by asset: binance_search_symbols(base_asset="BTC")
- Request fewer symbols: binance_get_ticker(symbols=["BTCUSDT", "ETHUSDT"])

速率限制

币安API费率限制:

  • 请求重量:每分钟6000
  • 原始请求:每5分钟61000

服务器尊重这些限制,并在接近限制时提供指导。

响应格式

Markdown(默认)

人类可读格式,包括:

  • 标题和章节
  • 结构化数据表
  • 视觉指示器表情符号
  • 人类可读的时间戳
  • 带货币符号的格式化数字

JSON

机器可读格式,包括:

  • 完整的现场数据
  • 结构一致
  • 数字时间戳
  • 包含所有元数据

技术细节

建筑

  • 语言:Python 3.10+
  • 框架:FastMCP(MCP Python SDK)
  • HTTP客户端:httpx(异步)
  • 验证:Pydantic v2
  • 运输标准: stdio

API端点

  • 基本URL: https://data-api.binance.vision
  • 公共API:不需要身份验证

字符限制

  • 最大响应长度:25000个字符
  • 超过时自动截断并引导

故障排除

服务器无法启动

  • 检查Python版本: python --version (必须为3.10+)
  • 验证依赖关系: pip list | grep -E "fastmcp|httpx|pydantic"
  • 测试语法: python -m py_compile binance_mcp.py

连接错误

  • 检查互联网连接
  • 验证Binance API是否可访问: curl https://api.binance.com/api/v3/ping

未找到符号

  • 使用 binance_search_symbols 查找有效的交易对
  • 确保符号格式正确(例如,“BTCUSDT”而不是“BTC-USDT”)

贡献

欢迎提出建议和改进!此MCP服务器遵循以下MCP最佳实践:

  • 带有服务前缀的工具命名
  • 全面的文件
  • 可操作的错误消息
  • 响应格式灵活性
  • 带引导的智能截断

许可证

MIT许可证-可根据需要自由使用和修改。

资源

版本历史

v1.0.0(初始版本)

  • Binance Spot API的8个综合工具
  • 公共API端点(无身份验证)
  • 双响应格式(Markdown/JSON)
  • 智能截断和错误处理
  • 完整的文件

交易愉快! 🚀📈