Skip to main content
Glama
README.md
# 🚀 Binance MCP Server

[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![MCP Compatible](https://img.shields.io/badge/MCP-Compatible-green.svg)](https://modelcontextprotocol.org/)
[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)

基于ccxt库为Binance交易所开发的MCP(Model Context Protocol)服务,让AI agents(如Claude Code)能够安全、高效地进行数字货币交易操作。提供完整的现货、期货、期权交易功能支持。

## ✨ 功能特性

### 🎯 专为非技术用户设计
- **零编程经验要求** - 通过简单的CLI命令即可完成所有配置
- **AI助手友好** - 完美兼容Claude Code等AI编程助手
- **一键安装部署** - 单条命令完成安装和配置

### 🔧 技术特性
- **内置配置优化** - 自动优化交易参数和连接配置
- **高效执行** - 基于ccxt库的稳定交易执行
- **零额外成本** - 不增加任何交易费用

### 🛡️ 企业级安全
- **本地加密存储** - API密钥使用Fernet对称加密
- **多账户隔离** - 支持现货、期货、沙盒环境分离管理
- **无网络传输** - 密钥仅在本地存储,绝不上传
- **权限最小化** - 仅申请必要的API权限

### 📊 完整交易支持
- **现货交易** - 市价单、限价单、止损单等
- **期货合约** - USD-M、币本位期货,支持杠杆调整
- **期权交易** - Call/Put期权买卖
- **账户管理** - 余额查询、持仓管理、交易历史

### 🔧 完整的MCP工具集(30个工具)

#### 🏪 现货交易
- `create_spot_order` - 创建现货订单

#### 📋 订单管理  
- `cancel_order` - 取消订单
- `get_open_orders` - 查看待成交订单
- `get_order_status` - 查询单个订单状态
- `get_my_trades` - 获取成交记录
- `cancel_all_orders` - 批量取消订单

#### 🛡️ 风险控制
- `create_stop_loss_order` - 创建止损订单
- `create_take_profit_order` - 创建止盈订单
- `create_stop_limit_order` - 创建止损限价订单  
- `create_trailing_stop_order` - 创建追踪止损订单
- `create_oco_order` - 创建OCO订单

#### 📊 市场数据
- `get_ticker` - 获取价格行情
- `get_order_book` - 获取订单簿深度
- `get_klines` - 获取K线数据
- `get_funding_rate` - 获取资金费率

#### 🎯 期权交易
- `create_option_order` - 创建期权订单
- `get_option_chain` - 获取期权链
- `get_option_positions` - 获取期权持仓
- `get_option_info` - 获取期权合约信息

#### 📈 合约交易
- `create_contract_order` - 创建合约订单
- `close_position` - 一键平仓
- `get_futures_positions` - 获取期货持仓详情

#### 💰 账户管理
- `get_balance` - 查询余额
- `get_positions` - 查看持仓
- `set_leverage` - 设置杠杆倍数
- `set_margin_mode` - 设置保证金模式
- `transfer_funds` - 账户间转账

#### ℹ️ 系统工具
- `get_server_info` - 服务器状态信息

## 🚀 快速开始

### 1. 安装

```bash
pip install git+https://github.com/shanrichard/binance-mcp.git
```

### 2. 配置账户

```bash
# 交互式配置API密钥
binance-mcp config

# 查看已配置的账户
binance-mcp list
```

### 3. 启动服务

```bash
# 前台运行(显示日志)
binance-mcp start

# 后台运行(推荐)
binance-mcp start -d

# 自定义端口
binance-mcp start --port 9002
```

### 4. 在Claude Code中使用

启动服务后,在Claude Code中直接说:

> "帮我查看BTC的当前价格"
> 
> "用我的现货账户买入0.001个BTC"
> 
> "查看我的账户余额"

Claude Code会自动调用相应的MCP工具完成操作!

## 🤖 AI框架集成

### LangGraph Agent集成

将Binance MCP工具集成到您现有的LangGraph Agent中:

```python
from mcp_langchain import MCPToolkit  # 或 langchain_community.adapters.mcp

# 连接到MCP服务器,获取工具
mcp_toolkit = MCPToolkit(
    server_command="python",
    server_args=["-m", "binance_mcp.simple_server"],
    server_env={}
)

# 获取转换后的LangChain工具
binance_tools = mcp_toolkit.get_tools()

# 添加到您现有的工具列表
your_existing_tools.extend(binance_tools)

# 绑定到LLM
llm_with_tools = llm.bind_tools(your_existing_tools)
```

### 其他AI框架

本项目遵循标准MCP协议,可与任何支持MCP的AI框架集成:

- **Anthropic Claude** - 原生支持
- **OpenAI Assistants** - 通过MCP适配器
- **LangChain/LangGraph** - 通过`mcp-langchain`
- **CrewAI** - 通过MCP工具适配
- **AutoGen** - 通过MCP协议集成

### 快速测试集成

```python
# 测试工具是否正常加载
tools = mcp_toolkit.get_tools()
print(f"加载了 {len(tools)} 个交易工具")

# 测试服务器连接
server_info_tool = next(t for t in tools if t.name == "get_server_info")
result = server_info_tool.invoke({})
print(f"服务器状态: {result}")

# 测试价格查询
ticker_tool = next(t for t in tools if t.name == "get_ticker")
btc_price = ticker_tool.invoke({"symbol": "BTC/USDT"})
print(f"BTC价格: {btc_price}")
```

## 🎉 功能完整度

通过集成Binance MCP,您的AI Agent可以:

### 📊 **完整交易生态**
- **现货交易** - 买卖各种数字货币
- **期货合约** - 杠杆交易、一键平仓
- **期权策略** - Call/Put期权买卖
- **风险管控** - 止损止盈、追踪止损、OCO订单

### 📈 **深度市场分析**
- **实时价格** - 获取各种交易对价格
- **K线数据** - 多种时间周期历史数据
- **订单簿深度** - 买卖盘深度分析
- **资金费率** - 期货合约资金费率

### 💰 **专业账户管理**
- **多账户支持** - 现货、期货、期权账户
- **杠杆设置** - 动态调整杠杆倍数
- **保证金模式** - 全仓/逐仓切换
- **资金划转** - 账户间资金管理

### 🛡️ **企业级安全**
- **本地加密** - API密钥本地加密存储
- **权限最小化** - 仅授予必要权限
- **合规返佣机制** - 支持合作伙伴返佣计划
- **多环境支持** - 生产/沙盒环境隔离

**🚀 30个专业交易工具,构建完整的数字货币交易AI生态系统!**

## 📋 详细使用指南

### 配置API密钥

1. **获取API密钥**:
   - 登录[Binance](https://www.binance.com/)
   - 前往 **API管理** 页面
   - 创建新的API密钥
   - **权限设置**:勾选"现货与杠杆交易"和"期货交易"
   - **重要**:启用IP白名单限制

2. **配置密钥**:
   ```bash
   binance-mcp config
   ```
   按提示输入:
   - 账户ID(自定义名称)
   - API Key
   - Secret Key
   - 是否为沙盒环境
   - 账户描述

### 服务管理命令

```bash
# 查看帮助
binance-mcp --help

# 查看服务状态
binance-mcp status

# 停止服务
binance-mcp stop

# 测试连接
binance-mcp test <account_id>

# 备份配置
binance-mcp backup
```

### 高级配置

**多账户管理**:
```bash
# 添加现货账户
binance-mcp config --account-id spot_main

# 添加期货账户  
binance-mcp config --account-id futures_main

# 添加沙盒测试账户
binance-mcp config --account-id sandbox_test --sandbox
```

**自定义服务器设置**:
```bash
# 监听所有网卡
binance-mcp start --host 0.0.0.0

# 使用自定义端口
binance-mcp start --port 8888
```

## 🔧 故障排除

### 常见问题

**Q: 出现"Functions with **kwargs are not supported as tools"错误?**

A: 这是旧版本的问题,请更新:
```bash
pip uninstall binance-mcp -y && pip install git+https://github.com/shanrichard/binance-mcp.git
```

**Q: API密钥认证失败?**

A: 检查以下几点:
1. API密钥是否正确复制(注意空格)
2. 是否启用了必要的权限(现货/期货交易)
3. 是否设置了IP白名单限制
4. 沙盒/生产环境是否匹配

**Q: 服务无法启动?**

A: 检查端口是否被占用:
```bash
# 查看端口占用
lsof -i :9001

# 使用其他端口
binance-mcp start --port 9002
```

**Q: Claude Code找不到MCP工具?**

A: 确保:
1. 服务正在运行:`binance-mcp status`
2. 重启Claude Code
3. 检查MCP配置文件

### 日志查看

```bash
# 前台运行查看实时日志
binance-mcp start

# 后台运行的日志位置
~/.config/binance-mcp/logs/
```

### 诊断和调试工具

项目提供了专业的诊断工具帮助快速定位问题:

```bash
# 权限诊断工具 - 全面检查API权限配置
python diagnose_permissions.py

# 统一账户调试工具 - 检测统一账户模式配置
python debug_unified_account.py

# 集成测试 - 验证所有功能是否正常
python integration_test.py
```

**权限诊断功能**:
- ✅ 现货、期货、期权权限检查
- ✅ 网络连接和IP白名单检查  
- ✅ 详细错误码解释和修复建议
- ✅ 权限配置分步指导

**统一账户调试功能**:
- ✅ 自动检测账户类型(普通/统一)
- ✅ 提供配置修改建议
- ✅ SHIB交易符号说明
- ✅ 实时余额和价格查询

## 🔄 更新指南

### 检查更新

```bash
# 查看当前版本
binance-mcp --version

# 查看最新版本
curl -s https://api.github.com/repos/shanrichard/binance-mcp/releases/latest | grep '"tag_name"'
```

### 更新到最新版本

**方法1:重新安装(推荐)**
```bash
pip uninstall binance-mcp -y && pip install git+https://github.com/shanrichard/binance-mcp.git
```

**方法2:强制重装**
```bash
pip install --force-reinstall git+https://github.com/shanrichard/binance-mcp.git
```

**方法3:指定版本**
```bash
pip install git+https://github.com/shanrichard/binance-mcp.git@v1.0.1
```

### 更新说明

- ✅ **配置保持不变** - 更新不会影响已配置的账户
- ✅ **向后兼容** - 新版本兼容旧配置
- ✅ **热更新支持** - 无需重新配置API密钥

## 🏗️ 开发者指南

### 本地开发

```bash
# 克隆代码
git clone https://github.com/shanrichard/binance-mcp.git
cd binance-mcp

# 安装开发依赖
pip install -e .[dev]

# 运行测试
pytest

# 运行集成测试
python integration_test.py
```

### 测试覆盖

```bash
# 单元测试
pytest tests/unit/ -v

# 测试覆盖率
pytest --cov=binance_mcp --cov-report=html
```

### 代码结构

```
binance-mcp/
├── binance_mcp/              # 📦 核心代码包
│   ├── __init__.py           # 包初始化
│   ├── broker.py             # Broker ID注入工厂
│   ├── cli.py                # CLI命令行接口
│   ├── config.py             # 配置管理(加密存储)
│   ├── server.py             # 完整MCP服务器
│   ├── simple_server.py      # 简化MCP服务器
│   └── tools.py              # MCP工具实现
│
├── tests/                    # 🧪 测试套件
│   ├── conftest.py           # 测试配置
│   └── unit/                 # 单元测试
│       ├── test_broker_simple.py
│       ├── test_config.py
│       └── test_tools_simple.py
│
├── examples/                 # 📚 示例代码
│   ├── LANGGRAPH_MCP_GUIDE.md   # LangGraph集成指导
│   └── test_unified_trading.py  # 统一账户测试示例
│
├── integration_test.py       # ✅ 集成测试
├── diagnose_permissions.py   # 🔧 权限诊断工具
├── debug_unified_account.py  # 🐛 统一账户调试工具
│
└── [配置文件]                # ⚙️ 项目配置
    ├── README.md
    ├── LICENSE
    ├── pyproject.toml
    ├── setup.py
    ├── requirements.txt
    └── requirements-dev.txt
```

## 🤝 贡献指南

### 提交Issue

遇到问题请提交Issue,包含:
- 操作系统版本
- Python版本
- 完整错误信息
- 复现步骤

### 贡献代码

1. Fork项目
2. 创建功能分支:`git checkout -b feature/amazing-feature`
3. 提交更改:`git commit -m 'Add some amazing feature'`
4. 推送分支:`git push origin feature/amazing-feature`
5. 提交Pull Request

## ⚠️ 风险提醒

### 交易风险
- **数字货币交易具有高风险,可能导致资金损失**
- 建议先在沙盒环境充分测试
- 设置合理的止损和仓位管理
- 不要投入超过承受能力的资金

### 技术风险
- 确保API密钥安全,不要分享给他人
- 定期备份配置文件
- 在受信任的网络环境中使用
- 保持软件更新到最新版本

### 合规提醒
- 遵守当地法律法规
- 了解税务申报义务
- 符合反洗钱要求

## 📞 支持与反馈

- **GitHub Issues**: [提交问题](https://github.com/shanrichard/binance-mcp/issues)
- **讨论区**: [GitHub Discussions](https://github.com/shanrichard/binance-mcp/discussions)
- **文档**: [项目Wiki](https://github.com/shanrichard/binance-mcp/wiki)

## 📄 许可证

本项目采用 [MIT License](LICENSE) 开源协议。

## 🙏 致谢

- **ccxt团队** - 提供优秀的交易所API统一库
- **FastMCP团队** - 提供高性能的MCP服务器框架
- **开源社区** - 感谢每一位贡献代码和反馈的开发者

---

<div align="center">

**⭐ 如果这个项目对您有帮助,请给我们一个Star!⭐**

[🏠 首页](https://github.com/shanrichard/binance-mcp) • 
[📖 文档](https://github.com/shanrichard/binance-mcp#readme) • 
[🐛 问题反馈](https://github.com/shanrichard/binance-mcp/issues) • 
[💡 功能建议](https://github.com/shanrichard/binance-mcp/discussions)

</div>