Skip to main content
Glama
muanlin

Agent Collaboration Orchestrator

by muanlin

Agent Collaboration Orchestrator

面向 TRAE Work + Codex 的多智能体协同开发桥接器。

这个项目提供一个 MCP bridge 和一个 TRAE skill,让你可以在 TRAE Work 桌面端或移动端发起项目任务,由 TRAE 先做项目粗分析、方案规划和简单修改,再把困难实现、复杂重构、测试补全等子任务交给 Codex 执行。TRAE 可以继续查看 Codex 任务状态、日志、产物、权限请求,并在需要时调整、终止或批准重试。

Features

  • TRAE 主导流程:TRAE 作为项目第一入口,Codex 作为困难任务执行器。

  • MCP 工具集:提交任务、查看状态、读取日志、获取报告、查看产物、请求修订、取消任务。

  • 移动端友好:提供 get_mobile_dashboard,便于 TRAE 移动端查看当前任务、产物数量和待处理权限请求。

  • 产物扫描:Codex 执行结束后自动扫描项目新增/修改文件,并通过 list_artifacts 暴露给 TRAE。

  • 权限重试机制:Codex 因沙箱/权限失败后,bridge 可生成权限请求;TRAE 批准后创建更高权限的重试任务。

  • 共享工作空间:推荐统一使用 codex_trae_workspace,让桌面端、移动端、MCP bridge 和 Codex 看到一致路径。

  • 可手动接管:未配置 Codex 自动执行命令时,bridge 仍会生成 prompt 文件,可手动交给 Codex。

Related MCP server: codex-worker-runtime

快速开始

下面流程用于在你的电脑上做一次最小可用测试:让 TRAE 通过 MCP 调用 Codex,在测试项目里创建一个文件,然后用移动端友好的工具查看状态和产物。

1. 创建协同工作空间

New-Item -ItemType Directory -Force E:\codex_trae_workspace

确保本项目位于:

E:\codex_trae_workspace\agent-collaboration-orchestrator

2. 安装并构建 bridge

cd E:\codex_trae_workspace\agent-collaboration-orchestrator
& 'C:\Program Files\nodejs\npm.cmd' install
& 'C:\Program Files\nodejs\npm.cmd' run build

3. 确认 Codex 命令可用

Windows 下建议使用 .cmd.exe 路径,不要直接使用可能被 PowerShell 拦截的 .ps1

where.exe codex
& 'C:\path\to\codex.cmd' --help
& 'C:\path\to\codex.cmd' exec --help

请把后续配置中的 CODEX_EXECUTOR_COMMAND 改成你自己的 .cmd.exe 路径。

4. 创建测试项目

New-Item -ItemType Directory -Force E:\codex_trae_workspace\mcp-test-project
Set-Content -Encoding UTF8 E:\codex_trae_workspace\mcp-test-project\README.md "# MCP test project"

5. 在 TRAE 中配置 MCP

将下面配置加入 TRAE 的 MCP/工具配置中。路径按你的电脑实际情况调整。

{
  "mcpServers": {
    "codex-task-bridge": {
      "command": "node",
      "args": [
        "E:/codex_trae_workspace/agent-collaboration-orchestrator/dist/cli.js"
      ],
      "env": {
        "SANDBOX_ROOT": "E:/codex_trae_workspace",
        "CODEX_EXECUTOR_COMMAND": "C:/path/to/codex.cmd",
        "CODEX_EXECUTOR_ARGS": "exec --cd {projectRoot} --sandbox {sandbox} --ask-for-approval never -",
        "EXECUTOR_TIMEOUT_MS": "1800000"
      }
    }
  }
}

6. 安装 TRAE skill

复制以下目录到 TRAE 支持的 skills 目录,并在 TRAE 中启用该 skill:

E:\codex_trae_workspace\agent-collaboration-orchestrator\skills\trae-codex-workspace

7. 在 TRAE 中发起最小测试

在 TRAE 中输入:

