MCP Expert Server
# mcp-server-cex-bn
这个 MCP 服务器提供了强大的币安现货交易接口。
## 功能特性
### 交易操作
- 安全配置和存储币安 API 凭证
- 执行现货交易操作(限价/市价订单)
- 监控账户余额
- 跟踪和管理未完成订单
- 取消现有订单
### 工具
#### `configure_api_keys`
安全存储币安 API 凭证:
```typescript
await configureBinanceApiKeys({
apiKey: '你的API密钥',
apiSecret: '你的API密钥'
});
```
#### `create_spot_order`
创建限价或市价订单:
```typescript
// 限价订单
await createSpotOrder({
symbol: 'BTCUSDT',
side: 'BUY',
type: 'LIMIT',
quantity: '0.001',
price: '40000'
});
// 市价订单
await createSpotOrder({
symbol: 'BTCUSDT',
side: 'BUY',
type: 'MARKET',
quantity: '0.001'
});
```
#### `cancel_order`
取消现有订单:
```typescript
await cancelOrder({
symbol: 'BTCUSDT',
orderId: '12345678'
});
```
#### `get_balances`
查询账户余额:
```typescript
const balances = await getBalances();
// 返回: { BTC: '0.1', USDT: '1000', ... }
```
#### `get_open_orders`
列出所有未完成订单:
```typescript
const orders = await getOpenOrders({
symbol: 'BTCUSDT' // 可选:指定交易对
});
```
## 安全注意事项
- 永远不要将 API 密钥提交到版本控制系统
- 使用环境变量或安全的密钥存储
- 限制 API 密钥权限仅用于所需操作
- 定期轮换您的 API 密钥
## 速率限制
- 遵守币安 API 速率限制
- 默认速率限制:
- 订单操作每分钟 1200 个请求
- 市场数据每秒 100 个请求
- 实现适当的速率限制错误处理
## 错误处理
常见错误场景:
- 无效的 API 凭证
- 余额不足
- 无效的订单参数
- 超出速率限制
- 网络连接问题
错误处理示例:
```typescript
try {
await createSpotOrder({
symbol: 'BTCUSDT',
side: 'BUY',
type: 'LIMIT',
quantity: '0.001',
price: '40000'
});
} catch (error) {
if (error.code === -2010) {
console.error('余额不足');
} else if (error.code === -1021) {
console.error('超出速率限制');
}
}
```
## 项目结构
```
.
├── src/
│ ├── index.ts # 服务器入口
│ ├── services/
│ │ ├── binance.ts # 币安 API 集成
│ │ ├── keystore.ts # API 密钥管理
│ │ └── tools.ts # 交易工具实现
│ └── types/
│ ├── binance.ts # 币安类型定义
│ └── binance-connector.d.ts # API 客户端类型
├── README.md
├── README_CN.md
├── package.json
├── pnpm-lock.yaml
└── tsconfig.json
```
## 开发
1. 设置环境变量:
在根目录创建 `.env` 文件,并设置您的币安 API 凭证:
```txt
BINANCE_API_KEY=你的API密钥
BINANCE_API_SECRET=你的API密钥
```
2. 安装依赖:
```bash
pnpm install
```
构建服务器:
```bash
pnpm build
```
用于自动重新构建的开发模式:
```bash
pnpm watch
```
## 安装
1. 克隆仓库
2. 安装依赖:
```bash
pnpm install
```
3. 在 `.env` 中配置您的币安 API 凭证
4. 构建并启动服务器:
```bash
pnpm build
pnpm start
```
```
### 调试
由于 MCP 服务器通过标准输入输出进行通信,调试可能具有挑战性。我们建议使用 [MCP Inspector](https://github.com/modelcontextprotocol/inspector),可以通过包脚本使用:
```bash
pnpm inspector
```
Inspector 将提供一个 URL,用于在浏览器中访问调试工具。