Binance MCP服务器

一个全面的Binance模型上下文协议(MCP)服务器,通过AI助手提供对交易账户、投资组合数据、市场信息等的只读访问。

  • by hiteshgarg02
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 hiteshgarg02/binance-mcp

使用说明

🚀 币安MCP服务器

Binance的全面模型上下文协议(MCP)服务器,通过Claude等人工智能助手提供对您的交易账户、投资组合数据、市场信息等的只读访问。

✨ 特性

此MCP服务器提供 20+只读工具 跨越多个类别:

📢 公开市场数据

  • fetch_latest_announcements -获取最新的币安公告
  • get_ticker_price -任何或所有交易品种的当前价格
  • get_24hr_ticker -24小时统计(价格变动、交易量、高/低)

💼 现货账户

  • get_account_info -账户余额、权限和佣金率
  • get_spot_open_orders -所有未平仓订单
  • get_spot_trade_history -任何交易品种的最近交易历史

🎯 百万美元期货

  • get_futures_account_balance -期货钱包余额和活跃头寸
  • get_futures_open_orders -所有未平仓期货订单
  • get_futures_income_history -已实现的PnL、融资费用、佣金

🔄 保证金交易

  • get_margin_account -交叉保证金账户详细信息和余额
  • get_isolated_margin_account -独立的保证金头寸和保证金水平

📊 投资组合概述

  • get_asset_distribution -所有账户的完整投资组合快照

💰 存款和取款

  • get_deposit_address -获取任何硬币/网络的存款地址
  • get_deposit_history -查看存款交易历史记录
  • get_withdraw_history -查看提款交易历史记录

⚡ 快速开始

# 1. Clone and install
git clone <your-repo-url>
cd binance-mcp
uv sync

# 2. Configure API keys
cp .env.example .env
# Edit .env with your Binance API keys

# 3. Test it locally with inspector UI
uv run fastmcp dev main.py

# 4. Add to Claude Desktop config (see Integration section below)

🔧 安装

先决条件

  • Python 3.11或更高版本
  • 具有API访问权限的Binance帐户
  • 紫外线 (推荐)或pip

步骤1:克隆并安装依赖项

# Clone the repository
git clone <your-repo-url>
cd binance-mcp

# Install dependencies with uv (recommended)
uv sync

# Or with pip
pip install -e .

步骤2:创建Binance API密钥

  1. 登录到 币安
  2. 首选 个人资料→ API管理
  3. 创建新的API密钥
  4. 重要提示: 仅启用“启用读取”权限(只读)
  5. 安全保存API密钥和密钥

步骤3:配置环境变量

创建一个 .env 项目根目录中的文件:

cp .env.example .env

编辑 .env 并添加您的API凭据:

BINANCE_API_KEY=your_api_key_here
BINANCE_API_SECRET=your_api_secret_here
BINANCE_ENVIRONMENT=production

注: 永远不要承诺你的 .env 文件到版本控制。它已经在里面了 .gitignore.

🎯 用法

本地运行

方法1:使用FastMCP(推荐)

# Development mode with auto-reload and inspector UI
uv run fastmcp dev main.py

# Production mode
uv run fastmcp run main.py

开发模式 提供:

  • 🔄 文件更改时自动重新加载
  • 🌐 Web检查器UI位于http://localhost:5173
  • 📊 实时工具测试和调试

方法2:直接使用Python

# Activate virtual environment (if using uv)
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Run the MCP server
python main.py

与Claude Desktop集成

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

在macOS上: ~/Library/Application Support/Claude/claude_desktop_config.json
在Windows上: %APPDATA%\Claude\claude_desktop_config.json

方法1:使用带有紫外线的FastMCP(推荐)

{
  "mcpServers": {
    "binance": {
      "command": "uv",
      "args": [
        "--directory",
        "C:/Users/YourUsername/Documents/code/MCP/binance-mcp",
        "run",
        "fastmcp",
        "run",
        "main.py"
      ]
    }
  }
}

注: 确保 .env 文件在项目目录中。这 uv run fastmcp run 命令将自动处理依赖关系和环境设置。

方法2:直接使用Python

{
  "mcpServers": {
    "binance": {
      "command": "python",
      "args": [
        "C:/Users/YourUsername/Documents/code/MCP/binance-mcp/main.py"
      ],
      "env": {
        "BINANCE_API_KEY": "your_api_key_here",
        "BINANCE_API_SECRET": "your_api_secret_here",
        "BINANCE_ENVIRONMENT": "production"
      }
    }
  }
}

方法3:使用UV而不使用FastMCP

