Skip to main content
Glama
by ethancod1ng
binance_mcp_requirements.md6.45 kB
# Binance MCP Server 开发需求 请开发一个完整的 Binance MCP (Model Context Protocol) Server,让 Claude 能够通过标准化接口访问 Binance 交易所的 API 功能。 ## 项目要求 ### 技术栈 - TypeScript + Node.js - MCP SDK: `@modelcontextprotocol/sdk` - Binance API: `binance-api-node` - 验证库: `zod` - 环境配置: `dotenv` ### 项目结构 ``` binance-mcp-server/ ├── src/ │ ├── index.ts # 服务器入口 │ ├── server.ts # MCP 服务器核心 │ ├── tools/ # 工具模块 │ │ ├── market-data.ts # 市场数据工具 │ │ ├── account.ts # 账户信息工具 │ │ ├── trading.ts # 交易工具 │ │ └── index.ts │ ├── types/ # TypeScript 类型定义 │ │ ├── binance.ts │ │ └── mcp.ts │ ├── config/ │ │ └── binance.ts # Binance 配置 │ └── utils/ │ ├── validation.ts │ └── error-handling.ts ├── .env.example ├── package.json ├── tsconfig.json └── README.md ``` ## 核心功能需求 ### 1. 市场数据工具 (market-data.ts) 实现以下 MCP 工具: **get_price** - 功能:获取指定交易对当前价格 - 参数:symbol (string, 必需) - 交易对符号如 "BTCUSDT" - 返回:JSON 格式的价格信息 **get_orderbook** - 功能:获取订单簿深度 - 参数: - symbol (string, 必需) - 交易对符号 - limit (number, 可选) - 深度限制,默认100 - 返回:买卖盘深度数据 **get_klines** - 功能:获取K线数据 - 参数: - symbol (string, 必需) - 交易对符号 - interval (enum, 必需) - 时间间隔: '1m', '5m', '15m', '1h', '4h', '1d' 等 - limit (number, 可选) - 数量限制,默认500 - 返回:K线历史数据 **get_24hr_ticker** - 功能:获取24小时价格变动统计 - 参数:symbol (string, 可选) - 不传则获取所有交易对 - 返回:24小时统计数据 ### 2. 账户信息工具 (account.ts) 实现以下 MCP 工具: **get_account_info** - 功能:获取账户信息和余额 - 参数:无 - 返回:账户余额、权限信息 **get_open_orders** - 功能:获取当前挂单 - 参数:symbol (string, 可选) - 特定交易对的挂单 - 返回:当前所有或指定交易对的挂单 **get_order_history** - 功能:获取历史订单 - 参数: - symbol (string, 必需) - 交易对符号 - limit (number, 可选) - 数量限制,默认500 - 返回:历史订单记录 ### 3. 交易工具 (trading.ts) 实现以下 MCP 工具(仅测试网环境): **place_order** - 功能:下单交易 - 参数: - symbol (string, 必需) - 交易对 - side (enum, 必需) - 'BUY' | 'SELL' - type (enum, 必需) - 'MARKET' | 'LIMIT' - quantity (string, 必需) - 数量 - price (string, LIMIT单必需) - 价格 - 返回:订单确认信息 - 安全要求:仅在 BINANCE_TESTNET=true 时可用 **cancel_order** - 功能:取消订单 - 参数: - symbol (string, 必需) - 交易对 - orderId (number, 必需) - 订单ID - 返回:取消确认信息 **cancel_all_orders** - 功能:取消指定交易对所有挂单 - 参数:symbol (string, 必需) - 交易对 - 返回:批量取消结果 ## 技术实现要求 ### 1. MCP 服务器实现 (server.ts) - 使用 `@modelcontextprotocol/sdk` 创建 MCP 服务器 - 实现 `ListToolsRequestSchema` 处理器列出所有工具 - 实现 `CallToolRequestSchema` 处理器执行工具调用 - 添加完整的错误处理和日志记录 - 使用 StdioServerTransport 作为传输层 ### 2. 类型定义 (types/) - 定义完整的 Binance API 响应类型 - 使用 zod 创建输入验证 schema - 定义 MCP 工具的参数和返回类型 ### 3. 配置管理 (config/binance.ts) - 从环境变量读取 API 配置: - BINANCE_API_KEY - BINANCE_API_SECRET - BINANCE_TESTNET (boolean) - 支持测试网和生产网切换 - 配置 API 限制和超时设置 ### 4. 错误处理 - API 调用异常处理 - 参数验证错误处理 - 网络超时和重试机制 - 返回用户友好的错误信息 ### 5. 安全要求 - API 密钥通过环境变量管理 - 交易功能默认禁用,仅测试网可用 - 输入参数严格验证 - 敏感信息不记录到日志 ## 环境配置 ### .env.example 文件 ```env # Binance API 配置 BINANCE_API_KEY=your_api_key_here BINANCE_API_SECRET=your_api_secret_here BINANCE_TESTNET=true # 服务器配置 MCP_SERVER_NAME=binance-mcp-server MCP_SERVER_VERSION=1.0.0 LOG_LEVEL=info ``` ### package.json 脚本 ```json { "scripts": { "build": "tsc", "start": "node dist/index.js", "dev": "tsx src/index.ts", "watch": "nodemon --exec tsx src/index.ts" }, "bin": { "binance-mcp-server": "./dist/index.js" } } ``` ## MCP 工具规范 每个工具必须包含: - name: 工具名称(唯一标识) - description: 工具功能描述 - inputSchema: JSON Schema 格式的参数定义 - 实现函数返回标准 MCP 响应格式 示例工具定义: ```typescript { name: 'get_price', description: '获取指定交易对的当前价格', inputSchema: { type: 'object', properties: { symbol: { type: 'string', description: '交易对符号,如 BTCUSDT' } }, required: ['symbol'] } } ``` ## 测试要求 创建基本的功能测试: - 市场数据获取测试 - 账户信息查询测试 - 参数验证测试 - 错误处理测试 - MCP 协议兼容性测试 ## 文档要求 创建详细的 README.md: - 项目介绍和功能特性 - 安装和配置步骤 - 环境变量说明 - 所有工具的使用示例 - Claude Code 集成配置 - 安全注意事项 - 故障排除指南 ## 部署和集成 - 项目可通过 npm 全局安装 - 支持作为 MCP 服务器被 Claude Code 调用 - 提供 Claude Code 配置文件示例 - 支持 Docker 容器化部署(可选) ## 验收标准 1. ✅ 所有工具都能正常响应 MCP 协议调用 2. ✅ 参数验证和错误处理完整 3. ✅ 测试网环境下交易功能正常 4. ✅ Claude Code 能成功集成和调用 5. ✅ 文档完整,示例清晰 6. ✅ 代码结构清晰,类型定义完整 7. ✅ 安全配置正确,生产环境安全 请完整实现这个 Binance MCP Server,确保所有功能都能在 Claude Code 环境中正常工作。

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ethancod1ng/binance-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server