UNPKG

@bbigu0898/copy-trading-mcp-server

Version:

跟单交易 MCP Server - 支持创建和管理复杂的跟单任务,自动跟随其他用户的交易策略

373 lines (306 loc) 14.1 kB
[English](./README.md) | [中文](./README.zh-CN.md) # @dbot/copy-trading-mcp-server 跟单交易 MCP Server - 支持创建和管理复杂的跟单任务,自动跟随其他用户的交易策略 ## 🚀 功能特性 以下为功能概述: - 🔗 **智能跟单**: 自动跟随指定钱包的交易行为进行买入和卖出操作 -**多链支持**: 支持多链跟单交易(Solana, Ethereum, Base, BSC, Tron) - 💰 **灵活买入**: 支持固定金额、固定比例、跟随金额三种买入模式 - 📊 **智能卖出**: 支持跟随卖出、止盈止损、混合模式等多种卖出策略 - 🛡️ **风险控制**: 全面的代币过滤、税率检查、持仓限制等风险控制机制 - 🔧 **任务管理**: 创建、编辑、开关、删除跟单任务 - 📈 **实时监控**: 支持多DEX跟随和黑名单管理 - ⚙️ **高级配置**: 支持防夹模式、滑点控制、并发节点等高级功能 ## 快速开始 以下为使用方法: 在MCP客户端配置中添加: **示例:** ```json { "mcpServers": { "copy-trading": { "command": "npx", "args": ["-y", "@dbot/copy-trading-mcp-server@latest"], "env": { "DBOT_API_KEY": "your-api-key", "DBOT_WALLET_ID": "your-wallet-id" } } } } ``` ## 📚 典型场景 - **基础跟单** - "帮我创建一个跟单任务,跟随钱包地址 ECQwEUMk75pxgruroXKTfqMHL4Aoj622vEZxBtYu4gNt 在Solana上的交易,每次最多买入0.1 SOL" - **智能跟单 + 止盈止损** - "创建跟单任务跟随该地址,设置最大买入0.5 SOL,价格上涨200%时自动卖出,下跌30%时止损" - **多目标跟单** - "跟随3个聪明钱地址进行交易,设置分级止盈:涨50%卖30%,涨100%卖70%" - **管理跟单任务** - "暂停我的跟单任务" - "修改跟单任务的最大买入金额" - "删除指定的跟单任务" ## 🌱 环境变量 以下为环境变量说明: ### 必需的环境变量 - `DBOT_API_KEY`: DBot API密钥(必需) - `DBOT_WALLET_ID`: 默认钱包ID(必需) ### 可选的默认参数配置 - 如需更改可根据示例配置,如未更改将使用默认配置。 - 默认配置可通过与LLM模型对话得到,例如 "请告诉我 跟单交易 工具的默认配置"。 - 所有环境变量默认值均可在对话时被覆盖。例如 系统默认开启防夹模式,对话时可要求将其覆盖,"创建跟单任务....,请关闭防夹模式。" #### 基础配置 - `DBOT_CHAIN`: 默认链类型 (solana/ethereum/base/bsc/tron) - `DBOT_CUSTOM_FEE_AND_TIP`: 是否使用自定义费用 (true/false) - `DBOT_PRIORITY_FEE`: 优先费,例如:"0.0001" - `DBOT_GAS_FEE_DELTA`: gas费用增量,例如:5 - `DBOT_MAX_FEE_PER_GAS`: 最大gas费用,例如:100 - `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 **示例:** ```json { "env": { "DBOT_API_KEY": "your-api-key", "DBOT_WALLET_ID": "your-wallet-id", "DBOT_CHAIN": "solana", "DBOT_CUSTOM_FEE_AND_TIP": "true", "DBOT_PRIORITY_FEE": "0.0002", "DBOT_GAS_FEE_DELTA": "5", "DBOT_MAX_FEE_PER_GAS": "100", "DBOT_JITO_ENABLED": "true", "DBOT_JITO_TIP": "0.001", "DBOT_MAX_SLIPPAGE": "0.1", "DBOT_CONCURRENT_NODES": "2", "DBOT_RETRIES": "1" } } ``` #### 跟单配置 - `DBOT_BUY_AMOUNT_TYPE`: 默认买入类型 (fixed_amount/fixed_ratio/follow_amount) - `DBOT_MAX_BUY_AMOUNT`: 默认最大买入金额,例如:"0.1" - `DBOT_BUY_RATIO`: 默认跟随比例,例如:1.0 - `DBOT_SELL_MODE`: 默认卖出模式 (mixed/only_copy/only_pnl) - `DBOT_SELL_AMOUNT_TYPE`: 默认卖出类型 (all/follow_ratio/x_target_ratio) **示例:** ```json { "env": { "DBOT_API_KEY": "your-api-key", "DBOT_WALLET_ID": "your-wallet-id", "DBOT_BUY_AMOUNT_TYPE": "follow_amount", "DBOT_MAX_BUY_AMOUNT": "0.1", "DBOT_BUY_RATIO": "1.0", "DBOT_SELL_MODE": "mixed", "DBOT_SELL_AMOUNT_TYPE": "all" } } ``` #### 止盈止损配置 - `DBOT_PNL_ORDER_EXPIRE_DELTA`: 止盈止损订单过期时间(毫秒),例如:43200000 - `DBOT_PNL_ORDER_EXPIRE_EXECUTE`: 是否执行过期订单 (true/false) - `DBOT_PNL_ORDER_USE_MID_PRICE`: 是否使用中间价 (true/false) **示例:** ```json { "env": { "DBOT_API_KEY": "your-api-key", "DBOT_WALLET_ID": "your-wallet-id", "DBOT_PNL_ORDER_EXPIRE_DELTA": "43200000", "DBOT_PNL_ORDER_EXPIRE_EXECUTE": "true", "DBOT_PNL_ORDER_USE_MID_PRICE": "false" } } ``` 注意: 1. 所有布尔类型的环境变量值应该使用字符串 "true" 或 "false" 2. 数字类型的环境变量值也应该使用字符串形式 3. 在调用时指定的参数值会覆盖环境变量中的默认值 4. 可以根据需要只配置部分参数,未配置的参数将使用系统默认值 ## 🛠️ 可用工具 以下为工具说明: ### create_copy_trading 创建多链的跟单交易任务 - 自动跟随指定钱包地址的交易行为进行买入和卖出操作 **基础参数:** - `enabled` (boolean, 可选): 任务启用状态,true/false,默认为true - `name` (string, 必需): 跟单任务的名称 - `chain` (string, 可选): 链 (solana/ethereum/base/bsc/tron),默认为solana - `dexFilter` (array, 可选): 需要跟随的DEX,null表示全部跟随,填写名字表示只跟随该DEX的交易 - `targetIds` (array, 必需): 需要跟单的钱包地址(最多10个) - `tokenBlacklist` (array, 可选): 当前任务的黑名单代币地址(最多20个),加入黑名单之后将不会跟买和跟卖这些代币 - `walletId` (string, 可选): 使用的钱包的id,可通过"钱包信息 API"获取(如未提供将使用环境变量 DBOT_WALLET_ID) - `groupId` (string, 可选): 分组id - `buySettings` (object, 必需): 买入相关设置 - `sellSettings` (object, 必需): 卖出相关设置 **买入设置 (buySettings):** - `enabled` (boolean): 买入任务启用状态,默认为true - `maxBuyAmountUI` (string, 必需): 跟单的最大买入金额,最小可填写0.001 SOL,0.0001 ETH,0.0001 BNB,1 TRX - `buyAmountType` (string): 跟单买入类型,"fixed_amount"表示固定金额,"fixed_ratio"表示固定比例,"follow_amount"表示跟随金额,默认为follow_amount - `buyRatio` (number): 跟随买入比例(0-10),当买入类型为fixed_ratio时生效,默认为1 - `maxBalanceUI` (number): 止盈金额(ETH/SOL/BNB/TRX),钱包余额高于此金额时不会再跟随买入,默认为100 - `reservedAmountUI` (number): 止损金额(ETH/SOL/BNB/TRX),钱包余额低于此金额时不会再跟随买入,默认为0.01 - `targetMinAmountUI` (number): 聪明钱买入金额大于此值时才会跟随买入,默认为0 - `targetMaxAmountUI` (number): 聪明钱买入金额小于此值时才会跟随买入,默认为999999 - `minTokenMCUSD` (number): 最小跟单市值,只跟随买入高于此市值的代币,默认为0 - `maxTokenMCUSD` (number): 最大跟单市值,只跟随买入低于此市值的代币,默认为999999999 - `maxSlippage` (number): 最大滑点(0.00-1.00),默认为0.1 - `jitoEnabled` (boolean): 是否启用防夹模式,默认为true - `jitoTip` (number): 防夹模式使用的贿赂费,默认为0.001 - `skipFreezableToken` (boolean): 不买入冻结权限未丢弃的代币,默认为false - `skipMintableToken` (boolean): 不买入mint权限未丢弃的代币,默认为false - `skipHoneyPot` (boolean): 不买入GoPlus定义为貔貅的代币,默认为false - `minBurnedLp` (number): 池子最小销毁比例(0-1),默认为0 - `maxBuyTimesPerToken` (number): 7日内代币在此任务中的最大买入次数,默认为999 - `buyOncePerWallet` (boolean): 只买入一次,默认为false - `concurrentNodes` (number): 并发节点数(1-3),默认为2 - `retries` (number): 失败后的重试次数(0-10),默认为1 **卖出设置 (sellSettings):** - `enabled` (boolean): 卖出任务启用状态,默认为true - `mode` (string): 卖出模式,"mixed"表示同时启用跟随卖出和止盈止损,"only_copy"表示只启用跟随卖出,"only_pnl"表示只启用止盈止损,默认为mixed - `sellAmountType` (string): 跟单卖出的比例,"all"表示100%卖出,"follow_ratio"表示跟随比例卖出,"x_target_ratio"表示根据聪明钱的卖出比例,固定乘以一个倍数进行卖出,默认为all - `xTargetRatio` (number): 聪明钱卖出比例的倍数(0-100),默认为1 - `sellSpeedType` (string): 跟随卖出的速度,"fast"表示速度优先,"accurate"表示准确优先,默认为accurate - `stopEarnPercent` (number): 止盈百分比(0.5表示50%) - `stopLossPercent` (number): 止损百分比(0.5表示50%) - `stopEarnGroup` (array): 止盈分组,最多支持设置6个 - `stopLossGroup` (array): 止损分组,最多支持设置6个 - `trailingStopGroup` (array): 移动止盈止损分组,当前仅支持设置1组 - `pnlOrderExpireDelta` (number): 止盈止损任务的过期时间(毫秒),默认为43200000 - `sellMode` (string): 卖出方式,"smart"表示不会卖出,"normal"表示继续卖出,默认为smart - `migrateSellPercent` (number): 开盘卖出比例(0.00-1.00),默认为0 - `minDevSellPercent` (number): 触发比例(0-1),默认为0.5 - `devSellPercent` (number): 当跟随Dev卖出任务触发时,你卖出的比例,默认为1 **示例:** ```json { "enabled": true, "name": "跟单任务1", "chain": "solana", "targetIds": ["ECQwEUMk75pxgruroXKTfqMHL4Aoj622vEZxBtYu4gNt"], "buySettings": { "enabled": true, "maxBuyAmountUI": "0.1", "buyAmountType": "follow_amount", "buyRatio": 1.5, "maxSlippage": 0.1, "jitoEnabled": true }, "sellSettings": { "enabled": true, "mode": "mixed", "sellAmountType": "all", "stopEarnPercent": 1, "stopLossPercent": 0.5 } } ``` ### edit_copy_trading 编辑跟单交易任务。只需要提供要修改的字段和必需字段(id, enabled, name, chain, targetIds, buySettings, sellSettings),无需重新输入所有字段 **参数:** - `id` (string, 必需): 跟单任务id - 其他参数与创建任务相同(可选) **示例:** ```json { "id": "lxvmnr5h00jeus", "enabled": true, "name": "更新的任务名称" } ``` ### switch_copy_trading 开关跟单交易任务 **参数:** - `id` (string, 必需): 跟单任务id - `enabled` (boolean, 必需): 任务启用状态,true/false - `closePnlOrder` (boolean, 可选): 是否同时关闭跟单任务创建的所有止盈止损任务,默认false,表示不关闭(当"enabled"为false时有效) **示例:** ```json { "id": "lxvmnr5h00jeus", "enabled": false, "closePnlOrder": false } ``` ### delete_copy_trading 删除跟单交易任务 **参数:** - `id` (string, 必需): 跟单任务id - `deletePnlOrder` (boolean, 可选): 是否同时删除此跟单任务创建的所有止盈止损任务,默认为false **示例:** ```json { "id": "lxvmnr5h00jeus", "deletePnlOrder": false } ``` ### get_copy_trading_tasks 获取跟单任务列表 **参数:** - `page` (number, 可选): 页码,默认为0 - `size` (number, 可选): 每页数量(最大100),默认为20 **示例:** ```json { "page": 0, "size": 20 } ``` ## 支持的DEX ### Solana - raydium_amm, raydium_clmm, raydium_cpmm, raydium_launchpad - meteora_dlmm, meteora_dyn, meteora_dyn2, meteora_bc - pump, pump_swap, moonshot, orca_wp ### Ethereum/Base/BSC - uniswap_v2, uniswap_v3, pancake_v2, pancake_v3 - ether_vista, okx_v2, fourmeme, boop ### Tron - sunswap_v2, sunpump ## 跟单机制说明 ### 买入类型 - **fixed_amount**: 固定金额买入 - **fixed_ratio**: 固定比例买入(根据buyRatio参数) - **follow_amount**: 跟随金额买入(按聪明钱的实际买入金额) ### 卖出模式 - **mixed**: 同时启用跟随卖出和止盈止损 - **only_copy**: 只启用跟随卖出 - **only_pnl**: 只启用止盈止损 ### 卖出类型 - **all**: 100%卖出 - **follow_ratio**: 跟随比例卖出 - **x_target_ratio**: 根据聪明钱的卖出比例乘以倍数 ### 风险控制功能 - **代币过滤**: 支持冻结权限、mint权限、委托检查 - **税率检查**: 支持买入/卖出税率限制(EVM链) - **貔貅检测**: 集成GoPlus安全检测 - **流动性检查**: 支持最小流动性和LP销毁比例检查 - **持仓限制**: 支持前10持仓比例限制 - **购买频率**: 支持单币最大购买次数和金额限制 ## 风险提醒 ### 投资风险 1. **市场风险**: 跟单不能保证盈利,存在亏损可能 2. **策略风险**: 被跟单者的策略可能不适合您的风险偏好 3. **时间差风险**: 跟单执行可能存在时间延迟 ### 技术风险 1. **网络延迟**: 可能影响跟单执行时机 2. **资金不足**: 确保账户有足够资金执行跟单 3. **链条拥堵**: 网络拥堵可能影响交易执行 ### 建议措施 1. **合理配置**: 根据风险承受能力设置买入金额和止盈止损 2. **多重保护**: 启用代币过滤和风险检查功能 3. **定期监控**: 定期检查跟单任务的执行情况 4. **及时调整**: 根据市场情况及时调整策略 ## 注意事项 1. **钱包配置**: `walletId` 参数是可选的,如果不提供将自动使用环境变量 `DBOT_WALLET_ID` 中的钱包ID 2. **被跟单地址**: 确保提供的钱包地址是您信任的交易者 3. **资金管理**: 确保账户有足够的资金执行跟单交易 4. **监控频率**: 系统会实时监控被跟单地址的交易活动 5. **参数配置**: 建议先用较小金额测试,确认策略有效后再增加投入 ## 📚 API文档 完整的API文档请参考:https://api-bot-v1.dbotx.com/docs ## 📄 许可证 MIT ## 💡 支持 如有问题或建议,请访问:https://github.com/dbot-team/dbot-mcp-servers