任务自动化验证系统

Mission Control MCP是一个领域无关的任务自动化和验证系统,专为Claude Code设计,支持自主任务执行与自我验证功能。

  • by ufo23005
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 ufo23005/mission-control-mcp

使用说明

任务控制MCP服务器

任务控制MCP |任务控制自动化编排器

Claude Code的领域无关任务自动化和验证系统,支持具有自我验证功能的自主任务执行。

📋 概述

任务控制是一个专门为克劳德代码设计的模型上下文协议(MCP)服务器。它提供了一个具有内置验证循环的自动化任务框架,允许Claude:

  • 自主执行任务
  • 根据客观标准验证结果
  • 迭代直到成功或最大尝试次数
  • 为每次尝试提供详细的反馈

主要特点

  • ✅ 零外部依赖:所有验证都在本地运行
  • 🔒 注重隐私:没有数据离开您的机器
  • ⚡ 快速:验证无网络延迟
  • 🎯 域不可知:跨软件开发、DevOps、数据科学等领域工作
  • 📊 自我验证:自动成功/失败检测
  • 🔄 迭代的:带反馈的自动重试

🏗️ 建筑

核心组件

  1. 任务定义器:锁定任务参数和验证标准
  2. 尝试计数器:防止具有可配置限制的无限循环
  3. 动态反馈引擎:生成可操作的改进建议
  4. 验证策略:数字、EXIT_CODE和关键字验证器
  5. 状态管理器:跟踪任务进展和历史

工作流程

┌─────────────────────────────────────────┐
│ 1. Define Mission                       │
│    - Goal description                   │
│    - Validation strategy                │
│    - Success criteria                   │
└─────────────────────────────────────────┘
              ↓
┌─────────────────────────────────────────┐
│ 2. Execution Loop                       │
│    ┌─────────────────────────────────┐  │
│    │ Claude executes task            │  │
│    └─────────────────────────────────┘  │
│              ↓                          │
│    ┌─────────────────────────────────┐  │
│    │ Submit attempt for validation   │  │
│    └─────────────────────────────────┘  │
│              ↓                          │
│    ┌─────────────────────────────────┐  │
│    │ System validates result         │  │
│    └─────────────────────────────────┘  │
│              ↓                          │
│        Pass? ─No→ Retry with feedback   │
│          │                              │
│         Yes                             │
└─────────────────────────────────────────┘
              ↓
┌─────────────────────────────────────────┐
│ 3. Mission Complete                     │
│    - Success report                     │
│    - Attempt history                    │
└─────────────────────────────────────────┘

📦 安装

先决条件

  • Node.js>=18.0.0
  • npm或纱线
  • 克劳德代码CLI

选项1:NPM安装(推荐)

通过npm全局安装:

npm install -g mission-control-mcp

然后添加到克劳德代码中:

claude mcp add mission-control mission-control-mcp

或手动配置:

配置文件位置:

  • macOS/Linux: ~/.config/claude-code/mcp.json
  • 视窗: %USERPROFILE%\.claude-code\mcp.json
{
  "mcpServers": {
    "mission-control": {
      "command": "mission-control-mcp",
      "env": {
        "MCP_ENABLE_PERSISTENCE": "true"
      }
    }
  }
}

选项2:使用npx(无需安装)

claude mcp add mission-control --transport stdio -- npx -y mission-control-mcp

选项3:来源(开发)

# Clone the repository
git clone https://github.com/ufo23005/mission-control-mcp.git
cd mission-control-mcp

# Install dependencies
npm install

# Build the project
npm run build

配置克劳德代码:

配置文件位置:

  • macOS/Linux: ~/.config/claude-code/mcp.json
  • 视窗: %USERPROFILE%\.claude-code\mcp.json
{
  "mcpServers": {
    "mission-control": {
      "command": "node",
      "args": ["<path-to-installation>/mission-control-mcp/dist/index.js"],
      "env": {
        "MCP_STATE_DIR": "<path-to-installation>/mission-control-mcp/.state",
        "MCP_ENABLE_PERSISTENCE": "true"
      }
    }
  }
}

验证安装

claude mcp list
# Should show mission-control in the list with ✓ Connected status

🚀 用法

验证策略

1.数字-数字比较

适用于具有可衡量数字目标(绩效指标、覆盖率、分数)的任务。

示例:测试覆盖率

// Define mission
{
  "goal": "Increase test coverage to 80%",
  "strategy": "NUMERIC",
  "criteria": {
    "operator": ">=",
    "threshold": 80.0,
    "metricName": "coverage_percentage"
  },
  "maxAttempts": 10
}

// Submit attempt
{
  "missionId": "<mission-id>",
  "output": "Coverage: 82.5%",
  "value": 82.5
}

运算符: >, <, >=, <=, ==, !=

2.EXIT_CODE-命令状态

用于通过命令执行成功验证的任务。

示例:Linting

// Define mission
{
  "goal": "Fix all ESLint errors",
  "strategy": "EXIT_CODE",
  "criteria": {
    "expectedCode": 0,
    "command": "npm run lint"
  },
  "maxAttempts": 8
}

// Submit attempt
{
  "missionId": "<mission-id>",
  "output": "Linting complete",
  "value": 0  // exit code
}