{
  "mcpServers": {
    "binance": {
      "command": "uv",
      "args": [
        "--directory",
        "C:/Users/YourUsername/Documents/code/MCP/binance-mcp",
        "run",
        "python",
        "main.py"
      ]
    }
  }
}

重新启动克劳德桌面

更新配置后,完全退出并重新启动Claude Desktop以使更改生效。

🧪 测试服务器

在与Claude Desktop集成之前,您可以在本地测试服务器:

# Start development server with inspector UI
uv run fastmcp dev main.py

这将:

  1. 启动MCP服务器
  2. 打开web检查器 http://localhost:5173
  3. 允许您以交互方式测试所有工具
  4. 更改代码时自动重新加载

检查器功能:

  • 📋 列出所有可用工具
  • 🔧 具有自定义参数的测试工具
  • 📊 查看实时请求/响应数据
  • 🐛 部署到Claude之前调试问题

📖 查询示例

一旦与Claude集成,您可以问:

  • “我目前在所有账户中的投资组合是什么?”
  • “显示我的期货未结订单”
  • “BTCUSD的当前价格是多少?”
  • “获取我的ETHUDT现货交易历史记录”
  • “显示我最近的未来PnL”
  • “币安最新的公告是什么?”
  • “检查我的保证金账户状态”
  • “显示我最近20笔交易的存款历史记录”

🔒 安全最佳实践

  1. 只读密钥: 仅对API密钥启用“启用读取”权限
  2. 从不分享: 保持API密钥的私有性,永远不要将它们提交给版本控制
  3. IP白名单: 考虑限制API密钥访问Binance设置中的特定IP地址
  4. 定期轮换: 定期轮换API密钥以增强安全性
  5. 监视器使用情况: 定期检查您在币安的API密钥使用情况

🌐 测试网支持

要使用币安测试网进行测试:

  1. 在创建测试网API密钥 币安测试网
  2. 集 BINANCE_ENVIRONMENT=testnet 在你的 .env 文件

🛠️ 发展

项目结构

binance-mcp/
├── main.py              # Main MCP server with all tools
├── pyproject.toml       # Project dependencies
├── .env                 # Your API credentials (not committed)
├── .env.example         # Example environment file
├── .gitignore          # Git ignore rules
├── LICENSE              # MIT License
└── README.md           # This file

开发流程

# 1. Install dependencies
uv sync

# 2. Create .env file with your API keys
cp .env.example .env
# Edit .env with your actual keys

# 3. Start development server
uv run fastmcp dev main.py

# 4. Open the inspector UI (opens automatically)
# http://localhost:5173

# 5. Make changes to main.py - server auto-reloads!

有用的命令

# Development mode (with inspector & auto-reload)
uv run fastmcp dev main.py

# Production mode (for Claude Desktop)
uv run fastmcp run main.py

# Install new dependencies
uv add package-name

# Update dependencies
uv sync

# Run linting (if configured)
uv run ruff check main.py

添加新工具

要添加新工具,请使用 @mcp.tool() 装饰师:

@mcp.tool()
async def your_new_tool(param: str) -> str:
    """
    Description of your tool.
    
    Args:
        param: Description of parameter
    
    Returns:
        Markdown formatted result
    """
    # Your implementation
    return "Result in Markdown format"

添加工具后:

  1. 开发服务器将自动重新加载
  2. 在检查器UI中进行测试
  3. 重新启动Claude Desktop以在那里使用它

📝 API费率限制

币安对API请求有速率限制:

  • 地点: 每分钟1200个请求
  • 期货: 每分钟2400个请求
  • 其他端点: 因端点而异

此服务器遵守这些限制。避免在短时间内提出过多的要求。

此服务器是只读的,无法执行交易、转账或提款。

🤝 贡献

欢迎投稿!请随时提交拉取请求。

  1. 复刻仓库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

MIT许可证摘要:

  • ✅ 商业用途
  • ✅ 修改
  • ✅ 分布
  • ✅ 私人使用
  • ⚠️ 无责任
  • ⚠️ 无担保

🆘 故障排除

“未配置API密钥”错误

  • 确保您的 .env 文件存在并且包含有效的API凭据
  • 检查环境变量是否正确加载

“签名验证失败”错误

  • 验证您的API机密是否正确
  • 确保系统时钟同步(Binance API需要准确的时间)

“权限被拒绝”错误

  • 确认API密钥已启用“启用读取”权限
  • 某些端点可能需要额外的权限

连接错误

  • 检查您的互联网连接
  • 验证您是否位于限制性防火墙之后
  • 尝试使用测试网隔离问题

📞 支持

对于问题和疑问:

  1. 检查 币安API文档
  2. 查看此存储库中已关闭的问题
  3. 打开一个新问题,详细说明您的问题

交易愉快! 📈