🚀 任務控制MCP服務器
Mission Control MCP是一個與領域無關的任務自動化和驗證系統,專為Claude Code設計,具備自我驗證能力,可實現任務的自主執行。
🚀 快速開始
Mission Control是專門為Claude Code設計的模型上下文協議(MCP)服務器。它提供了一個帶有內置驗證循環的任務自動化框架,使Claude能夠:
- 自主執行任務
- 根據客觀標準驗證結果
- 迭代執行直至成功或達到最大嘗試次數
- 為每次嘗試提供詳細反饋
✨ 主要特性
- ✅ 零外部依賴:所有驗證均在本地運行
- 🔒 注重隱私:數據不會離開你的機器
- ⚡ 快速:驗證無需網絡延遲
- 🎯 與領域無關:適用於軟件開發、DevOps、數據科學等多個領域
- 📊 自我驗證:自動檢測成功或失敗
- 🔄 迭代執行:根據反饋自動重試
🏗️ 架構
核心組件
- 任務定義器:鎖定任務參數和驗證標準
- 嘗試計數器:通過可配置的限制防止無限循環
- 動態反饋引擎:生成可操作的改進建議
- 驗證策略:NUMERIC、EXIT_CODE和KEYWORD驗證器
- 狀態管理器:跟蹤任務進度和歷史記錄
工作流程
┌─────────────────────────────────────────┐
│ 1. 定義任務 │
│ - 目標描述 │
│ - 驗證策略 │
│ - 成功標準 │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ 2. 執行循環 │
│ ┌─────────────────────────────────┐ │
│ │ Claude執行任務 │ │
│ └─────────────────────────────────┘ │
│ ↓ │
│ ┌─────────────────────────────────┐ │
│ │ 提交嘗試進行驗證 │ │
│ └─────────────────────────────────┘ │
│ ↓ │
│ ┌─────────────────────────────────┐ │
│ │ 系統驗證結果 │ │
│ └─────────────────────────────────┘ │
│ ↓ │
│ 通過? ─否→ 根據反饋重試 │
│ │ │
│ 是 │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ 3. 任務完成 │
│ - 成功報告 │
│ - 嘗試歷史記錄 │
└─────────────────────────────────────────┘
📦 安裝指南
前提條件
- Node.js >= 18.0.0
- npm或yarn
- Claude Code CLI
選項1:NPM安裝(推薦)
通過npm全局安裝:
npm install -g mission-control-mcp
然後添加到Claude Code:
claude mcp add mission-control mission-control-mcp
或者手動配置:
配置文件位置:
- macOS/Linux:
~/.config/claude-code/mcp.json
- Windows:
%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:從源代碼安裝(開發用途)
git clone https://github.com/ufo23005/mission-control-mcp.git
cd mission-control-mcp
npm install
npm run build
配置Claude Code:
配置文件位置:
- macOS/Linux:
~/.config/claude-code/mcp.json
- Windows:
%USERPROFILE%\.claude-code\mcp.json
{
"mcpServers": {
"mission-control": {
"command": "node",
"args": ["<安裝路徑>/mission-control-mcp/dist/index.js"],
"env": {
"MCP_STATE_DIR": "<安裝路徑>/mission-control-mcp/.state",
"MCP_ENABLE_PERSISTENCE": "true"
}
}
}
}
驗證安裝
claude mcp list
💻 使用示例
驗證策略
1. NUMERIC - 數值比較
適用於具有可測量數值目標的任務(性能指標、覆蓋率、分數等)。
示例:測試覆蓋率
{
"goal": "將測試覆蓋率提高到80%",
"strategy": "NUMERIC",
"criteria": {
"operator": ">=",
"threshold": 80.0,
"metricName": "coverage_percentage"
},
"maxAttempts": 10
}
{
"missionId": "<任務ID>",
"output": "覆蓋率: 82.5%",
"value": 82.5
}
運算符:>, <, >=, <=, ==, !=
2. EXIT_CODE - 命令狀態
適用於通過命令執行成功進行驗證的任務。
示例:代碼檢查
{
"goal": "修復所有ESLint錯誤",
"strategy": "EXIT_CODE",
"criteria": {
"expectedCode": 0,
"command": "npm run lint"
},
"maxAttempts": 8
}
{
"missionId": "<任務ID>",
"output": "代碼檢查完成",
"value": 0
}
3. KEYWORD - 文本匹配
適用於通過輸出內容進行驗證的任務。
示例:構建成功
{
"goal": "成功進行生產構建",
"strategy": "KEYWORD",
"criteria": {
"keyword": "Build completed successfully",
"mustContain": true,
"caseSensitive": false
}
}
{
"missionId": "<任務ID>",
"output": "Build completed successfully. Output: dist/"
}
MCP工具
define_mission
定義一個帶有驗證標準的新自動化任務。
參數:
goal(字符串):自然語言任務描述
strategy(枚舉):NUMERIC | EXIT_CODE | KEYWORD
criteria(對象):特定於策略的驗證參數
maxAttempts(數字,可選):最大重試次數(默認:10)
enableCheckpoints(布爾值,可選):啟用恢復檢查點
checkpointFrequency(數字,可選):每N次嘗試創建一個檢查點
返回值: 任務ID和配置
submit_attempt
提交任務執行結果進行驗證。
參數:
missionId(字符串):任務標識符
output(字符串):命令/進程輸出
value(數字|字符串,可選):提取的驗證值
返回值: 帶有反饋和下一步操作的驗證結果
get_mission_status
查詢當前任務的進度和歷史記錄。
參數:
返回值: 狀態、嘗試次數和歷史記錄
abort_mission
手動停止正在運行的任務。
參數:
missionId(字符串):任務標識符
reason(字符串,可選):中止原因
返回值: 確認信息和最終狀態
示例
示例1:修復ESLint錯誤
$ claude "修復所有ESLint錯誤。使用define_mission和EXIT_CODE策略,然後迭代直到npm run lint返回0。"
Claude將:
- 使用EXIT_CODE標準調用
define_mission(expectedCode: 0)
- 分析代碼並修復錯誤
- 運行
npm run lint
- 使用退出代碼調用
submit_attempt
- 重複執行直到成功或達到最大嘗試次數
示例2:優化性能
$ claude "將API響應時間降低到100ms以下。使用本地基準測試進行驗證。"
Claude將:
- 使用NUMERIC策略定義任務(< 100)
- 進行優化
- 運行基準測試
- 提交結果
- 根據反饋進行迭代
示例3:文檔合規性
$ claude "確保所有公共函數都有JSDoc註釋。使用自定義驗證器進行檢查。"
Claude將:
- 使用KEYWORD或自定義驗證定義任務
- 添加缺失的文檔
- 運行文檔檢查器
- 驗證完整性
📚 詳細文檔
配置
狀態管理
編排器將狀態保存在.state/目錄中:
.state/
├── missions/ # 活動和已完成的任務
└── checkpoints/ # 恢復檢查點
保留策略
- 已完成的任務:30天(可配置)
- 失敗的任務:90天(用於分析)
- 活動任務:保留至完成
資源限制
默認限制(可在代碼中配置):
- 最大嘗試次數:10
- 檢查點頻率:每5次嘗試
- 嘗試超時時間:無(每個任務可配置)
項目結構
src/
├── index.ts # MCP服務器入口點
├── types/ # TypeScript類型定義
│ ├── mission.ts # 任務和嘗試類型
│ ├── validation.ts # 驗證策略類型
│ └── state.ts # 狀態管理類型
├── core/ # 核心組件
│ ├── MissionDefiner.ts # 任務配置
│ ├── AttemptCounter.ts # 重試管理
│ └── FeedbackEngine.ts # 反饋生成
├── validators/ # 驗證策略
│ ├── BaseValidator.ts
│ ├── NumericValidator.ts
│ ├── ExitCodeValidator.ts
│ └── KeywordValidator.ts
├── state/ # 狀態管理
│ └── StateManager.ts # 任務狀態跟蹤
├── tools/ # MCP工具實現
│ ├── defineMission.ts
│ ├── submitAttempt.ts
│ ├── getMissionStatus.ts
│ └── abortMission.ts
└── utils/ # 實用工具
├── logger.ts # 日誌系統
└── errors.ts # 錯誤類型
使用場景
| 領域 |
任務 |
策略 |
成功標準 |
| 軟件開發 |
修復代碼檢查錯誤 |
EXIT_CODE |
exit_code == 0 |
| 測試 |
達到80%的覆蓋率 |
NUMERIC |
coverage >= 80 |
| 性能優化 |
優化加載時間 |
NUMERIC |
load_time < 2.0 |
| DevOps |
驗證部署 |
KEYWORD |
輸出包含 "deployed" |
| 數據科學 |
提高模型F1分數 |
NUMERIC |
f1_score >= 0.85 |
| 文檔編寫 |
完成API文檔 |
KEYWORD |
未找到 "TODO" |
隱私與安全
- 無外部API:所有驗證均在本地運行
- 無數據傳輸:所有數據都保留在你的機器上
- 無需網絡:完全離線工作
- 審計日誌:完整的嘗試歷史記錄
- 可配置限制:防止資源耗盡
侷限性
適用場景:
- 可客觀測量的結果
- 可重複的操作
- 可自動化驗證的任務
- 本地命令行工具
不適用場景:
- 主觀質量判斷
- 一次性不可逆操作
- 需要人類創造力的任務
- 即時交互過程
貢獻
歡迎貢獻代碼!請確保:
- 定義所有TypeScript類型
- 代碼遵循現有模式
- 測試通過(如果已實現)
- 更新文檔
📄 許可證
本項目採用MIT許可證。
📚 參考資料