使用 trae-codex-workspace skill。
在 E:/codex_trae_workspace/mcp-test-project 中测试 Codex 协作。
请先调用 diagnose_environment 检查环境。
然后通过 submit_task 交给 Codex 一个最小任务:在项目根目录创建 hello-from-codex.txt,内容为 hello from codex。
完成后用 get_mobile_dashboard 查看状态,用 list_artifacts 查看产物。

8. 预期结果

正常情况下,你应该看到:

  • diagnose_environment 显示 Node 正常,sandboxRootE:/codex_trae_workspace

  • submit_task 返回一个 taskId

  • get_mobile_dashboard 能看到任务状态

  • list_artifacts 至少包含:

    • .agent-bridge/tasks/<taskId>/prompt.md

    • hello-from-codex.txt

如果任务失败,让 TRAE 继续调用:

get_task_log
list_permission_requests

根据日志判断是 Codex 命令路径、API/中转站、权限沙箱,还是 TRAE MCP 配置问题。

Architecture

User
  |
  v
TRAE Work Desktop / Mobile
  |  1. 粗读项目、制定方案、拆分任务
  |  2. 简单任务由 TRAE 直接完成
  |
  v
agent-collaboration-orchestrator MCP bridge
  |  submit_task / get_mobile_dashboard / list_artifacts / ...
  |
  v
Codex executor
  |  3. 执行困难实现或复杂修改
  |  4. 输出日志、报告、产物
  |
  v
TRAE 验收、修订、终止或批准重试

建议先创建一个协同工作空间,并把 bridge 和所有协同开发项目都放进去:

codex_trae_workspace/
  agent-collaboration-orchestrator/
  my-app/
  another-project/

推荐配置:

  • SANDBOX_ROOT 指向整个 codex_trae_workspace

  • 每次提交任务时,projectRoot 指向具体项目目录,例如 E:/codex_trae_workspace/my-app

这样可以限制 Codex 的可写范围,并让 TRAE 桌面端/移动端看到一致的任务和产物路径。

Installation

git clone https://github.com/muanlin/agent-collaboration-orchestrator.git
cd agent-collaboration-orchestrator
npm install
npm run build

要求:

  • Node.js >= 18

  • TRAE Work

  • Codex CLI、本地 Codex、中转站脚本,或任何可通过命令行启动的 Codex 执行入口

MCP Configuration

把本项目作为 MCP server 配置到 TRAE Work。路径请替换为你自己的本机路径。

{
  "mcpServers": {
    "codex-task-bridge": {
      "command": "node",
      "args": [
        "E:/codex_trae_workspace/agent-collaboration-orchestrator/dist/cli.js"
      ],
      "env": {
        "SANDBOX_ROOT": "E:/codex_trae_workspace",
        "CODEX_EXECUTOR_COMMAND": "C:/path/to/codex.cmd",
        "CODEX_EXECUTOR_ARGS": "exec --cd {projectRoot} --sandbox {sandbox} --ask-for-approval never -",
        "EXECUTOR_TIMEOUT_MS": "1800000"
      }
    }
  }
}

Windows 用户建议把 CODEX_EXECUTOR_COMMAND 指向 .cmd.exe,避免 PowerShell 执行策略拦截 .ps1

Environment Variables

Variable

Required

Description

SANDBOX_ROOT

Recommended

Codex 允许访问的协同工作空间根目录。

CODEX_EXECUTOR_COMMAND

Required for auto execution

Codex 执行入口,例如 codex.cmdcodex.exenodepowershell 或自定义中转脚本。

CODEX_EXECUTOR_ARGS

Optional

Codex 启动参数模板。默认通过 stdin 传入 prompt。

EXECUTOR_MODEL

Optional

默认模型名称,会写入任务 prompt 供执行器参考。

EXECUTOR_TIMEOUT_MS

Optional

Codex 子任务超时时间,默认 30 分钟。

CODEX_EXECUTOR_ARGS 支持这些占位符:

Placeholder

