dmcpu - Docker MCP 更新
这是一个针对MCP(模型上下文协议)服务及其MCPO(MCP编排器)代理的综合服务管理工具。该工具通过单一命令简化了对多个基于MCP的AI助手服务的管理。
🐋 什么是dmcpu?
dmcpu(Docker MCP Up)是一个Bash脚本,用于编排和管理多个MCP服务,提供:
- 服务生命周期管理启动、停止和监控MCP服务
- 港口管理自动端口冲突解决
- 依赖检查验证所需的工具和依赖项
- 状态监控实时服务状态显示
- 优雅地关闭所有服务的干净终止
💻 安装与设置
快速设置(推荐)
- 将仓库克隆到您的主文件夹:
cd ~
git clone https://github.com/lfontanez/tool-dmcpu.git- 创建一个别名以便方便使用:
# Create symlink in ~/.local/bin (ensure directory exists)
mkdir -p ~/.local/bin
ln -sf ~/tool-dmcpu/dmcpu.sh ~/.local/bin/dmcpu
# Make executable
chmod +x ~/.local/bin/dmcpu- 如果尚未添加,请将 ~/.local/bin 添加到您的 PATH 中:
# Add to ~/.bashrc, ~/.zshrc, or your shell profile
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc- 验证安装:
dmcpu --help手动设置
如果您希望将存储库保存在其他位置:
# Clone to any location
cd /path/to/your/preferred/location
# Create alias
ln -sf /path/to/your/preferred/location/tool-dmcpu/dmcpu.sh ~/.local/bin/dmcpu
chmod +x ~/.local/bin/dmcpu📋 前提条件
所需工具
docker- 容器运行时lsof- 端口监控uvx- Python工具安装程序npx- Node.js 包运行器
Docker 容器
- Archon 翻译成中文是“执政官”或“首领”可在……获取
/home/lfontanez/dev/archon/ - Crawl4AI 可以翻译为“用于AI的爬虫”或“AI爬虫工具”,具体翻译取决于上下文和使用场景。在这里,我选择了一个较为通用的翻译:“用于AI的爬虫”名为“Container”的(容器)
crawl4ai必须存在
🚀 使用方法
启动所有服务
dmcpu --start停止所有服务
dmcpu --kill检查服务状态
dmcpu --status显示ASCII标志
dmcpu --ascii显示帮助
dmcpu --help🔧 服务启动顺序
- Docker MCP网关 (端口 8811)
- MCPO Docker MCP 翻译为中文是:“海军军士长(MCPO)Docker 主机进程容器(MCP,此处根据上下文推测,MCP可能指的是与Docker相关的某个进程或容器管理概念,但具体含义需根据实际应用场景确定,此处仅为一种可能的翻译)”。不过,更简洁且通用的翻译可能是:“海军军士长使用Docker进行MCP(或某特定进程/容器管理任务)”。但考虑到“MCP”在此处可能是一个特定术语或缩写,且没有上下文,直接翻译可能不够准确,所以保留了“MCP”作为原样。如果“MCP”有具体含义,应替换为相应的中文表述 (端口7001)
- “Archon Container”可以翻译为“阿基翁容器”或根据具体语境简化为“容器(Archon型)”,但直接且通用的翻译可能是“阿基翁集装箱”或“阿基翁容器系统”,具体取决于该术语在特定领域或语境中的含义和用法。在这里,我选择了一个较为通用且易于理解的翻译:“阿基翁容器” (端口8051)
- 海军陆战队军士长(MCPO Archon) (端口7000)
- Crawl4AI 容器 (端口 11235)
- MCPO Crawl4AI(注:此句为专有名词或特定项目名称,直接翻译为“MCPO Crawl4AI”,若需根据上下文赋予其意义,可译为“MCPO 用于AI抓取的项目/系统/技术”等,但具体翻译需依据实际语境) (端口7002)
🎯 特点
服务管理
- 自动PID管理追踪服务流程
- 端口冲突检测防止端口冲突
- 优雅终止适当的服务关闭
- 健康检查验证服务启动
用户体验
- 多彩输出易于阅读的终端输出
- ASCII艺术有趣的Docker鲸鱼标志
- 进度指示器清晰的启动进度
- 错误处理全面的错误信息
安全特性
- 依赖验证检查所需工具
- 过程验证确认服务状态正常
- 清理退出时删除PID文件
- 信号处理适当的中断处理
🛠️ 技术细节
配置
- PID 目录:
/tmp/dockermcp/ - 端口范围7000-7002,8811,8051,11235
- 超时端口验证重试10次
错误处理
- 验证端口号(1-65535)
- 启动后检查进程健康状况
- 提供详细的错误信息
- 故障时自动清理
🐞 故障排除
常见问题
端口已被占用
# Check what's using the port
lsof -i :8811
# Kill conflicting process
kill -9
缺少依赖项
# Install missing tools
npm install -g @modelcontextprotocol/inspector
pip install uv未找到容器
- 确保Archon目录存在于
/home/lfontanez/dev/archon/ - 验证Crawl4AI容器是否存在:
docker ps -a | grep crawl4ai
调试模式
为了进行详细的调试,您可以修改脚本以移除输出重定向:
# Remove "> /dev/null 2>&1" from service commands
# to see detailed output📝 开发
文件结构
dmcpu/
├── dmcpu.sh # Main service manager script
├── README.md # This documentation
└── .gitignore # Git ignore rules添加新服务
添加一项新服务:
- 添加端口到
PORTS数组 - 按照现有模式创建启动函数
- 添加到
start_all()具有正确启动顺序的功能 - 更新
show_status()函数
🤝 贡献(或“参与贡献”)
- 为仓库创建分支
- 创建一个特性分支
- 做出你的更改
- 彻底测试
- 提交一个拉取请求
📄 许可证
MIT 许可证 - 详见 LICENSE 文件
由Leamsi Fontánez(leamsi.fontanez@gmail.com)创建
R1软件 - *灵魂在于软件之中*
