使用说明
生产系统自动驾驶
“2 Fast 2 MCP”黑客马拉松的MCP原生修复剂
一个生产级、策略门控的补救系统,展示了MCP服务器的实施、治理、可观察性和安全工具的执行。
建筑
┌─────────────────────────────────────────────────────────────┐
│ ARCHESTRA (Orchestrator) │
│ - MCP Server Registration │
│ - Tool Discovery & Routing │
│ - Secret Management │
└─────────────────┬───────────────────────────────────────────┘
│ Stdio Transport
▼
┌─────────────────────────────────────────────────────────────┐
│ MCP SERVER (Backend) │
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ monitor_tool│ │ scale_tool │ │ rollback_tool│ │
│ └─────────────┘ └──────────────┘ └──────────────┘ │
│ │
│ ┌────────────────────────────────────────────────┐ │
│ │ POLICY ENGINE (Governance) │ │
│ │ - Max replicas validation │ │
│ │ - Input schema validation │ │
│ │ - Policy violation logging │ │
│ └────────────────────────────────────────────────┘ │
│ │
│ ┌────────────────────────────────────────────────┐ │
│ │ LOGGER (Observability) │ │
│ │ - Structured logging │ │
│ │ - MTTR tracking │ │
│ │ - Timestamp all events │ │
│ └────────────────────────────────────────────────┘ │
│ │
│ Express API: /api/status, /api/logs, /api/trigger-alert │
└─────────────────┬───────────────────────────────────────────┘
│ HTTP (Port 3001)
▼
┌─────────────────────────────────────────────────────────────┐
│ CONTROL CENTER (Frontend) │
│ - System Status Indicator (GREEN/RED) │
│ - MTTR Stopwatch │
│ - Event Timeline (Live Polling) │
│ - Trigger Alert / Rollback Actions │
└─────────────────────────────────────────────────────────────┘
项目结构
mcp-project/
├── backend/
│ ├── src/
│ │ ├── server.ts # MCP server + Express API
│ │ ├── policy.ts # Governance rules
│ │ └── logger.ts # Observability module
│ ├── package.json
│ ├── tsconfig.json
│ └── Dockerfile
└── frontend/
├── src/
│ ├── App.tsx # Control Center UI
│ └── App.css # Styling
├── package.json
└── vite.config.ts
设置和运行
后端(MCP服务器)
cd backend
npm install
npm start
运行时间:
- MCP标准(用于Archestra集成)
- 上的Express API
http://localhost:3001
前端(控制中心)
cd frontend
npm install
npm run dev
运行时间: http://localhost:5173
Docker构建
cd backend
docker build -t autopilot-mcp-server .
docker run -p 3001:3001 autopilot-mcp-server
MCP工具
1. monitor_tool
目的: 获取当前系统指标
输入: 无
输出:
{
"status": "CRITICAL",
"cpu_load": 98,
"memory_usage": 85,
"replicas": 3,
"alert_active": true
}
2. scale_tool
目的: 扩展服务副本(策略门控)
输入:
{
"replicas": 5
}
治理:
- ❌ 块如果
replicas > 10 - ✅ 记录违反策略的行为
- ✅ 验证架构
输出: "Successfully scaled to 5 replicas."
3. rollback_tool
目的: 回滚到之前的稳定状态
输入: 无
输出: "Rollback successful. Version restored."
Archestra集成
注册
不确定-需要ARCHESTRA文件确认
根据标准MCP模式,注册可能涉及:
# Example (NOT CONFIRMED):
archestra mcp register \
--name autopilot-agent \
--transport stdio \
--command "node /app/dist/server.js"
工具发现
注册后,Archestra应:
- 通过MCP查询可用工具
tools/list - 暴露
monitor_tool,scale_tool,rollback_tool到编排层 - 通过Stdio传输路由工具调用
秘密管理
不确定-需要ARCHESTRA文件确认
标准方法:
- 环境变量:
ARCHESTRA_SECRET_* - 已装载的配置文件:
/etc/archestra/secrets - MCP服务器读取
process.env
可观测性集成
日志可访问的位置:
- 当地: 通过内存
/api/logs(用于控制中心UI) - Archestra: 可能通过以下方式将日志导出到控制平面:
- Stout/Stderr(由Archestra运行时捕获)
- 与集中式日志记录(如OpenTetry、OTLP)的潜在集成
不确定-需要ARCHESTRA文件确认
控制面治理
适用政策的地方:
- ✅ MCP服务器层 (本次实施):
policy.ts执行前验证 - 🔍 拱形层 (可能):在编排级别可能存在其他治理规则
不确定-需要ARCHESTRA文件确认
演示脚本
场景:自动修复
- 打开控制中心:
http://localhost:5173 - 初始状态: 系统状态=
HEALTHY(绿色) - 触发警报: 点击“🔥 触发警报”
- 状态转变
CRITICAL(红色) - MTTR定时器启动
- 记录的事件:
"CRITICAL INFRA ALERT: CPU Load > 95%"
- 状态转变
- 手动补救(模拟MCP呼叫):
- 在另一个终端中,呼叫
scale_tool通过MCP客户端:# Example (requires MCP CLI): mcp-client call scale_tool '{"replicas": 5}' - 系统状态返回
HEALTHY - MTTR定时器停止
- 在另一个终端中,呼叫
- 政策违规测试:
- 尝试扩展到100个副本:
mcp-client call scale_tool '{"replicas": 100}' - 预期: 操作被阻止,记录为
POLICY_VIOLATION
- 尝试扩展到100个副本:
- 回降:
- 呼叫
rollback_tool:mcp-client call rollback_tool '{}' - 系统重置为健康状态
- 呼叫
治理
应用领域: backend/src/policy.ts
规则:
- 最多10个副本(硬限制)
- 负副本计数被拒绝
- 记录的所有违规行为都有完整的上下文
无破坏性操作:
- 所有操作都是模拟的(没有修改实际的基础设施)
- 可安全用于演示/黑客马拉松
可观测性
实施于: backend/src/logger.ts
特征:
- ✅ 结构化JSON日志
- ✅ 为每个事件添加时间戳
- ✅ 日志级别:
INFO,WARN,ERROR,POLICY_VIOLATION - ✅ MTTR跟踪(警报→ 补救时间)
- ✅ 通过暴露
/api/logs用于UI消费
日志条目示例:
{
"timestamp": "2026-02-11T10:00:00.000Z",
"level": "POLICY_VIOLATION",
"message": "Scale tool blocked",
"details": {
"reason": "Cannot scale above 10 replicas",
"args": { "replicas": 100 }
}
}
安全
- ✅ 严格的输入验证(Zod模式)
- ✅ 不
eval()或动态执行 - ✅ CORS已启用(根据生产情况进行调整)
- ✅ 记录所有工具调用
- ✅ 仅模拟基础设施
技术栈
后端:
- Node.js 20
- TypeScript
@modelcontextprotocol/sdk- Express(适用于UI API)
- Zod(验证)
前端:
- 反应19
- 维特
- 香草CSS(没有顺风,没有UI库)
备注
我们所知道的:
- ✅ MCP SDK标准传输是标准的
- ✅ 工具模式遵循MCP规范
- ✅ 结构化日志记录是最佳实践
需要确认的内容:
- ❓ 精确的Archestra注册CLI语法
- ❓ 秘密注射机制
- ❓ 可观察性导出格式(OTLP?自定义?)
- ❓ 控制平面治理层存在
无幻觉:
- 没有发明假冒的Archestra API
- 未伪造CLI命令
- 明确标记所有不确定性
许可证
麻省理工学院(黑客马拉松演示)