Meaning

{taskId}

Bridge task ID

{projectRoot}

项目目录

{promptFile}

Bridge 生成的 prompt 文件

{sandbox}

沙箱模式:read-onlyworkspace-writedanger-full-access

{model}

模型名称

{title}

任务标题

Codex Executor Examples

Codex CLI

{
  "CODEX_EXECUTOR_COMMAND": "C:/path/to/codex.cmd",
  "CODEX_EXECUTOR_ARGS": "exec --cd {projectRoot} --sandbox {sandbox} --ask-for-approval never -"
}

Bridge 会把生成的 prompt 内容通过 stdin 传给 codex exec ... -,同时保留 prompt 文件供 TRAE 查看。

Custom Relay Script

{
  "CODEX_EXECUTOR_COMMAND": "powershell",
  "CODEX_EXECUTOR_ARGS": "-File E:/scripts/run-codex-task.ps1 -Workspace {projectRoot} -PromptFile {promptFile} -Sandbox {sandbox}"
}

Manual Mode

如果不配置 CODEX_EXECUTOR_COMMANDsubmit_task 仍会创建任务和 prompt 文件,但任务会停在 pending

<projectRoot>/.agent-bridge/tasks/<taskId>/prompt.md

你可以手动把该 prompt 交给 Codex 执行。

TRAE Skill

仓库提供了一个可放到 TRAE 中运行的 skill:

skills/trae-codex-workspace/SKILL.md

安装方式:将整个 skills/trae-codex-workspace 目录复制到 TRAE 支持的 skills 目录中。

这个 skill 会指导 TRAE:

  • codex_trae_workspace 中定位或创建项目

  • 先粗读项目并拆分简单任务/困难任务

  • 自己完成简单任务

  • 通过 MCP submit_task 把困难任务交给 Codex

  • get_mobile_dashboard 在移动端查看任务总览

  • list_artifacts 查看 prompt 和 Codex 修改过的文件

  • request_revision 调整方向

  • cancel_task 终止任务

  • list_permission_requests / resolve_permission_request 处理权限重试

MCP Tools

Tool

Description

submit_task

TRAE 提交困难任务给 Codex。

get_task_status

查询单个任务状态。

get_task_log

查看任务执行日志。

get_result_report

获取任务完成报告。

request_revision

基于原任务创建修订任务。

cancel_task

取消 pending/running 任务。

list_artifacts

查看 prompt 文件和 Codex 执行后新增/修改的文件。

list_tasks

查看任务列表,适合桌面端/移动端任务视图。

get_mobile_dashboard

获取移动端一屏摘要:任务统计、最近任务、待处理权限请求。

list_permission_requests

查看因权限/沙箱失败生成的待审批请求。

resolve_permission_request

批准或拒绝权限请求。批准后创建重试任务。

diagnose_environment

检查 Node、工作区和 Codex 执行器配置。

Typical Workflow

在 TRAE 中给项目任务时,可以使用类似指令:

在 codex_trae_workspace/my-app 中实现登录功能。
你先粗读项目,输出方案并拆分任务。
简单页面和文案由你直接处理。
认证状态管理、复杂表单校验和测试交给 Codex。
我会在移动端查看进度、产物,必要时调整或终止任务。

TRAE 应提交给 Codex 的任务应包含:

  • 项目背景

  • 具体目标

  • 修改范围

  • 禁止修改的文件或行为

  • 约束条件

  • 验收标准

  • 需要运行的验证命令

示例:

{
  "title": "实现订单状态流转核心逻辑",
  "projectRoot": "E:/codex_trae_workspace/my-app",
  "sandbox": "workspace-write",
  "prompt": "TRAE 已完成初步分析:当前项目使用 Express + Prisma。请实现订单状态流转的核心服务逻辑,范围限定在 src/services/order-state.ts 和相关测试。不要修改数据库 schema。要求覆盖 paid -> shipped -> completed,以及 cancelled 的非法流转保护。完成后运行 npm test -- order-state 并报告结果。",
  "constraints": {
    "doNotChange": ["prisma/schema.prisma", "package.json"],
    "preferredFiles": ["src/services/order-state.ts", "src/services/order-state.test.ts"]
  },
  "acceptanceCriteria": {
    "checks": [
      "合法状态流转成功",
      "非法状态流转抛出明确错误",
      "相关测试通过"
    ]
  }
}

