任务验证服务器

Contractor MCP Server 是一个确定性的任务合约服务器,作为代理创建任务的权威验证器,确保任务执行的审计性、可重复性和防作弊。

  • by ArvidSU
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 ArvidSU/contractor

使用说明

承包商MCP服务器

一种确定性任务契约服务器,充当代理创建任务的权威验证器。代理无法将任务标记为“已完成”,只有服务器可以基于锁定的、人工批准的验证器。

目的

承包商使代理执行行为类似于单个任务的CI——可审计、可复制和防作弊。它强制执行严格的工作流程,其中:

  1. 代理提出任务 使用草稿验证器
  2. 人类赞成 验证器,锁定它们
  3. 代理人工作 关于任务
  4. 服务器验证 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: /workspace

MCP工具

工具 说明
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
  • 草案:任务已提出,验证器可以修改
  • 批准:验证器已锁定,验证具有权威性
  • 通过/失败:来自服务器的验证结果

许可证

麻省理工学院