任务协议管理服务

ATP Librarian MCP Server是一个用于管理和执行Agent任务协议(.atp.json)的服务,确保任务声明、完成和分解过程中的依赖关系图不被破坏,适用于分布式任务管理场景。

  • by manuelcecchetto
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Edgeworthless/atp-mcp-server

使用说明

ATP图书管理员MCP服务器

此服务器强制执行代理任务协议(.atp.json)契约,因此工作代理可以在不损坏依赖关系图的情况下声明、完成和分解任务。它公开了MCP工具,这些工具将确定性更新打包到磁盘上的计划文件中。

快速启动(无克隆,uvx)

添加到MCP客户端配置并更新计划路径:

[mcp_servers.atp]
command = "uvx"
args = ["--from", "git+https://github.com/Edgeworthless/atp-mcp-server", "atp-server"]
env = { "ATP_FILE" = "/path/to/your/.atp.json", "ATP_LEASE_SECONDS" = "600" }

uvx 即时下载/构建。工具仍然需要 plan_path 每次通话; ATP_FILE 这只是一个默认值。

本地安装

  1. pip install -e .
  2. 运行: python3 main.py
  3. 配置您的MCP客户端以调用该命令,并传递 plan_path 每次工具调用。

Docker(可选)

构建或拉取,然后挂载您的计划文件:

docker build -t atp-librarian .
docker run --rm -v /path/to/.atp.json:/data/.atp.json -e ATP_FILE=/data/.atp.json atp-librarian

环境旋钮

  • ATP_FILE:ATP计划文件的路径(默认 .atp.json).
  • ATP_LOCK_FILE:覆盖锁文件路径(默认为 <ATP_FILE>.lock).
  • ATP_LEASE_SECONDS:释放声明任务之前的持续时间(默认600秒)。
  • 工具接受 plan_path 直接;env-var主要在客户端省略参数时支持状态资源。

可用工具

  • atp_claim_task(plan_path, agent_id):分配最高优先级的READY节点,恢复僵尸,并返回依赖关系上下文。为同一代理人重新输入现有索赔。
  • atp_complete_task(plan_path, node_id, report, artifacts=[], status="DONE"):标记任务“完成”或“失败”,清除租约,并解锁其依赖关系得到满足的子项。
  • atp_decompose_task(plan_path, parent_id, subtasks):将任务转换为具有新子图的SCOPE。子任务必须形成DAG;启动节点继承父节点的原始依赖关系。所有新任务完成后,父级将自动关闭。
  • atp_apply_future_patch(plan_path, expected_graph_version, patch, reason, actor_id):对ATP v1.4自适应判断流应用有界未来图突变。除非声明的节点计数为零,图版本匹配,终端/声明的节点保持不变,候选图保持有效,否则Apply将被拒绝。
  • atp_read_graph(plan_path, view_mode="full" | "local", node_id=None):返回完整的JSON图或周围的邻域视图 node_id.

资源

  • atp://status/summary:明文仪表板,显示默认计划的项目状态、实时索赔和就绪任务(ATP_FILE 或 .atp.json 在当前工作目录中)。

图形合约

  • 将计划保持为有效的任务DAG:每个节点都有 title, instruction, dependencies, status (LOCKED|READY|CLAIMED|COMPLETED|FAILED),加上可选 context, reasoning_effort (minimal|low|medium|high|xhigh), artifacts, report,时间戳。
  • 节点状态: LOCKED (等待), READY, CLAIMED, COMPLETED, FAILED。服务器将在租赁窗口后自动释放CLAIMED任务,并自动完成由生成的SCOPE节点 atp_decompose_task 一旦所有 scope_children 完成。
  • atp_read_graph(..., view_mode="full") 包括运行时 meta.graph_version 自适应判断流中乐观并发的响应有效载荷。
  • ATP v1.4未来图突变是加性的。关闭/被取代的未来节点通过可选元数据进行跟踪,不可索赔或计为就绪工作。
  • 每次读/写时都会检查依赖完整性;缺少节点引用将引发错误,而不是默默地修改文件。

测试

  • python3 -m compileall main.py

MCP客户端配置示例

JSON配置示例(兼容Codex):

{
  "mcpServers": {
    "atp-librarian": {
      "command": "python3",
      "args": ["/path/to/atp-mcp-server/main.py"],
      "cwd": "/path/to/atp-mcp-server",
      "env": {
        "ATP_FILE": "/path/to/your/project/.atp.json",
        "ATP_LEASE_SECONDS": "600"
      }
    }
  }
}

工具调用仍应提供 plan_path (例如。, /path/to/your/project/.atp.json); ATP_FILE 只需为状态资源设置默认值,或者当客户端省略参数时。