Mobile Dashboard

移动端优先使用 get_mobile_dashboard,它会返回:

  • 当前任务总数

  • running / pending / completed / failed / cancelled 数量

  • 最近任务摘要

  • 每个任务的最近日志

  • 产物数量

  • 待处理权限请求

移动端展示建议:

总览:running 1,failed 1,待审批 1
任务:
- 实现 auth service core:failed,产物 2,待审批 1
- 修复 UI 文案:completed,产物 3
待处理:permission-request-id,需要更高沙箱重试

Artifacts

list_artifacts 会返回:

  • bridge 生成的 prompt 文件

  • Codex 执行后新增的文件

  • Codex 执行后修改的文件

产物扫描会忽略常见噪声目录:

.git
.agent-bridge
node_modules
dist
build
out
coverage
.next
.nuxt
.cache
.turbo
.vite
.parcel-cache

Permission Model

TRAE 桌面端/移动端不能直接点击 Codex CLI 的交互式权限弹窗。Bridge 采用更适合移动端的方式:

  1. Codex 以非交互模式运行,例如:

    codex exec --cd {projectRoot} --sandbox workspace-write --ask-for-approval never -
  2. 如果 Codex 因权限或沙箱限制失败,bridge 会尝试识别错误并生成权限请求。

  3. TRAE 用 list_permission_requestsget_mobile_dashboard 查看待审批请求。

  4. 用户批准后,TRAE 调用 resolve_permission_request

  5. Bridge 创建一个更高权限的重试任务。

批准示例:

{
  "requestId": "permission-request-id",
  "decision": "approve",
  "sandbox": "danger-full-access",
  "note": "用户确认该项目位于隔离的 codex_trae_workspace 中,可以重试。"
}

拒绝示例:

{
  "requestId": "permission-request-id",
  "decision": "reject",
  "note": "缩小任务范围后再提交。"
}

danger-full-access 只建议在你已经用 codex_trae_workspace 或其他方式隔离执行环境时使用。

Development

npm install
npm run build
npm run dev

项目结构:

src/
  cli.ts           # MCP stdio 入口
  executor.ts      # Codex 命令执行器适配层
  index.ts         # 库导出
  mcp-server.ts    # MCP 工具定义与请求处理
  task-manager.ts  # 任务、日志、产物、权限请求管理
  types.ts         # 类型定义

skills/
  trae-codex-workspace/
    SKILL.md       # 可安装到 TRAE 的 skill

Security Notes

  • 不要把 API Key、账号密码、中转站凭据写入任务 prompt。

  • projectRoot 必须位于 SANDBOX_ROOT 内。

  • 默认使用 workspace-write

  • 谨慎批准 danger-full-access 重试。

  • TRAE 应负责最终验收,不要盲目接受 Codex 子任务结果。

  • MCP server 通过 stdio 通信,启动日志写入 stderr,避免污染 stdout。

Roadmap

  • 任务状态持久化,避免 MCP 进程重启后丢失内存状态。

  • 更精细的权限请求解析,展示被阻止的命令。

  • 多 Codex profile / 多中转站配置。

  • 端到端测试夹具。

  • 英文 README。

License

MIT

Available Tools

12 tools
cancel_taskB

