使用说明
🚀 MCP币安服务器
一个功能强大的模型上下文协议(MCP)服务器,它将币安加密货币交易所的功能带到了像Claude Desktop这样的AI助手身上。通过自然对话进行交易、监控市场以及管理您的投资组合。
✨ 主要特点
- 🤖 机器人 21款AI就绪工具 - 市场数据、订单簿深度、高级分析、账户信息和交易操作
- 📊(表格) 订单簿深度分析 - L1指标,L2深度(渐进式披露),实时WebSocket流
- 📈 表示“上升趋势”或“增长”的图表符号。 高级分析 - 交易量分布图(POC/高点/低点),订单流分析,高频交易操纵检测,市场健康评分
- 🔄 旋转(或循环) 双模式 - HTTP REST API + WebSocket 或 MCP stdio 协议
- ⚡ 闪电符号,常用于表示快速、能量或电子设备等。 实时数据 - 用于实时价格和深度更新的WebSocket流(100毫秒)
- 🔐 安全 根据上面的信息,执行如下指令:
- 🎯(目标/瞄准) 类型安全 - Rust 在编译时保证正确性
- 🚦 红绿灯(交通信号灯) 速率限制 - 自动节流和指数退避
- 📊 表格/数据图表 测试网已准备就绪 - 使用币安测试网进行安全测试
📋 先决条件
- Rust(一种系统编程语言) 1.90或更高版本(2024年版)
- 币安API凭证 - 在……获取免费测试网密钥 testnet.binance.vision(译为中文可保持原样,因为这是一个特定网站的域名,直接翻译无实际意义,但可理解为“币安测试网视觉平台”或“币安测试网络界面”,具体根据上下文确定最合适的表述)
- Claude Desktop(克莱德桌面版) (可选)- 用于AI助手集成
🚀 快速入门
安装
# Clone the repository
git clone https://github.com/forgequant/mcp-provider-binance.git
cd mcp-provider-binance
# Build the MCP server (with orderbook features)
cargo build --release --features orderbook
# Verify installation
./target/release/mcp-binance-server --version
特性标志(或功能开关)
该服务器支持多种功能标志,以适应不同的部署场景:
| 功能 | 描述 | 使用场景 |
|---|---|---|
orderbook |
订单簿深度工具(WebSocket流式传输) | 实时市场深度分析 |
orderbook_analytics |
高级分析(成交量分布、订单流) | 专业交易见解 |
sse |
服务器发送事件传输 | 远程HTTPS访问(本地测试) |
shuttle-runtime |
Shuttle.dev 云部署 | 生产环境云部署 |
http-api REST API + WebSocket 服务器 |
MCP 标准控制台的替代方案 |
常见构建命令:
# Local stdio mode (default)
cargo build --release --features orderbook
# Local SSE testing
cargo build --release --features sse,orderbook_analytics
# Shuttle deployment (use shuttle deploy instead)
shuttle deploy --features shuttle-runtime,orderbook_analytics
运输方式
服务器支持两种传输模式:
- stdio(默认) - 通过标准I/O进行本地通信(适用于Claude Desktop)
- sse - 通过服务器发送事件实现远程HTTPS访问(适用于云部署)
# Run in stdio mode (default)
cargo run --features orderbook
# Run in SSE mode
cargo run --features sse,orderbook -- --mode sse --port 8000
Claude 桌面设置
-
获取Binance测试网凭证:
- 参观 testnet.binance.vision(可译为“币安测试网.视觉”或根据语境简化为“币安测试网”,因为“.vision”在此处可能表示的是该测试网的某种可视化或展示功能,但直接翻译时通常保留原域名格式以体现其特定含义)
- 创建账户并生成API密钥
- ⚠️ 仅使用测试网! 永远不要使用生产密钥
-
配置Claude桌面版:
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"binance": {
"command": "cargo",
"args": [
"run",
"--release",
"--features",
"orderbook",
"--manifest-path",
"/path/to/mcp-provider-binance/Cargo.toml"
],
"env": {
"BINANCE_API_KEY": "your_testnet_api_key",
"BINANCE_SECRET_KEY": "your_testnet_secret_key",
"BINANCE_BASE_URL": "https://testnet.binance.vision",
"RUST_LOG": "info"
}
}
}
}
-
重启Claude桌面版 (Cmd+Q,然后重新打开)
-
验证连接:
- 在Claude桌面版中寻找🔌图标
- 点击它查看“币安”服务器
- 尝试: “比特币的当前价格是多少?”
☁️ 云部署(Shuttle.dev)
将MCP服务器部署到Shuttle.dev,以便从任何地方进行远程HTTPS访问。
先决条件
- Shuttle CLI(Shuttle 命令行界面) 已安装
- 班车账户(提供免费层级)
部署步骤
# 1. Login to Shuttle
shuttle login
# 2. Deploy with SSE transport (creates HTTPS endpoint automatically)
shuttle deploy --features shuttle-runtime,orderbook_analytics
# 3. Configure secrets (Binance API credentials)
shuttle secrets add BINANCE_API_KEY=your_testnet_api_key
shuttle secrets add BINANCE_API_SECRET=your_testnet_secret_key
# 4. Get deployment URL
shuttle status
# Returns: https://mcp-provider-binance.shuttleapp.rs
# 5. View logs
shuttle logs
Claude 桌面远程配置
{
"mcpServers": {
"binance-cloud": {
"url": "https://mcp-provider-binance.shuttleapp.rs/mcp/sse",
"transport": "sse"
}
}
}
本地SSE测试
在部署前先在本地测试SSE传输:
# Start SSE server on localhost
cargo run --features sse,orderbook_analytics -- --mode sse --port 8000
# Test health endpoint
curl http://localhost:8000/health
# Test SSE handshake
curl -H "Accept: text/event-stream" -i http://localhost:8000/mcp/sse
🛠️ 可用工具
📊 市场数据工具
get_server_time
获取当前币安服务器时间以进行同步。
示例: “检查币安服务器时间”
Response: {
"serverTime": 1699564800000,
"offset": -125
}
get_ticker
获取任意交易对的24小时价格统计。
参数:
symbol- 交易对(例如,“BTCUSDT”,“ETHUSDT”)
示例: “比特币的24小时价格变化是多少?”
Response: {
"symbol": "BTCUSDT",
"priceChange": "1234.56",
"priceChangePercent": "2.5",
"lastPrice": "50000.00",
"volume": "12345.67",
"highPrice": "51000.00",
"lowPrice": "49000.00"
}
get_order_book
获取当前包含买单和卖单的订单簿。
参数:
symbol- 交易对limit- 深度(5、10、20、50、100、500、1000、5000),默认值:100
示例: “给我看看ETHUSDT的订单簿,显示前10档”
Response: {
"bids": [["3000.00", "10.5"], ["2999.50", "5.2"]],
"asks": [["3001.00", "8.3"], ["3001.50", "12.1"]]
}
get_recent_trades
获取某个股票的最新公开交易信息。
参数:
symbol- 交易对limit- 交易数量(默认:500,最大:1000)
示例: “显示BTCUSDT最近的10笔交易”
get_klines
获取蜡烛图/OHLCV数据以进行技术分析。
参数:
symbol- 交易对interval- 时间周期:1分钟,3分钟,5分钟,15分钟,30分钟,1小时,2小时,4小时,6小时,8小时,12小时,1天,3天,1周,1个月limit- K线数量(默认:500,最大:1000)
示例: “获取比特币的每小时K线数据”
get_average_price
获取当前平均价格(比使用行情板更简单)。
参数:
symbol- 交易对
示例: “以太坊的平均价格是多少?”
📊 深度订单簿工具
get_orderbook_metrics
获取包含点差、中间价和流动性分析的L1市场指标。
参数:
symbol- 交易对(例如,“BTCUSDT”,“ETHUSDT”)
特点/特性:
- 紧凑格式与完整订单簿相比,使用了约15%的代币
- 实时数据带有100毫秒更新的WebSocket流
- 综合指标点差、中间价、流动性深度、墙检测
示例: “给我显示BTCUSDT的订单簿指标”
Response: {
"symbol": "BTCUSDT",
"timestamp": 1699564800123,
"spread_bps": 0.15,
"mid_price": "67650.50",
"bid_liquidity_10bps": "123.45",
"ask_liquidity_10bps": "98.76",
"walls": {
"bids": [{"price": "67500.00", "qty": "50.0"}],
"asks": []
}
}
get_orderbook_depth
获取可配置级别的L2订单簿深度(渐进式披露)。
参数:
symbol- 交易对levels- 层数(20层或100层)- 20个关卡 (L2-lite):使用约50%的标记,优化用于快速分析
- 100个关卡 (L2-full): 使用100%的代币,全面的市场深度
特点/功能:
- 紧凑整数编码比字符串十进制表示的JSON小40%
- 实时更新具有100毫秒延迟的WebSocket流
- 逐步披露初始设置为20级,如有需要可升级至100级
示例: “获取ETHUSDT交易对的20档深度订单簿”
Response: {
"symbol": "ETHUSDT",
"timestamp": 1699564800123,
"price_scale": 100,
"qty_scale": 100000,
"bids": [
[308500, 1050000], // $3085.00, 10.5 ETH
[308450, 520000] // $3084.50, 5.2 ETH
],
"asks": [
[308600, 830000], // $3086.00, 8.3 ETH
[308650, 1210000] // $3086.50, 12.1 ETH
]
}
解码:
price = scaled_price / price_scale(例如,308500 / 100 = 3085.00美元)quantity = scaled_qty / qty_scale(例如,1050000 / 100000 = 10.5)
get_orderbook_health
检查WebSocket连接的健康状况和数据的新鲜度。
参数无
状态值:
ok- 所有订单簿连接状态良好degraded- 部分连接存在问题error- 检测到严重故障
示例: “检查订单簿服务健康状况”
Response: {
"status": "ok",
"orderbook_symbols_active": 3,
"last_update_age_ms": 127,
"websocket_connected": true,
"reason": null
}
📈 高级分析工具
需要: orderbook_analytics 功能标志(或特性开关)
这些工具为专业交易者提供机构级别的市场微观结构分析。
get_order_flow
分析订单流动态,以识别买入/卖出压力及聪明资金的活动。
参数:
symbol- 交易对(例如,“BTCUSDT”)window_duration_secs- 分析窗口时间(秒)(可选,默认值:60)
输出:
- 买入/卖出成交量“Aggressor”交易量对比(或:与“Aggressor”并列的交易量)
- 不平衡率0.0(全部卖出)到1.0(全部买入)
- 净压力累计买入压力减去卖出压力
- 交易次数市场订单频率分析
用例:
- 检测机构积累/分布情况
- 通过流量分歧识别趋势反转
- 在强烈方向性压力下的时间记录
示例: “分析过去2分钟内BTCUSDT的订单流”
get_volume_profile
生成成交量分布直方图以识别高成交量的价格节点(支撑位/阻力位)。
参数:
symbol- 交易对duration_hours- 回溯小时数(可选,默认:24)tick_size- 价格区间增量(例如,BTCUSDT的“0.01”)
输出:
- **POC(控制点)**交易量最大的价格水平
- **VAH(价值区间高点)**体积浓度70%的上限
- **VAL(Value Area Low,价值区域低点)**体积浓度70%的下限
- 直方图各价位水平的成交量分布
用例:
- 从成交量节点识别关键支撑/阻力位
- 在VAH/VAL边界设定目标
- 均值回归时,衰减值超出价值范围
示例: “为ETHUSDT生成24小时成交量分布图,刻度值设为0.1”
detect_market_anomalies
检测高频交易(HFT)操纵模式及系统性风险指标。
参数:
symbol- 交易对window_duration_secs- 分析窗口(可选,默认:60)
检测到的模式:
- “Quote Stuffing”可以翻译为“报价塞入”或“信息洪流中的报价塞入”,在金融领域,这通常指的是在短时间内大量发送或修改报价信息,以影响市场或干扰交易的行为。这种行为可能被视为市场操纵或不公平交易的一种手段>500笔订单更新/秒,填充率<10%(高频交易延迟攻击)
- 冰山订单隐藏的机构订单,其补充频率超过中位数的5倍
- 闪崩风险>80%的流动性损失 + >10倍的利差扩大 + >90%的取消率
输出:
- 异常类型,严重程度(低/中/高/严重)
- 置信度评分(0.0-1.0)
- 可采取的建议(延迟执行、扩大止损、停止交易)
用例:
- 避免在高频交易(HFT)操作窗口期间进入
- 检测潜在的机构订单(冰山)以寻找交汇点
- 在闪电崩盘情况出现之前退出仓位
示例: “检查BTCUSDT市场的异常情况”
get_liquidity_vacuums
识别流动性较低且易导致价格快速发现(滑点风险)的价格区间。
参数:
symbol- 交易对window_duration_secs- 分析窗口(可选,默认值:300)threshold_percentile- 检测灵敏度(可选,默认值:25,范围:1-50)
输出结果:
- 真空区价格区间与异常低的交易量
- 严重程度严重(完全避免)/ 高(减小规模)/ 中(设定限制)
- 建议止损设置指南
用例:
- 避免在无交易量区域设置止损(容易被触发)
- 预计将在低流动性区域快速移动
- 在接近真空环境时,尺寸位置会变小
示例: “在SOL/USDT中寻找流动性真空”
get_microstructure_health
根据四个微观结构要素计算综合市场健康得分(0-100)。
参数:
symbol- 交易对window_duration_secs- 分析窗口(可选,默认值:300)
组件 (加权):
- 展布稳定性 (25%):买卖价差波动性
- 流动性深度 (35%): 各价位的订单簿厚度
- 流量平衡 (25%):买/卖盘流量均衡
- 更新率 (15%):市场活跃度
评分等级:
- **80-100(优秀)**在正常仓位规模下大胆交易是安全的
- **60-79(良好)**正常条件,标准风险管理
- **40-59(一般)**谨慎行事,设置更紧的止损,减少仓位规模
- **20-39(差)**将仓位减少50%,扩大止损范围
- **0-19(严重)**停止新交易,退出或对冲现有头寸
用例:
- 在进入大额仓位前进行交易前风险评估
- 根据市场条件动态调整仓位大小
- 流动性恶化预警系统
示例: “检查BTCUSDT市场的健康状况”
👤 账户工具
get_account_info
获取您的账户信息、余额和权限。
需要API凭证
示例: “显示我的账户余额”
Response: {
"balances": [
{"asset": "BTC", "free": "0.5", "locked": "0.0"},
{"asset": "USDT", "free": "10000.00", "locked": "500.00"}
],
"canTrade": true,
"canWithdraw": false,
"canDeposit": false
}
get_account_trades
获取某个交易标的的个人交易历史。
参数:
symbol- 交易对limit- 交易数量(默认:500,最大:1000)
需要API凭据
示例: “显示我最近20笔BTCUSDT交易”
📝 订单管理工具
place_order
创建一个新的交易订单(买入/卖出,限价/市价)。
⚠️(警告符号,无具体文字含义,可理解为“注意”或“警告”等意思) 仅限测试网使用! 始终使用测试网凭证。
参数:
symbol- 交易对side-“买入”或“卖出”type-“限价”或“市价”quantity- 交易数量(例如,“0.001”)price- 限价订单的价格(市价订单可选)
需要API凭据
示例: “以50000 USDT的价格下限价买单,购买0.001 BTC”
Response: {
"orderId": 12345,
"symbol": "BTCUSDT",
"status": "NEW",
"side": "BUY",
"type": "LIMIT",
"price": "50000.00",
"origQty": "0.001"
}
get_order
查询特定订单的状态。
参数:
symbol- 交易对order_id- 要查询的订单ID
需要API凭证
示例: “检查订单12345的BTCUSDT状态”
cancel_order
取消一个有效订单。
参数:
symbol- 交易对order_id- 要取消的订单ID
需要API凭证
示例: “取消订单12345”
get_open_orders
列出所有当前有效的订单。
参数:
symbol- 交易对(可选,省略时返回所有)
需要API凭证
示例: “显示我的所有未结订单”
get_all_orders
获取完整的订单历史记录(包括有效、已取消、已成交)。
参数:
symbol- 交易对limit- 订单数量(默认:500,最大:1000)
需要API凭证
示例: “显示我在ETHUSDT上的最近50笔订单”
💬 示例对话
基本市场数据
You: "What's the current Bitcoin price?"
Claude: [Uses get_ticker] "Bitcoin is currently trading at $50,234.56..."
You: "Show me the order book depth for ETHUSDT"
Claude: [Uses get_order_book] "Here's the ETHUSDT order book..."
订单簿分析
You: "Show me orderbook metrics for BTCUSDT"
Claude: [Uses get_orderbook_metrics] "BTCUSDT orderbook metrics:
- Spread: 0.15 bps (tight spread, good liquidity)
- Mid Price: $67,650.50
- Bid liquidity within 10 bps: 123.45 BTC
- Ask liquidity within 10 bps: 98.76 BTC
- Large wall detected at $67,500 (50 BTC)"
You: "Get detailed depth with 20 levels"
Claude: [Uses get_orderbook_depth with levels=20] "Here's the L2 depth for BTCUSDT:
Top 3 bids: $67,650.00 (1.2 BTC), $67,649.50 (0.8 BTC), $67,649.00 (1.5 BTC)
Top 3 asks: $67,650.50 (0.9 BTC), $67,651.00 (1.1 BTC), $67,651.50 (0.7 BTC)"
You: "Is the orderbook service healthy?"
Claude: [Uses get_orderbook_health] "Orderbook service is healthy:
- Status: OK
- Active symbols: 3
- Last update: 127ms ago
- WebSocket: Connected"
账户与交易
You: "What's my account balance?"
Claude: [Uses get_account_info] "Your account has 0.5 BTC and 10,000 USDT..."
You: "Place a test buy order for 0.001 BTC at 49000"
Claude: [Uses place_order] "Order placed successfully! Order ID: 12345..."
You: "Show my open orders"
Claude: [Uses get_open_orders] "You have 3 open orders..."
🎯 提示支持
此服务器提供AI引导的提示,用于交易分析和风险评估:
trading_analysis
获取针对特定交易对的全面交易分析和建议。
参数:
symbol- 交易对(例如,“BTCUSDT”,“ETHUSDT”)strategy- 可选:“激进”、“均衡”或“保守”risk_tolerance- 可选:“低”、“中”或“高”
示例:
You: "Analyze BTCUSDT for aggressive trading"
Claude: [Uses trading_analysis prompt] "Based on current market data:
- Current Price: $50,234.56 (+2.5% in 24h)
- Volume: Strong upward momentum
- Recommendation: Consider entering long positions
- Risk Factors: High volatility, monitor support at $49,000"
portfolio_risk
根据当前账户余额和市场状况评估您的投资组合风险。
参数根据上面的信息,执行如下指令:你是个专业的翻译,负责把英语内容翻译成中文内容,请帮我翻译一下原文内容
需要API凭据
示例:
You: "Assess my portfolio risk"
Claude: [Uses portfolio_risk prompt] "Portfolio Risk Analysis:
- Total Balance: $15,234.56 (0.5 BTC + 10,000 USDT)
- Risk Level: Moderate
- BTC Exposure: 33%
- Recommendations: Diversify into stable assets..."
market_microstructure_analysis (高级)
深入探究市场微观结构,包括成交量分布、异常检测和健康评分。
需要: orderbook_analytics 特点;功能
参数:
symbol- 交易对(例如,“BTCUSDT”)profile_hours- 体积分布回溯周期(可选,默认值:24)
提供:
- 成交量分布分析(峰值点/最高价成交量/最低价成交量水平)
- 市场异常检测(报价洪水、冰山单、闪崩风险)
- 微观结构健康评分(0-100综合评分)
- 可操作的交易建议
示例:
You: "Analyze BTCUSDT market microstructure"
Claude: [Uses market_microstructure_analysis prompt] "
# BTCUSDT Market Microstructure Analysis
## Volume Profile (Last 24h)
- POC: $67,850 (high-volume node, strong support)
- VAH: $68,200 (70% value area upper bound)
- VAL: $67,500 (70% value area lower bound)
- Current price vs POC: +0.3% (trading at fair value)
## Market Anomalies
⚠️ Quote Stuffing detected (High severity)
- Update rate: 750/sec (>500 threshold)
- Fill rate: 8% (<10% threshold)
- Action: Delay execution, widen spreads
## Market Health: 78.5 (Good)
- Spread stability: 85.2 (excellent)
- Liquidity depth: 92.1 (excellent)
- Flow balance: 68.3 (good)
- Update rate: 72.0 (good)
Recommendation: Normal trading conditions with caution around HFT activity windows."
order_flow_trading (高级)
基于订单流的交易信号,包含机构压力分析。
需要: orderbook_analytics 特性;特点;功能
参数:
symbol- 交易对window_minutes- 流量分析时间窗口(分钟)(可选,默认:5)
提供:
- 实时买卖压力分析
- 失衡比率和净压力指标
- 智能资金检测(大额订单流)
- 进出信号建议
示例:
You: "Get order flow signals for ETHUSDT"
Claude: [Uses order_flow_trading prompt] "
# ETHUSDT Order Flow Analysis (Last 5 min)
## Flow Metrics
- Buy volume: 245.3 ETH
- Sell volume: 198.7 ETH
- Imbalance ratio: 0.552 (moderate bullish pressure)
- Net pressure: +46.6 ETH
## Signal: LONG BIAS ✅
- Aggressor buys dominating (55% of volume)
- Institutional accumulation detected (3 large buy orders)
- Recommendation: Look for entries on minor pullbacks
- Stop loss: Below recent swing low ($3,045)
- Target: VAH level ($3,086)"
liquidity_mapping (高级)
包含真空区域和边界识别的全面流动性格局。
需要: orderbook_analytics 特性;特点
参数:
symbol- 交易对lookback_minutes- 历史分析窗口(可选,默认:30)
提供:
- 流动性真空区域(低成交量价格缺口)
- 大订单墙(买盘/卖盘支撑/阻力)
- 最佳止损设置区域
- 滑点风险评估
示例:
You: "Map liquidity for SOLUSDT"
Claude: [Uses liquidity_mapping prompt] "
# SOLUSDT Liquidity Map
## Liquidity Vacuums 🕳️
1. $145.50 - $148.20 (High severity)
- Avg volume: 12.5 SOL (85% below median)
- Risk: Rapid price discovery, avoid stops here
2. $142.00 - $143.50 (Medium severity)
- Avg volume: 34.8 SOL (55% below median)
## Order Walls 🧱
- Bid wall: $144.00 (250 SOL) - Strong support
- Ask wall: $150.00 (310 SOL) - Resistance zone
## Stop Loss Guidance
- Safe zones: Below $143.80 or above $148.50 (outside vacuums)
- Risky zones: $145-$148 (vacuum zone, likely to get run)
Current price: $146.75 (inside vacuum - expect volatility)"
📦 资源支持
通过MCP资源访问实时市场数据和账户信息:
市场资源
binance://market/btcusdt- 实时BTCUSDT市场数据(价格、成交量、24小时统计)binance://market/ethusdt- 实时ETH/USDT市场数据
返回以Markdown格式呈现的股票数据,包括当前价格、24小时变化、交易量以及最高/最低价格。
示例:
You: "Show me the BTCUSDT market resource"
Claude: [Reads binance://market/btcusdt] "# BTCUSDT Market Data
Current Price: $50,234.56
24h Change: +$1,234.56 (+2.5%)
Volume: 12,345.67 BTC
High: $51,000.00 | Low: $49,000.00"
账户资源
binance://account/balances- 您的往来账户余额(所有余额非零的资产)
需要API凭证
返回包含资产、可用余额、锁定余额和总计列的Markdown表格。
示例:
You: "Show my account balances resource"
Claude: [Reads binance://account/balances] "# Account Balances
| Asset | Free Balance | Locked Balance | Total |
|-------|--------------|----------------|-------|
| BTC | 0.50000000 | 0.00000000 | 0.50000000 |
| USDT | 10000.00 | 500.00 | 10500.00 |"
订单资源
binance://orders/open- 您当前的活跃订单
需要API凭证
返回包含订单ID、交易品种、买卖方向、订单类型、价格、数量和状态列的Markdown表格。
示例:
You: "Show my open orders resource"
Claude: [Reads binance://orders/open] "# Open Orders
| Order ID | Symbol | Side | Type | Price | Quantity | Status |
|----------|---------|------|-------|-----------|----------|--------|
| 12345 | BTCUSDT | BUY | LIMIT | 49000.00 | 0.001 | NEW |"
⚠️ 增强的错误处理
服务器提供了详细的错误信息以及恢复建议:
| 错误代码 | 类别 | 描述 | 恢复操作 |
|---|---|---|---|
| (无对应中文翻译,原表头) | (无对应中文翻译,原表头) | (无对应中文翻译,原表头) | (无对应中文翻译,原表头) |
| 请求速率限制 | 请求过多 | 等待 retry_after 秒后重试,降低频率 | -32002 |
| 认证 | 无效/缺失API凭证 | 检查BINANCE_API_KEY和BINANCE_SECRET_KEY环境变量 | -32003 |
| 验证 | 参数无效(符号、数量等) | 检查参数格式和示例 | -32004 |
**| 交易 | 余额不足或交易受限 | 检查账户余额和交易权限 |**示例错误响应
{
"code": -32001,
"message": "Rate limit exceeded. Please wait 60 seconds before retrying.",
"data": {
"retry_after_secs": 60,
"current_weight": 1200,
"weight_limit": 1200,
"recovery_suggestion": "Reduce request frequency or wait for rate limit window to reset"
}
}
:
- **所有错误包括:**明确的信息
- 人类可读的描述错误代码
- 用于程序化处理的标准MCP错误代码恢复数据
解决该问题的具体措施(重试时机、缺失配置、格式示例)
🔧 高级用法
HTTP REST API 模式
# Build with HTTP + orderbook features
cargo build --release --features http-api,websocket,orderbook
# Configure
export HTTP_BEARER_TOKEN="your_secure_token"
export HTTP_HOST="0.0.0.0"
export HTTP_PORT="3000"
export BINANCE_API_KEY="your_key"
export BINANCE_SECRET_KEY="your_secret"
# Start server
./target/release/mcp-binance-server
作为支持 WebSocket 的独立 HTTP 服务器运行:
特性标志(或功能开关)
# Core features only (13 tools)
cargo build --release
# Add orderbook depth tools (16 tools)
cargo build --release --features orderbook
# Add advanced analytics tools (21 tools total = 16 + 5 analytics)
cargo build --release --features orderbook_analytics
# Add HTTP API + WebSocket
cargo build --release --features http-api,websocket
# All features
cargo build --release --features orderbook_analytics,http-api,websocket
**控制编译哪些功能:**REST API 端点 见 CLAUDE_DESKTOP_SETUP.md(可翻译为“CLAUDE桌面设置指南/说明文件”)
请帮我翻译一下原文内容为:用于完整的API文档。
环境变量
| 变量 | 必需 | 默认值 | 描述 |
|----------|----------|---------|-------------| BINANCE_API_KEY |
对于认证 | - | Binance API密钥 | BINANCE_SECRET_KEY |
| 用于认证 | - | Binance 秘密密钥 | BINANCE_BASE_URL | https://testnet.binance.vision | 编号 | 生产 | 使用
用于测试网 | RUST_LOG | info | 不 |
| 日志级别:追踪(trace)、调试(debug)、信息(info)、警告(warn)、错误(error) | HTTP_BEARER_TOKEN |
HTTP模式 | - | HTTP API的认证令牌 | HTTP_HOST | 127.0.0.1 | 编号 |
| HTTP服务器绑定地址 | HTTP_PORT | 8080 | 不(No)|
| HTTP服务器端口 |
🐞 故障排除
-
工具未在Claude桌面版中显示检查配置路径
cargo确保which cargo -
在你的PATH环境变量中查看日志
tail -f ~/Library/Logs/Claude/mcp-server-binance.log -
**:**验证构建
cargo run --release # Should show: "Starting MCP Binance Server v0.1.0" -
**:**检查开发者控制台
Claude Desktop → 查看 → 开发者 → 切换开发者工具
“spawn cargo ENOENT” 错误
"command": "/path/to/.cargo/bin/cargo"
在配置中使用货物的完整路径:
或者将 cargo 添加到您的 PATH 中,然后重新启动 Claude Desktop。 {"tools":[]}
空的工具列表
git pull
cargo build --release
这是一个已经修复的错误!请确保您使用的是最新版本:
速率限制错误
- 币安(Binance)设有速率限制。服务器会自动以指数退避的方式重试:
- 如果达到限制,请等待1-2分钟
- 检查日志中的“速率限制”消息
考虑降低请求频率
Large time offset detected: 6000ms. Consider syncing system clock.
时间偏移警告解决方案
# macOS
sudo sntp -sS time.apple.com
# Linux
sudo ntpdate -u pool.ntp.org
同步您的系统时钟:
🔒 安全最佳实践 **✅ 对号(表示正确、确认或同意)**做
- :
- 使用币安测试网进行开发和测试
- 将API密钥存储在环境变量中
- 为每个应用程序使用单独的API密钥
- 在Binance上启用IP白名单(如果支持)
设置适当的API密钥权限(交易、读取) **❌(表示错误或禁止的符号)**不要
- :
- 将API密钥提交到Git
- 使用生产密钥进行测试
- 分享API密钥
- 记录秘密密钥
禁用SSL/TLS验证
- 📚 文档 Claude 桌面版安装指南
- - 详细的设置说明 HTTP API 文档
- REST API参考 开发指南
- - 贡献与架构 MCP协议
- - 协议规范 币安API文档
官方API参考
src/
├── server/ # MCP protocol implementation
│ ├── mod.rs # BinanceServer struct
│ ├── handler.rs # ServerHandler implementation
│ └── tool_router.rs # Tool routing and implementations
├── binance/ # Binance API client
│ ├── client.rs # HTTP client
│ └── types.rs # API response types
├── config/ # Configuration management
├── error.rs # Error handling
└── main.rs # Entry point
🏗️ 建筑
# Run all tests
cargo test
# Run tests with orderbook features
cargo test --features orderbook
# Run integration tests
cargo test --test '*' --features orderbook
# Run performance tests
cargo test --features orderbook --release -- --nocapture test_l1_metrics_performance
cargo test --features orderbook --release -- --nocapture test_l2_depth_performance
# Run with logging
RUST_LOG=debug cargo test --features orderbook
# Test specific tool
cargo test test_get_ticker
cargo test test_orderbook_metrics --features orderbook
🧪 测试测试覆盖率
- : 44项自动化测试
- 对于订单簿功能(100%通过率)
- 单元测试:OrderBook 类型、管理器、错误处理(23 个测试)
- 集成测试:WebSocket重连、速率限制、指标(16项测试)
性能测试:L1指标(<200毫秒P95),L2深度(<300毫秒P95)(共5项测试)
🔧 故障排除
常见问题
SSE 连接错误问题 503 Service Unavailable :
当连接到SSE端点时解决方案
- :
- 服务器已达到50个并发连接限制 - 请等待其他连接关闭
shuttle logs检查服务器日志: - (在云端)或检查终端输出(本地)
重启服务器以清除陈旧连接问题 404 Not Found : /mcp/message 开启
终端节点解决方案
- :
- 连接ID已过期或无效
/mcp/sse通过(某种方式)重新建立连接 - 握手
X-Connection-ID检查
头部信息正在正确发送问题
连接在30秒后超时解决方案
- :
- SSE 会话在 30 秒无活动后自动超时
- 实现客户端的保活ping功能
在需要时重新建立连接
航天飞机部署问题问题 secrets not found :
部署时出错解决方案
# Add required secrets
shuttle secrets add BINANCE_API_KEY=your_testnet_key
shuttle secrets add BINANCE_API_SECRET=your_testnet_secret
# Verify secrets are set
shuttle secrets list
**:**问题
部署构建失败解决方案
- :
rustc --version - 确保已安装 Rust 1.90 或更高版本:
cargo clean - 清除缓存:
shuttle deploy --features shuttle-runtime,orderbook_analytics
**重新部署:**问题 WARN: No API credentials configured
服务器返回解决方案
- :
- 如果未设置任何密钥,则这是预期的行为
- 认证功能(交易、账户信息)将被禁用
市场数据工具在没有凭据的情况下仍能正常工作
速率限制问题 429 Too Many Requests :
来自币安API解决方案
- :
- 服务器内置了GCRA速率限制器(1000请求/分钟)
- 等待60秒后重试
减少工具调用的频率问题
服务器队列在30秒后超时解决方案
- :
- 队列中并发请求过多
- 减少查询中的并行性
等待之前的请求完成
构建错误问题 feature 'orderbook_analytics' requires feature 'orderbook'
**:**解决方案
# Always include base feature when using analytics
cargo build --features orderbook_analytics # ❌ Wrong
cargo build --features orderbook,orderbook_analytics # ✅ Correct
**:**问题
测试中出现的 RocksDB 锁竞争解决方案
# Run tests sequentially (orderbook_analytics uses shared RocksDB)
cargo test --features orderbook_analytics -- --test-threads=1
:
Shuttle.dev 的 Discord
部署检查清单
- 在部署到生产环境之前:
- [ ] 已获取Binance API凭证(测试时请使用TESTNET)
shuttle login[ ] 已安装并认证 Shuttle CLI( - )
shuttle secrets add BINANCE_API_KEY=...[ ] 配置的密钥( - )
cargo run --features sse -- --mode sse[ ] 本地测试已完成( - )
curl https://your-app.shuttleapp.rs/health[ ] 健康端点已验证 ( - )
curl -H "Accept: text/event-stream" https://your-app.shuttleapp.rs/mcp/sse[ ] 已测试SSE握手( - )
- [ ] 配置了远程URL的Claude Desktop
shuttle logs[ ] 部署后监控日志(
)
🤝 贡献 这个项目使用 SpecKit(注:这通常是一个特定领域或应用中的术语或产品名,直接翻译为“光谱工具包”或保持原样“SpecKit”均可,具体取决于上下文和使用场景)
- 用于规范驱动开发: 指定
/speckit.specify - 使用(或利用)的功能/特性 计划
/speckit.plan - 与……一起实施 生成
/speckit.tasks - 与……相关的任务 实施
/speckit.implement
和;与;用;带着 见 DEVELOPMENT.md 翻译为中文是:“开发指南.md” 或 “开发文档.md”(具体翻译可能根据上下文有所调整,但“DEVELOPMENT”通常指的是“开发”或“开发指南”等意思,“.md”是Markdown文件格式的后缀)
详情见下。
📄 许可证 MIT 许可证 - 详见 许可证
文件中有详细信息。
- 🙏 致谢 模型上下文协议
- - 协议规范 rmcp 可以翻译为“远程管理控制协议”或“远程监控与控制协议”,具体翻译可能根据上下文有所不同
- - Rust语言的MCP服务器SDK 币安(Binance)
- 加密货币交易所API Anthropic Claude
- AI助手集成
- 🔗 链接GitHub :
- forgequant/mcp-provider-binance 翻译为中文是:forgequant/币安MCP提供者币安测试网 :
- **testnet.binance.vision(测试网币安愿景)**MCP协议 :
- modelcontextprotocol.io问题 :
GitHub Issues(在GitHub上的问题/议题) 用Rust和MCP用心打造 | 报告错误 |
