@dbotx/conditional-order-mcp-server
Version:
Conditional Order MCP Server - Supports creating and managing conditional orders, automatically executing trades based on specific conditions
338 lines (264 loc) • 9.97 kB
Markdown
[English](./README.md) | [中文](./README.zh-CN.md)
# 专业的多链 DEX 交易 MCP 服务
条件单交易 MCP Server - 支持创建和管理开盘卖出、跟随Dev卖出等自动化交易任务
## 功能特性
- 🚀 **开盘卖出**: 当代币从Pump迁移到Raydium时自动卖出
- 👥 **跟随Dev卖出**: 当开发者卖出达到指定比例时自动跟随卖出
- ⚡ **智能监控**: 实时监控代币状态和开发者行为
- 🔧 **灵活管理**: 创建、编辑、开关、删除任务
- 📊 **状态跟踪**: 查看任务状态和执行历史
- 🤖 **自动执行**: 满足条件时自动触发交易
- 🎯 **精准控制**: 支持自定义费用、滑点、重试等参数
## 快速开始
### 在MCP客户端中配置
在你的MCP客户端配置中添加:
```json
{
"mcpServers": {
"conditional-order": {
"command": "npx",
"args": ["-y", "@dbotx/conditional-order-mcp-server"],
"env": {
"DBOT_API_KEY": "your-api-key",
"DBOT_WALLET_ID": "your-wallet-id"
}
}
}
}
```
**Get your api-key and wallet-id at [www.dbotx.com](https://www.dbotx.com)**
## 📚 典型场景
- **开盘卖出**:
- "帮我创建一个开盘卖出任务,卖出SOLANA代币 {{地址}} ,80%仓位"
- **跟随Dev卖出**:
- "帮我创建一个跟随Dev卖出任务,当Dev卖出SOLANA代币 {{地址}} 60%仓位时,卖出我80%仓位"
- **管理任务**:
- "获取我的开盘卖出任务列表"
- "查看所有跟随Dev卖出任务"
- "显示进行中的任务"
- "暂停我的条件单任务"
- "修改开盘卖出任务的卖出比例为90%"
- "修改跟随dev卖出任务的卖出比例为90%"
- "删除指定的条件单任务"
## 环境变量
### 必需的环境变量
- `DBOT_API_KEY`: DBot API密钥(必需)
- `DBOT_WALLET_ID`: 默认钱包ID(必需)
### 可选的默认参数配置
以下环境变量可用于配置默认参数值。这些默认值可以在调用时被覆盖。
#### 基础配置
- `DBOT_CHAIN`: 默认链类型 (solana)
- `DBOT_CUSTOM_FEE_AND_TIP`: 是否使用自定义费用 (true/false)
- `DBOT_PRIORITY_FEE`: 优先费,例如:"0.0001"
- `DBOT_JITO_ENABLED`: 是否启用防夹模式 (true/false)
- `DBOT_JITO_TIP`: 防夹小费,例如:0.001
- `DBOT_MAX_SLIPPAGE`: 最大滑点 (0.00-1.00),例如:0.1
- `DBOT_CONCURRENT_NODES`: 并发节点数 (1-3),例如:2
- `DBOT_RETRIES`: 重试次数 (0-10),例如:1
- `DBOT_EXPIRE_DELTA`: 任务有效时长(毫秒),例如:360000000
- `DBOT_MIN_DEV_SELL_PERCENT`: 跟随Dev卖出触发比例,例如:0.5
**配置示例:**
```json
{
"env": {
"DBOT_API_KEY": "your-api-key",
"DBOT_WALLET_ID": "your-wallet-id",
"DBOT_CHAIN": "solana",
"DBOT_CUSTOM_FEE_AND_TIP": "false",
"DBOT_PRIORITY_FEE": "",
"DBOT_JITO_ENABLED": "true",
"DBOT_JITO_TIP": "0.001",
"DBOT_MAX_SLIPPAGE": "0.1",
"DBOT_CONCURRENT_NODES": "2",
"DBOT_RETRIES": "1",
"DBOT_EXPIRE_DELTA": "360000000",
"DBOT_MIN_DEV_SELL_PERCENT": "0.5"
}
}
```
## 可用工具
### create_migrate_order
创建开盘卖出任务
**功能说明:**
当代币从Pump.fun迁移到Raydium时自动执行卖出操作。
**参数:**
- `pair` (string): Pump代币地址 **[必需]**
- `amountOrPercent` (number): 卖出比例(0-1),例如 0.5 表示卖出50% **[必需]**
- `walletId` (string): 钱包ID(可选,如未提供将使用环境变量 DBOT_WALLET_ID)
- `chain` (string): 区块链名称 (solana,默认:solana)
- `pairType` (string): 代币类型 (pump/raydium_amm,默认:pump)
- `customFeeAndTip` (boolean): 是否自定义费用和小费设置(默认:false)
- `priorityFee` (string): 优先费(SOL),空字符串表示使用自动优先费(默认:"")
- `jitoEnabled` (boolean): 是否启用防夹模式(默认:true)
- `jitoTip` (number): 防夹模式使用的贿赂费(默认:0.001)
- `expireDelta` (number): 任务有效时长(毫秒),最大值为432000000(默认:360000000)
- `maxSlippage` (number): 最大滑点(0.00-1.00)(默认:0.1)
- `concurrentNodes` (number): 并发节点数(1-3)(默认:2)
- `retries` (number): 失败后的重试次数(0-10)(默认:1)
**示例:**
```json
{
"pair": "9BB6NFEcjBCtnNLFko2FqVQBq8HHM13kCyYcdQbgpump",
"amountOrPercent": 0.5,
"jitoEnabled": true,
"jitoTip": 0.001
}
```
### create_dev_order
创建跟随Dev卖出任务
**功能说明:**
当开发者卖出代币达到指定比例时,自动跟随卖出。
**参数:**
- `pair` (string): Pump代币地址或交易对地址 **[必需]**
- `amountOrPercent` (number): 卖出比例(0-1),例如 0.5 表示卖出50% **[必需]**
- `minDevSellPercent` (number): 触发比例(0-1),当Dev卖出超过这个比例时卖出你的代币(默认:0.5)
- `walletId` (string): 钱包ID(可选,如未提供将使用环境变量 DBOT_WALLET_ID)
- 其他参数与 `create_migrate_order` 相同
**示例:**
```json
{
"pair": "9BB6NFEcjBCtnNLFko2FqVQBq8HHM13kCyYcdQbgpump",
"minDevSellPercent": 0.3,
"amountOrPercent": 0.8,
"jitoEnabled": true
}
```
### update_migrate_order
编辑开盘卖出任务
**参数:**
- `id` (string): 开盘卖出任务的ID **[必需]**
- `pair` (string): Pump代币地址 **[必需]**
- `walletId` (string): 钱包ID **[必需]**
- `amountOrPercent` (number): 卖出比例(0-1) **[必需]**
- 其他参数与 `create_migrate_order` 相同
### update_dev_order
编辑跟随Dev卖出任务
**参数:**
- `id` (string): 跟随Dev卖出任务的ID **[必需]**
- `pair` (string): Pump代币地址或交易对地址 **[必需]**
- `walletId` (string): 钱包ID **[必需]**
- `amountOrPercent` (number): 卖出比例(0-1) **[必需]**
- 其他参数与 `create_dev_order` 相同
### toggle_migrate_order
开启/关闭开盘卖出任务
**参数:**
- `id` (string): 开盘卖出任务的ID **[必需]**
- `enabled` (boolean): 任务启用状态:true表示启用,false表示禁用 **[必需]**
### toggle_dev_order
开启/关闭跟随Dev卖出任务
**参数:**
- `id` (string): 跟随Dev卖出任务的ID **[必需]**
- `enabled` (boolean): 任务启用状态:true表示启用,false表示禁用 **[必需]**
### delete_migrate_order
删除开盘卖出任务
**参数:**
- `id` (string): 开盘卖出任务的ID **[必需]**
### delete_dev_order
删除跟随Dev卖出任务
**参数:**
- `id` (string): 跟随Dev卖出任务的ID **[必需]**
### get_migrate_orders
获取开盘卖出任务列表
**功能说明:**
获取用户的所有开盘卖出任务,支持分页和状态筛选。
**参数:**
- `page` (number): 页码,从0开始(默认:0)
- `size` (number): 每页数量,1-100(默认:20)
- `chain` (string): 区块链名称 (solana,默认:solana)
- `state` (string): 任务状态筛选(可选)
- `init`: 初始化
- `processing`: 处理中
- `done`: 已完成
- `fail`: 失败
- `expired`: 已过期
- `source` (string): 任务来源筛选(可选)
**示例:**
```json
{
"page": 0,
"size": 10,
"state": "init"
}
```
### get_dev_orders
获取跟随Dev卖出任务列表
**功能说明:**
获取用户的所有跟随Dev卖出任务,支持分页和状态筛选。
**参数:**
- `page` (number): 页码,从0开始(默认:0)
- `size` (number): 每页数量,1-100(默认:20)
- `chain` (string): 区块链名称 (solana,默认:solana)
- `state` (string): 任务状态筛选(可选)
- `init`: 初始化
- `processing`: 处理中
- `done`: 已完成
- `fail`: 失败
- `expired`: 已过期
- `source` (string): 任务来源筛选(可选)
**示例:**
```json
{
"page": 0,
"size": 10,
"state": "processing"
}
```
## 使用场景
### 1. 开盘卖出策略
当你持有Pump.fun代币,希望在代币迁移到Raydium时立即卖出获利:
```json
{
"pair": "代币地址",
"amountOrPercent": 1.0,
"jitoEnabled": true,
"jitoTip": 0.001
}
```
### 2. 跟随Dev卖出策略
当你担心开发者抛售,希望在开发者开始大量卖出时及时止损:
```json
{
"pair": "代币地址",
"minDevSellPercent": 0.2,
"amountOrPercent": 0.5,
"jitoEnabled": true
}
```
### 3. 风险控制
结合开盘卖出和跟随Dev卖出,实现多层风险控制:
- 设置开盘卖出任务,在迁移时卖出50%
- 设置跟随Dev卖出任务,当Dev卖出超过30%时卖出剩余的50%
## 技术特性
### 费用控制
- **自动费用模式**: 系统自动选择最优费用设置
- **自定义费用模式**: 可精确控制优先费和贿赂费
- **防夹模式**: 启用Jito防夹,避免MEV攻击
### 滑点保护
- 支持设置最大滑点限制
- 自动根据市场情况调整交易策略
### 可靠性保证
- 多节点并发执行,提高成功率
- 失败自动重试机制
- 任务有效期限制,避免过期执行
## 注意事项
1. **钱包配置**: `walletId` 参数是可选的,如果不提供将自动使用环境变量 `DBOT_WALLET_ID` 中的钱包ID
2. **代币类型**:
- `pump`: 表示代币还未上Raydium
- `raydium_amm`: 表示代币已上Raydium
3. **任务监控**: 系统会持续监控条件状态,满足条件时自动执行
4. **费用设置**:
- `customFeeAndTip=false`: 高速模式下只有优先费有效,防夹模式下只有贿赂费有效
- `customFeeAndTip=true`: 优先费和贿赂费均有效
5. **风险控制**: 建议设置合理的卖出比例和滑点限制
## 错误处理
所有工具调用都会返回详细的错误信息,帮助快速定位和解决问题。常见错误包括:
- API密钥错误
- 钱包ID无效
- 代币地址格式错误
- 参数范围超出限制
## 📚 API文档
完整的API文档请参考:[DBot API](https://dbotx.com/docs).
## 📄 许可证
MIT
## 💡 支持
如有问题或建议,请访问:[GitHub Issues](https://github.com/dbotx/dbot-mcp-servers/issues).