Cancel a running or pending task

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesTask ID to cancel

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It indicates a mutative action ('cancel') but fails to disclose side effects, reversibility, permission requirements, or post-cancellation state, which is insufficient for a destructive operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the key information without any unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (1 param, no output schema, no annotations), the description lacks completeness by not covering return behavior, error cases, or constraints like ownership/permissions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the description adds no extra meaning beyond the schema's parameter description ('Task ID to cancel'). Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Cancel' and the resource 'task', specifying the applicable states 'running or pending'. This distinguishes it from sibling tools like submit_task, list_tasks, and get_task_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for canceling tasks in a running or pending state, but lacks explicit guidance on when not to use it (e.g., if task is already completed) or alternatives like checking status first.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

diagnose_environmentB

Check the MCP environment configuration

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It only says 'Check', implying a read-only operation, but does not mention side effects, output format, or any specific configuration categories checked.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with a single phrase, no wasted words. It is appropriately sized for a simple diagnostic tool with no parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and the tool's simplicity, the description still lacks completeness. It does not describe return values, typical use cases, or how the output can be interpreted. For a diagnostic tool, more context would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so schema coverage is 100%. The description adds no param-specific information, which is acceptable since there are none. Baseline 4 applies for zero parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Check' and the resource 'MCP environment configuration', which is distinct from sibling tools that focus on tasks, permissions, and artifacts. The purpose is immediately understandable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, such as diagnostic contexts or prerequisites. The description lacks any explicit or implicit usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mobile_dashboardB

Get a compact dashboard with task counts, recent tasks, and pending permission requests

ParametersJSON Schema
NameRequiredDescriptionDefault
projectRootNoOptional project root filter
limitNoMaximum number of recent task summaries to return

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full responsibility for behavioral disclosure. It only lists content components without explaining side effects, caching, permission requirements, or whether it is read-only. The lack of any behavioral detail is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that conveys the core purpose without extra words. Every part of the description contributes value, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lists three data components but lacks detail on the return format (e.g., how counts are aggregated, what constitutes 'recent'). Given the absence of an output schema, a more complete description would improve usability, but the high-level summary is minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%—both parameters are described in the schema (projectRoot as optional filter, limit as max recent tasks). The description adds no additional meaning beyond the schema, so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a 'compact dashboard' containing 'task counts, recent tasks, and pending permission requests'. The verb 'Get' is specific, and the resource is well-defined. It implicitly distinguishes from sibling tools like list_tasks and list_permission_requests by combining their data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs. alternatives like list_tasks or list_permission_requests. The description does not mention use cases, prerequisites, or exclusions, leaving the agent to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_result_reportA

Get the final result report for a completed task

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesTask ID

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Only states 'gets' a report, implying a read operation, but omits details on side effects, idempotency, or behavior if task is not completed. Minimal disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no redundancy, every word adds value. Front-loaded with essential purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple retrieval tool, but could benefit from clarifying report format or error conditions. Given no output schema and no annotations, completeness is minimal but sufficient for common use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with description 'Task ID' for the only parameter. Baseline is 3 per rules; description does not add extra meaning beyond schema, but schema alone is clear enough.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool gets a final result report for a completed task. It specifies the resource ('result report') and condition ('completed task'), distinguishing it from siblings like get_task_status (status) or get_task_log (logs).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage only for completed tasks, but does not explicitly state when to use vs. avoid, nor reference alternatives like get_task_log or list_artifacts. No guidance on prerequisites or fallback options.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_task_logC

Get execution logs for a task

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesTask ID
maxCharsNoMaximum characters to return

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must cover behavior. It does not disclose read-only nature, authentication needs, rate limits, or what happens if the task is still running. Merely states the action without behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no clutter. Could benefit from an extra sentence explaining return format, but it is concise and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks information about return value format (e.g., plain text, JSON), pagination, or error handling. Without output schema or annotations, description should provide more context for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers both parameters with descriptions (100% coverage). The tool description adds no additional parameter context beyond what schema already provides. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Get execution logs for a task', which is a specific verb and resource. It distinguishes from siblings like get_task_status. However, it could elaborate on what constitutes 'execution logs' (e.g., text output).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like get_task_status or list_artifacts. Does not mention prerequisites or scenarios where logs are available.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_task_statusC