3.关键字-文本匹配

用于通过输出内容验证的任务。

示例:构建成功

// Define mission
{
  "goal": "Successful production build",
  "strategy": "KEYWORD",
  "criteria": {
    "keyword": "Build completed successfully",
    "mustContain": true,
    "caseSensitive": false
  }
}

// Submit attempt
{
  "missionId": "<mission-id>",
  "output": "Build completed successfully. Output: dist/"
}

🛠️ MCP工具

define_mission

使用验证标准定义新的自动化任务。

参数:

  • goal (string):自然语言任务描述
  • strategy (枚举): NUMERIC | EXIT_CODE | KEYWORD
  • criteria (对象):策略特定验证参数
  • maxAttempts (数字,可选):最大重试限制(默认值:10)
  • enableCheckpoints (布尔值,可选):启用恢复检查点
  • checkpointFrequency (数字,可选):每N次尝试检查一次

退货: 任务ID和配置

提交尝试

提交任务执行结果以供验证。

参数:

  • missionId (string):任务标识符
  • output (string):命令/进程输出
  • value (数字|字符串,可选):提取的验证值

退货: 带有反馈和后续步骤的验证结果

get_mission_status

查询当前任务进度和历史。

参数:

  • missionId (string):任务标识符

退货: 状态、尝试次数和历史记录

中止任务

手动停止正在运行的任务。

参数:

  • missionId (string):任务标识符
  • reason (字符串,可选):中止原因

退货: 确认和最终状态

📖 示例

示例1:修复ESLint错误

$ claude "Fix all ESLint errors. Use define_mission with EXIT_CODE strategy, then iterate until npm run lint returns 0."

克劳德将:

  1. 呼叫 define_mission 符合EXIT_CODE标准(预期代码:0)
  2. 分析代码并修复错误
  3. 跑 npm run lint
  4. 呼叫 submit_attempt 带退出代码
  5. 重复,直到成功或达到最大尝试次数

示例2:优化性能

$ claude "Reduce API response time below 100ms. Validate with local benchmark tests."

克劳德将:

  1. 用NUMERIC战略定义任务(<100)
  2. 进行优化
  3. 运行基准测试
  4. 提交结果
  5. 基于反馈进行迭代

示例3:文档合规性

$ claude "Ensure all public functions have JSDoc comments. Check with custom validator."

克劳德将:

  1. 使用关键字或自定义验证定义任务
  2. 添加缺失的文档
  3. 运行文档检查器
  4. 验证完整性

🔧 配置

状态管理

编排器在中保持状态 .state/ 目录:

.state/
├── missions/       # Active and completed missions
└── checkpoints/    # Recovery checkpoints

保留策略

  • 完成的使命:30天(可配置)
  • 失败的任务:90天(用于分析)
  • 正在执行的任务:保留至完工

资源限制

默认限制(可在代码中配置):

  • 最大尝试次数:10
  • 检查点频率:每5次尝试
  • 尝试超时:无(每个任务可配置)

📁 项目结构

src/
├── index.ts              # MCP server entry point
├── types/                # TypeScript type definitions
│   ├── mission.ts        # Mission and attempt types
│   ├── validation.ts     # Validation strategy types
│   └── state.ts          # State management types
├── core/                 # Core components
│   ├── MissionDefiner.ts # Mission configuration
│   ├── AttemptCounter.ts # Retry management
│   └── FeedbackEngine.ts # Feedback generation
├── validators/           # Validation strategies
│   ├── BaseValidator.ts
│   ├── NumericValidator.ts
│   ├── ExitCodeValidator.ts
│   └── KeywordValidator.ts
├── state/                # State management
│   └── StateManager.ts   # Mission state tracking
├── tools/                # MCP tool implementations
│   ├── defineMission.ts
│   ├── submitAttempt.ts
│   ├── getMissionStatus.ts
│   └── abortMission.ts
└── utils/                # Utilities
    ├── logger.ts         # Logging system
    └── errors.ts         # Error types

🎯 用例

领域 任务 战略 成功标准
软件开发 修复棉绒错误 EXIT_CODE exit_code == 0
测试 实现80%的覆盖率 NUMERIC coverage >= 80
演出 优化加载时间 NUMERIC load_time < 2.0
开发运维 验证部署 KEYWORD 输出是否包含“已部署”
数据科学 改进型号F1 NUMERIC f1_score >= 0.85
文档 完整的API文档 KEYWORD 找不到“TODO”

🔒 隐私和安全

  • 无外部API:所有验证都在本地运行
  • 无数据传输:一切都在你的机器上
  • 无需网络:完全离线工作
  • 审核日志记录:完整的尝试历史记录
  • 可配置的限制:防止资源枯竭

🚧 局限性

适用于:

  • 可客观衡量的成果
  • 可重复操作
  • 自动验证
  • 本地命令行工具

不适合:

  • 主观质量判断
  • 一次性不可逆操作
  • 需要人类创造力的任务
  • 实时交互流程

🤝 贡献

欢迎投稿!请确保:

  • 所有TypeScript类型都已定义
  • 代码遵循现有模式
  • 测试通过(实施时)
  • 文件已更新

📄 许可证

麻省理工学院

📚 参考文献