TailOpsMCP网关
🛰️ TailOpsMCP——一种用于管理分布式基础设施的安全控制平面网关
通过单个控制平面网关集中管理多个目标——由MCP提供支持 模型上下文协议(MCP)服务器,作为控制平面网关运行,通过基于能力的授权和策略执行来管理SSH、Docker和HTTP目标。
  ](https://www.docker.com/)  
   
______________________________________________________________________
🎯 什么是TailOpsMCP?
TailOpsMCP是一个控制平面网关,通过Claude、ChatGPT或任何兼容MCP的客户端等人工智能助手集中管理分布式基础设施。您可以部署一个网关,通过SSH、Docker和HTTP连接管理多个目标,而不是在每个节点上部署代理。
关键运营模式:
- 控制平面网关:单个受信任节点管理多个目标
- 目标注册表:管理系统的集中配置
- 政策大门:基于能力的授权可防止“LLM想象”风险
- 执行层:跨不同目标类型编排命令
与其记住复杂的命令,不如问:
- *“将我的监控堆栈部署到所有web服务器”*
- *“分析整个生产集群的安全日志”*
- *“什么在所有数据库节点上使用所有CPU?”*
- *“更新所有暂存服务器上的包”*
非常适合 基础设施团队, 骨相关事件,以及 DevOps工程师 跨多个环境管理分布式系统。
______________________________________________________________________
🚀 快速开始
Proxmox单线部署(推荐)
使用单个命令部署TailOpsMCP网关:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/mdlmarkham/TailOpsMCP/master/ct/tailops-gateway.sh)"这有什么作用:
- ✅ 使用合理的默认值创建隔离的LXC容器
- ✅ 安装TailOpsMCP及其所有依赖项
- ✅ 配置Tailscale和Docker集成
- ✅ 自动启动网关服务
- ✅ 提供清晰的访问说明
自定义部署:
# High-performance deployment
RAM_SIZE=4096 CPU_CORES=4 DISK_SIZE=16 \
bash -c "$(curl -fsSL https://raw.githubusercontent.com/mdlmarkham/TailOpsMCP/master/ct/tailops-gateway.sh)"
# Minimal deployment
RAM_SIZE=1024 CPU_CORES=1 DISK_SIZE=4 \
bash -c "$(curl -fsSL https://raw.githubusercontent.com/mdlmarkham/TailOpsMCP/master/ct/tailops-gateway.sh)"替代方案:传统Proxmox安装程序
对于现有工作流,旧版安装程序仍然可用:
# Legacy Proxmox installer
bash -c "$(wget -qLO - https://raw.githubusercontent.com/mdlmarkham/TailOpsMCP/master/ct/build.func)"这将创建一个隔离的网关容器,其中包含:
- Debian 12 LXC(2GB RAM,2个CPU内核,8GB磁盘)
- Python 3.12和所有依赖项
- Tailscale OAuth身份验证
- 系统化服务配置
______________________________________________________________________
👨💻 发展
快速开发设置
# Clone the repository
git clone https://github.com/mdlmarkham/TailOpsMCP.git
cd TailOpsMCP
# Set up complete development environment
make setup
# Run all quality checks
make quality
# Run tests
make test
# Fix code issues automatically
make fix开发环境
TailOpsMCP包括一个全面的开发环境,包括:
- 🔧 代码质量工具:流氓,我的,强盗,安全,伊索特,黑色
- 🧪 测试框架:带覆盖率报告的pytest
- 🛡️ 安全扫描:自动安全漏洞检测
- 📝 预提交钩子:提交前自动进行质量检查
- 📊 复杂性分析:radon用于代码可维护性度量
- 🔄 CI/CD管道:自动化质量检查和测试
有关详细的开发设置和工作流程,请参阅 开发商_SETUP.md
质量标准
我们的代码质量体系确保:
- ✅ 自动质量检查:每个提交都会进行全面的质量检查
- 🛡️ 安全第一:持续安全扫描漏洞
- 📈 代码覆盖率:最低80%的测试覆盖率要求
- 🔧 自动修复工具:自动修复常见问题
- 📚 综合文档:所有工具的完整文档
可用命令
| 命令 | 描述 |
|---|---|
make setup | 建立完整的开发环境 |
make quality | 运行所有质量检查(棉绒、类型检查、安全性、复杂性) |
make lint | 运行ruff linting |
make format | 带ruff和isort的格式代码 |
make typecheck | 运行mypy类型检查 |
make security | 运行安全扫描(土匪、安全) |
make complexity | 运行复杂性分析 |
make test | 运行覆盖率测试 |
make fix | 自动修复代码问题 |
make ci | 运行CI管道(质量+测试) |
make clean | 清理生成的文件和缓存 |
有关完整的命令参考,请参见 质量_工具_参考.md
自动化脚本
| 脚本 | 目的 |
|---|---|
scripts/run_quality_checks.py | 转轮全面质量检查 |
scripts/fix_code_quality.py | 自动修复代码质量问题 |
scripts/setup_dev_environment.sh | 完成开发环境设置 |
有关详细的自动化文档,请参阅 代码_质量.md
______________________________________________________________________
✨ 主要特点
🚀 当前能力
控制平面架构
- ✅ 目标注册表 -SSH、Docker和HTTP目标的集中配置
- ✅ 政策大门 -基于能力的授权与参数验证
- ✅ 执行层 -跨多个目标类型编排命令
- ✅ 多目标作战 -跨目标组执行命令
目标管理
- ✅ SSH目标支持 -通过SSH连接管理远程系统
- ✅ Docker套接字访问 -通过套接字连接控制Docker主机
- ✅ HTTP API集成 -与web服务和API交互
- ✅ 本地系统管理 -管理网关主机本身
安全与运营
- ✅ 基于能力的授权 -通过明确的分配策略预防“LLM想象”风险
- ✅ 参数验证 -对操作参数实施约束
- ✅ 审计日志 -全面跟踪所有网关操作
- ✅ 多网关支持 -冗余网关实现高可用性
🔒 安全第一
⚠️ 阅读安全咨询 生产部署前
- ✅ 需要尾秤 -强制加密传输(无内置TLS)
- ✅ OAuth 2.1与TSIDP -Tailscale身份提供者身份验证
- ✅ 非根服务 -以专注的方式运行
tailopsmcp用户 - ✅ 系统硬化 -使用ProtectSystem、ProtectHome进行全沙盒
- ✅ 审计日志 -全面跟踪所有操作
- ✅ 基于范围的访问 -细粒度权限控制
- ⚠️ 审批门 -需要外部webhook(非内置)
🔮 路线图 (参见 主页_功能.md)
- 🔄 LXC网络审计 -审查和审核容器网络配置
- 🔄 备份和快照 -带验证的自动备份
- 🔄 证书管理 -让我们加密自动化
- 🔄 反向代理管理 -Traefik/Nginx/Caddy配置
- 🔄 Proxmox API集成 -完整的VM/容器管理
- 🔄 安全扫描 -容器漏洞检测
______________________________________________________________________
🏗️ 控制平面网关架构
graph TD
A[AI Assistant] -- MCP Protocol --> B[Control Plane Gateway]
B -- Policy Gate --> C[Target Registry]
C -- Execution Layer --> D[SSH Targets]
C -- Execution Layer --> E[Docker Targets]
C -- Execution Layer --> F[HTTP Targets]
C -- Execution Layer --> G[Local System]
B -- Audit Logging --> H[Audit Trail]
B -- Capability Auth --> I[Security Policy]
subgraph "Network Segments"
J[Segment A Gateway] -- Manages --> K[Segment A Targets]
L[Segment B Gateway] -- Manages --> M[Segment B Targets]
end架构概述
控制平面网关模型:
- 单一网关:一个受信任的节点管理多个目标
- 目标注册表:管理系统的集中配置
- 策略强制:基于能力的授权可防止未经授权的操作
- 执行编排:命令被发送到适当的目标
安全优势:
- 减小爆炸半径:妥协只影响网关,而不是所有目标
- 能力允许列表:明确授权可防止“LLM想象”风险
- 分段隔离:网关可以按网段部署
- 审计跟踪:全面记录所有网关操作
运营模式:
- 网关部署:通常在Proxmox LXC容器中运行以进行隔离
- 目标连接性:SSH密钥、Docker套接字、用于目标访问的HTTP API
- 冗余:多个网关可以管理重叠的目标集
- 维护:更新和配置的单点控制
______________________________________________________________________
🐳 网关部署和管理
Proxmox LXC网关部署
TailOpsMCP网关通常部署在Proxmox LXC容器中,以实现隔离和安全。
推荐的LXC配置
# /etc/pve/lxc/103.conf
arch: amd64
cores: 2
memory: 2048
net0: name=eth0,bridge=vmbr0,firewall=1,ip=dhcp
rootfs: local-lvm:vm-103-disk-0,size=8G
# Enable Docker for target management
features: nesting=1,keyctl=1
lxc.apparmor.profile: unconfined
lxc.cgroup2.devices.allow: c 10:200 rwm # /dev/net/tun for Tailscale网关容器功能
- 隔离:LXC容器提供进程和网络隔离
- 资源控制:CPU和内存限制可防止网关资源耗尽
- 安全:AppArmor配置文件和c组设备控件
- 网络接入:用于安全远程访问的Tailscale集成
多网关部署策略
基于分段的部署
为每个网段部署网关以限制爆炸半径:
# Production Segment A
production-a-gateway:
segment: "production-a"
targets: ["web-a-01", "db-a-01", "cache-a-01"]
# Production Segment B
production-b-gateway:
segment: "production-b"
targets: ["web-b-01", "db-b-01", "cache-b-01"]
# Staging Segment
staging-gateway:
segment: "staging"
targets: ["staging-web-01", "staging-db-01"]冗余配置
多个网关可以管理重叠的目标集:
# Primary gateway for production
primary-gateway:
targets: ["web-01", "db-01", "cache-01", "monitoring-01"]
# Secondary gateway for redundancy
secondary-gateway:
targets: ["web-01", "db-01", "cache-01", "logging-01"]网关维护程序
更新和升级
# Update gateway software
sudo systemctl stop tailopsmcp-mcp
cd /opt/tailopsmcp
git pull
pip install -r requirements.txt
sudo systemctl start tailopsmcp-mcp
# Verify gateway health
sudo systemctl status tailopsmcp-mcp
sudo journalctl -u tailopsmcp-mcp --since "5 minutes ago"目标注册表管理
# Backup target registry
cp targets.yaml targets.yaml.backup.$(date +%Y%m%d_%H%M%S)
# Validate configuration
tailopsmcp-mcp --validate-config targets.yaml
# Reload gateway configuration
sudo systemctl reload tailopsmcp-mcp______________________________________________________________________
🔐 安全与连接
网关安全的大规模集成
TailOpsMCP使用 尾标身份提供者(TSIDP) 用于OAuth 2.1身份验证,提供安全的网关访问控制。
网关网络安全
配置Tailscale ACL以控制网关访问:
{
"acls": [
{
"action": "accept",
"src": ["group:tailopsmcp-admins"],
"dst": ["tag:tailopsmcp-gateway:8080"]
}
],
"tagOwners": {
"tag:tailopsmcp-gateway": ["group:tailopsmcp-admins"]
}
}目标网络连接
确保网关能够通过Tailscale达到目标:
- 子网路由:配置Tailscale子网路由以实现跨网络访问
- ACL规则:允许网关到目标通信
- 服务标签:使用标签进行网关服务发现
网关到目标连接
SSH目标要求
- 网关和目标之间的网络连接
- 已配置SSH密钥身份验证
- 允许SSH访问的防火墙规则
- 跨越网络时的尾标子网路由
Docker目标要求
- Docker套接字访问或API端点可达
- 与Docker主机的网络连接
- API令牌身份验证(如果使用远程API)
HTTP目标要求
- 与API端点的网络连接
- 身份验证凭据(API密钥、令牌)
- TLS/SSL证书验证
多网关网络设计
对于分段隔离和冗余:
# Segment A Gateway
segment-a-gateway:
network_segment: "production-a"
targets: ["web-a-01", "db-a-01", "cache-a-01"]
# Segment B Gateway
segment-b-gateway:
network_segment: "production-b"
targets: ["web-b-01", "db-b-01", "cache-b-01"]
# Overlapping targets for redundancy
shared-targets: ["monitoring-01", "logging-01"]______________________________________________________________________
📚 文档
开发文档
- 开发商_SETUP.md -完成开发环境设置
- 代码_质量.md -全面的代码质量指南
- 质量_工具_参考.md -所有工具的技术参考
项目文件
- 贡献.md -贡献指南
- 安全_查看_报告.md -安全审查结果
- 主页_功能.md -功能路线图和规格
技术规格
______________________________________________________________________
🤝 贡献
我们欢迎捐款!请查看我们的 贡献指南 了解详情。
开发工作流程
- 分叉和克隆:分叉存储库并在本地克隆
- 设置环境:运行
make setup营造发展环境 - 创建特征分支:为您的更改创建要素分支
- 开发:通过测试进行更改
- 质量检查:运行
make quality确保代码质量 - 提交PR:提交带有清晰描述的拉取请求
代码质量要求
所有捐款必须:
- ✅ 通过所有质量检查(
make quality) - ✅ 包括综合测试
- ✅ 遵循安全最佳实践
- ✅ 包括新功能的文档
- ✅ 保持向后兼容性
______________________________________________________________________
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
______________________________________________________________________
🔗 链接
- 仓库:
- 文档:
- 问题:
- 讨论:
______________________________________________________________________
🙏 致谢
- 模型上下文协议(MCP) -使这成为可能的协议
- 尾标 -安全的网络连接
- Proxmox -虚拟化平台
- Python社区 -惊人的工具和库生态系统