Get the status of a task

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesTask ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden for behavioral transparency. The minimal description 'Get the status of a task' does not disclose whether it is read-only, what permissions are needed, if it has side effects, or what the response format is. The behavioral traits are largely undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words. It is concise and front-loaded. However, it might be too terse given the lack of detail, but it earns a 4 for efficient use of language.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is no output schema and no annotations, the description should provide more context such as possible status values or return format. It fails to do so, making it incomplete for a tool that returns status. The tool is simple but still lacking essential contextual details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameters with a description for 'taskId' as 'Task ID'. The description adds no additional meaning beyond what the schema provides. Baseline 3 is appropriate because the schema already documents the parameter sufficiently.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get the status of a task' clearly states the verb and resource. It distinguishes from siblings like 'list_tasks' (which lists tasks) and 'cancel_task' (which cancels), but does not explicitly differentiate from 'get_task_log' which retrieves logs, not status. The purpose is clear but lacks explicit sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description does not mention any prerequisites, context, or exclusions. There is no mention of when to use 'get_task_status' instead of related tools like 'get_task_log' or 'list_tasks'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_artifactsB

List files and artifacts produced by a task

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesTask ID

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description should disclose safety, authentication, or response behavior, but it only states the basic function without any behavioral details (e.g., read-only nature, pagination).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with the verb and object front-loaded; no superfluous words, though it could be expanded slightly for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one required parameter and no output schema, the description covers the core purpose but omits details about what constitutes an artifact, response format, or any constraints, leaving gaps for complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already describes the parameter; the description adds no extra meaning beyond 'Task ID', keeping the baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and the resource ('files and artifacts produced by a task'), which distinguishes it from sibling tools like list_tasks and get_task_log.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives; it only implies usage for retrieving artifacts for a given task, but does not mention exclusions or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_permission_requestsB

List permission requests created after Codex fails due to sandbox or approval restrictions

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoOptional permission request status filter
taskIdNoOptional task ID filter

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It does not disclose whether the operation is read-only, what the response looks like, or any behavioral traits beyond listing. 'List' implies safe reading, but this is not explicitly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded and efficient. It earns its place, though it could slightly expand on usage context without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no output schema and no annotations, the description is minimal. It does not cover return format, pagination, ordering, or filtering behavior beyond schema fields. For a list tool, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters with descriptions. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'List permission requests' and specifies the context 'created after Codex fails due to sandbox or approval restrictions'. This distinguishes it from siblings like list_tasks and resolve_permission_request.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a specific usage scenario (when Codex fails), but does not explicitly state when not to use the tool or provide alternatives. No guidance on exclusions or comparisons to other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tasksB

List task summaries for TRAE desktop/mobile progress views

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoOptional task status filter
projectRootNoOptional project root filter
limitNoMaximum number of tasks to return

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It does not disclose whether the operation is read-only, sorting behavior, pagination limits, data freshness, or authentication requirements. The term 'summaries' hints at reduced detail but lacks specificity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that conveys the core purpose efficiently. Every word earns its place, though it could benefit from additional structure to improve scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema and the need to understand what fields 'task summaries' include, the description is incomplete. It does not clarify the return value structure, default limit, ordering, or how to interpret the summaries, leaving the agent uncertain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with all three parameters described in the input schema. The description adds no additional meaning beyond the schema, meeting the baseline. No parameter-specific information is provided in the description text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (list), resource (task summaries), and context (TRAE desktop/mobile progress views). It effectively distinguishes from sibling tools like get_task_status (detailed status) and cancel_task (action).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for progress views but provides no explicit guidance on when to use this tool versus alternatives like get_task_status or list_artifacts. No exclusions or conditions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

request_revisionC

