承包商MCP服务器
一种确定性任务契约服务器,充当代理创建任务的权威验证器。代理无法将任务标记为“已完成”,只有服务器可以基于锁定的、人工批准的验证器。
目的
承包商使代理执行行为类似于单个任务的CI——可审计、可复制和防作弊。它强制执行严格的工作流程,其中:
- 代理提出任务 使用草稿验证器
- 人类赞成 验证器,锁定它们
- 代理人工作 关于任务
- 服务器验证 Docker容器中的确定性完成
特性
- 4种验证类型:命令、文件断言、测试套件、HTTP
- 确定执行:验证在隔离的Docker容器中运行
- 审计跟踪:验证器更改和验证结果的完整历史记录
- MCP集成:通过模型上下文协议公开工具
安装
# Install dependencies
npm install
# Generate Prisma client
npx prisma generate
# Build the project
npm run build用法
作为MCP服务器
服务器通过stdio运行,可以与任何兼容MCP的客户端一起使用:
npm start使用Docker MCP工具包
添加到您的 contractor-catalog.yaml:
contractor:
build:
dockerfile: Dockerfile
mounts:
- type: bind
source: /path/to/your/workspace
target: /workspaceMCP工具
| 工具 | 说明 |
|---|---|
task_propose | Agent使用草稿验证器提出新任务 |
task_approve | 人类批准并锁定验证器 |
task_validate | 在Docker容器中运行验证 |
task_list | 列出所有任务及其状态 |
task_get | 获取详细的任务信息 |
验证类型
命令验证
{
"type": "command",
"spec": {
"cmd": ["npm", "test"],
"cwd": "/workspace",
"timeoutSec": 60
}
}文件断言验证
{
"type": "file_assert",
"spec": {
"exists": ["README.md"],
"notEmpty": ["src/index.ts"],
"matchesRegex": [{ "path": "package.json", "pattern": "\"name\":" }]
}
}测试套件验证
{
"type": "test_suite",
"spec": {
"framework": "jest",
"pattern": "**/*.test.ts"
}
}HTTP验证
{
"type": "http",
"spec": {
"method": "GET",
"url": "http://localhost:3000/health",
"expectStatus": 200
}
}任务生命周期
draft → approved → in_progress → passed/failed- 草案:任务已提出,验证器可以修改
- 批准:验证器已锁定,验证具有权威性
- 通过/失败:来自服务器的验证结果
许可证
麻省理工学院
