币安期货交易服务

为币安USDT期货交易提供市场数据、账户状态、订单管理和头寸/保证金控制的服务,专为LLM监控、下单和管理期货交易设计。

  • by Muvon
  • Python
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 Muvon/mcp-binance-futures

使用说明

mcp联合期货

MCP服务器 币安USDT-M期货 贸易。公开市场数据、账户状态、订单管理和头寸/保证金控制的工具,旨在为LLM提供监控、放置和管理期货交易所需的一切。

建于 FastMCP 和 httpx.


工具

市场数据(公开,无身份验证)

工具 说明
ping 测试API连接
get_ticker 价格、24小时统计数据、标记价格、交易品种的融资率
get_order_book 一个符号的前N个出价/要价
get_recent_trades 最新公开交易
get_klines OHLCV烛台数据(1m→ 1w)
get_symbol_info 交易规则:报价单大小、手数大小、最小名义值、订单类型

账户(已签名)

工具 说明
get_balance 钱包余额(仅限非零资产)
get_positions 具有PnL、杠杆、保证金类型的未平仓头寸——可选范围为一个交易品种
get_account_summary 总余额、未实现净现值、保证金使用、未结头寸计数

订单(已签署)

工具 说明
place_order 地点限制、市场、止损、STOP_MARKET、TAKE_PROFIT、TAKE_ROFIT_MARKET、TRAILING_STOP_MARKET
modify_order 更改未结限价订单的价格或数量
cancel_order 按ID取消单个订单
cancel_all_orders 取消某个交易品种的所有未结订单
get_open_orders 列出某个交易品种的所有未结订单
get_order 按ID获取特定订单
get_order_history 最近订单历史(所有状态)
get_trade_history 符号的个人填充历史记录

岗位管理(签字)

工具 说明
set_leverage 为交易品种设置杠杆倍数(1–125×)
set_margin_type 切换 ISOLATED 和 CROSSED 利润率
adjust_isolated_margin 添加或删除孤立位置的边距
set_position_mode 在单向和对冲模式之间切换
get_position_mode 获取当前位置模式
get_leverage_brackets 利用具有维护利润率的层级

设置

需求

安装

# with uv (recommended)
uv sync

# or with pip
pip install -e .

API密钥

使用创建Binance API密钥 期货交易 启用。设置环境变量:

export BINANCE_API_KEY="your_api_key"
export BINANCE_API_SECRET="your_api_secret"

安全:在您的Binance API密钥上使用IP白名单。切勿将密钥提交给版本控制。


跑步

# stdio transport (default — for MCP clients like Claude Desktop)
python server.py

# or via the installed script
mcp-binance-futures

MCP客户端配置

克劳德桌面版

添加 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "binance-futures": {
      "command": "python",
      "args": ["/path/to/mcp-binance-futures/server.py"],
      "env": {
        "BINANCE_API_KEY": "your_api_key",
        "BINANCE_API_SECRET": "your_api_secret"
      }
    }
  }
}

带紫外线

{
  "mcpServers": {
    "binance-futures": {
      "command": "uv",
      "args": ["run", "--project", "/path/to/mcp-binance-futures", "mcp-binance-futures"],
      "env": {
        "BINANCE_API_KEY": "your_api_key",
        "BINANCE_API_SECRET": "your_api_secret"
      }
    }
  }
}

测试

# install dev dependencies
uv sync --extra dev

# run all tests
pytest

# run with output
pytest -v

测试使用 respx 模拟所有HTTP调用-不需要真正的API密钥或网络。


常见使用模式

建立止损多头头寸,获利了结

1. get_ticker(symbol="BTCUSDT")          → check current price
2. get_balance()                          → check available margin
3. get_positions(symbol="BTCUSDT")        → confirm no existing position
4. set_leverage(symbol="BTCUSDT", leverage=10)
5. set_margin_type(symbol="BTCUSDT", margin_type="ISOLATED")
6. place_order(symbol="BTCUSDT", side="BUY", order_type="MARKET", quantity=0.01)
7. place_order(symbol="BTCUSDT", side="SELL", order_type="STOP_MARKET",
               stop_price=45000, close_position=True)
8. place_order(symbol="BTCUSDT", side="SELL", order_type="TAKE_PROFIT_MARKET",
               stop_price=55000, close_position=True)

修改限价单

1. get_open_orders(symbol="BTCUSDT")      → find the order ID
2. modify_order(symbol="BTCUSDT", order_id=123456, side="BUY",
                quantity=0.01, price=48500)

紧急关闭所有

1. cancel_all_orders(symbol="BTCUSDT")
2. place_order(symbol="BTCUSDT", side="SELL", order_type="MARKET",
               quantity=<position_size>, reduce_only=True)

建筑

server.py      — FastMCP server, all tool definitions
client.py      — Async HTTP client: signing, transport, error handling
tests/
  test_client.py  — Unit tests for BinanceClient (signing, HTTP, errors)
  test_server.py  — Integration tests for all MCP tools

客户端和服务器被有意地保存在单独的文件中: client.py 处理所有Binance API机制(HMAC签名、错误解析、HTTP谓词),同时 server.py 仅包含工具逻辑和MCP接线。这使得两者都可以独立测试。