Request revision for a task

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesOriginal task ID
revisionNotesYesNotes explaining what needs to be revised
modelNoModel to use
sandboxNoSandbox access mode
autoStartNoWhether to auto-start

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden for behavioral disclosure. It only states the tool's action without revealing side effects (e.g., does it modify existing tasks? create a new revision? require permissions?). Critical transparency is missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise (one sentence) and front-loaded. While efficient, it sacrifices necessary detail for completeness; a bit more context could be added without losing brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters and no output schema or annotations, the description is insufficient. It does not explain the revision process, what happens after request, or how the response is handled.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The tool description adds no additional parameter meaning beyond the schema's own descriptions, meeting the minimum expectation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a clear verb+noun ('Request revision for a task'), accurately stating the tool's intent. However, it does not differentiate from sibling tools like submit_task or cancel_task, missing an opportunity to clarify unique scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., submit_task for new tasks, cancel_task for termination). The description lacks any contextual cues for appropriate invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_permission_requestA

Approve or reject a pending permission request. Approval creates a retry task with the requested sandbox.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestIdYesPermission request ID
decisionYesWhether to approve or reject the request
noteNoOptional approval or rejection note
sandboxNoSandbox to use for the retry task when approving
autoStartNoWhether the retry task should start immediately

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses that approval creates a retry task and requires a sandbox, but does not describe what happens on rejection, side effects, or permissions needed. Partially transparent but incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff, front-loaded with the core action. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with 5 parameters and no output schema or annotations, the description is incomplete. It doesn't explain return values (e.g., response object), error conditions, or what happens to the original request. More detail is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (5/5 parameters described). Description adds no additional meaning beyond schema; it merely mentions sandbox in context of retry task. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool's action: 'Approve or reject a pending permission request', and adds a key behavioral outcome: 'Approval creates a retry task with the requested sandbox.' This distinguishes it from sibling tools like list_permission_requests, which only list requests.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives like request_revision or submit_task. It implies that approval triggers a retry task, but no guidance on prerequisites (e.g., request must be pending) or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_taskB

Submit a development task to the executor agent

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesTask description (required)
titleNoTask title
modelNoModel to use for execution
sandboxNoSandbox access mode
autoStartNoWhether to auto-start the task
constraintsNoTask constraints
acceptanceCriteriaNoAcceptance criteria
projectRootNoProject root directory

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description gives no behavioral details (e.g., whether submission is synchronous, returns a task ID, or has side effects).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words; it is appropriately concise given its limited scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters, 1 required, nested objects, and no output schema, the description is far too minimal to inform correct usage; it omits crucial context like return values and execution behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are documented there. The description adds no additional meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('submit') and the resource ('development task'), and it distinguishes from sibling tools like cancel_task and list_tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives; lacks context about prerequisites or scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 12 tool updatesv1.0.0
    • First observedcancel_task
    • First observeddiagnose_environment
    • First observedget_mobile_dashboard
    • First observedget_result_report
    • First observedget_task_log
    • First observedget_task_status
    • First observedlist_artifacts
    • First observedlist_permission_requests
    • First observedlist_tasks
    • First observedrequest_revision
    • First observedresolve_permission_request
    • First observedsubmit_task

TDQS

A3.6/5.0

Scored across 12 tools

Disambiguation5/5

Each tool targets a distinct operation: task lifecycle (submit, cancel, status, logs, artifacts, report), permissions (list, resolve), environment diagnostics, dashboard, and revision. No two tools overlap in purpose.

Naming Consistency5/5

All tool names follow the verb_noun snake_case pattern (e.g., cancel_task, list_permission_requests). The naming is uniform and predictable across the entire set.

Tool Count5/5

With 12 tools, the set is well-scoped for an agent orchestration server. Each tool serves a clear function without redundancy, and the count is appropriate for the domain complexity.

Completeness4/5

The tool surface covers the main task lifecycle (submit, cancel, status, logs, artifacts, report), permissions, environment check, and revision. Minor missing features like direct task update or retry are handled indirectly, leaving only small gaps.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables Codex to delegate bounded work to external LLMs through role-based MCP tools, with worker health checks and audit logging.
    MIT