Skip to main content
Glama

agy-mcp

License: MIT Python CI Tests

语言:English · 繁體中文 · 日本語

把 Google Antigravity CLI(agy)包装成 11 个 typed MCP 工具, 任何 MCP 客户端(Claude Code / OpenAI Codex / Cursor / Cline / Continue …)都能直接调用。配套可选 Skill bundle,让支持 skill 的 平台学会何时调、用哪个 mode。


快速开始

# 1. 装 uv(已有可跳过)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 2. 装 agy-mcp(从 PyPI)
uv tool install agy-mcp

# 3. 注册 MCP server(以 Claude Code 为例;其它客户端见折叠区)
claude mcp add agy -s user --transport stdio -- agymcp

# 4. (可选)装 SKILL,让 Claude / Codex / Antigravity 学会何时调
agy-install-skill --target all

# 5. 验证(不调真实 agy API)
agy-doctor
请帮我把 agy-mcp 这个开源 MCP 安装好。具体目标:

1. 用 uv tool 装本仓库的 console scripts(agymcp / agy-bridge /
   agy-doctor / agy-install-skill)。如果本机没有 uv,先用
   `curl -LsSf https://astral.sh/uv/install.sh | sh` 装好。
2. 把 agy MCP server 注册到我当前正在使用的 agent 平台:
   - 如果你是 Claude Code,执行:
     `claude mcp add agy -s user --transport stdio -- agymcp`
     并用 `claude mcp list` 确认 `agy: ✓ Connected`。
   - 如果你是 OpenAI Codex CLI,向 `~/.codex/config.toml` 追加:
     ```toml
     [mcp_servers.agy]
     command = "agymcp"
     args = []
     ```
     并重启 Codex 会话让其生效。
3. 装协作 SKILL(让本平台知道何时调用 agy):直接调用刚才暴露的
   `agy_install_skill` MCP 工具,参数 `targets=["all"], scope="user"`。
   它会写到 `~/.claude/skills/`、`~/.agents/skills/`、`~/.agy/skills/`
   三处。装完后告诉我重启窗口让 SKILL 生效。
4. 验证:调用 `agy_doctor` MCP 工具,把返回的 JSON 完整贴给我看;
   预期 `healthy=true`,主要 check 全部 `ok=true`。如果 `auth` 这项
   显示未登录,告诉我手动跑一次 `agy --version` 触发 OAuth 流程,
   然后再调一次 `agy_doctor`。
5. 安装来源默认走 PyPI:`uv tool install agy-mcp`。如果我让你装某个
   未发布分支或本地 clone,再切到 `git+https://github.com/Boulea7/agy-mcp.git`
   或本地 `--from <项目本地绝对路径>`。

约束:
- 不要 push 任何东西、不要改我的 .gitconfig。
- 在没有我确认前不要调真实的 `agy` 模型(只能跑 doctor / dry-run)。
- 任何写入操作(包括上面这些)做之前先简短说一下要做什么,等我点头
  再执行;如果你的当前权限模式允许 acceptEdits,就直接执行。

每完成一步给我一行汇报,全部完成后给出一份 4 行总结:装在哪、11 个
MCP 工具是否齐、SKILL 落地路径、剩余可选项。
  • OpenAI Codex CLI:向 ~/.codex/config.toml 追加:

    [mcp_servers.agy]
    command = "agymcp"
    args = []

    重启 Codex 会话生效。

  • Cursor / Cline / Continue / 其它 MCP 客户端:在客户端的 MCP server 配置里加一条 name=agy、command=agymcp、transport=stdio 即可。具体语法各家不同,参考各自文档。

完整安装与故障排查 → docs/installation.md。


Related MCP server: Antigravity MCP Server

它是什么

把 Google 新发布的 Antigravity CLI(agy)包装成可被任意 MCP 客户端 调用的协作 agent backend。两条等价路径:

  • MCP server:agymcp 经 FastMCP stdio 暴露 11 个 typed JSON 工具, pydantic envelope 稳定可解析。任何 MCP 客户端皆可。

  • Skill bundles:装到 ~/.claude/skills/、~/.agents/skills/、 ~/.agy/skills/,教 agent 何时调 agy、用哪个 mode、注意哪些安全 规则。仅对 Claude Code / OpenAI Codex / Antigravity 三家有效。

  • 共享 backend:两条路径都走同一 bridge.py → adapter → safety policy → worktree,行为一致。

除 agy_doctor 与 --dry-run 外,agy / agy_start 会启动真实 agy --print,可能消耗 Antigravity 请求额度。本项目只包装、路由、 隔离、审计,不重新实现 agy API。

11 个 MCP 工具

工具

用途

agy

同步一次性调用(PROMPT / cd / sandbox / SESSION_ID + mode / backend / output_protocol / worktree / allow_write / extra_env)

agy_continue

续 SESSION_ID

agy_start

后台启动长任务,立即返回 job_id

agy_status

查 job 状态:running / completed / failed / cancelled / upstream_error;job_id 可用唯一前缀

agy_read

读 job 事件流(raw / claude / codex 三协议);job_id 可用唯一前缀

agy_result

取已完成 job 的结果;不传 job_id 时返回最近完成任务;传参可用唯一前缀

agy_cancel

跨平台 process group 终止;job_id 可用唯一前缀

agy_sessions

列最近 session

agy_doctor

环境 + 鉴权 + capability 探测(不泄漏 secrets)

agy_install_skill

把 SKILL bundle 装到 Claude / Codex / Antigravity 目录

agy_purge

清理本机 session-store 目录(refuse days<=0)

何时调用 / 何时不调用

情景

建议路径

上下文里能直接答的 Q&A

不调,自己答

Bug 假设的第二意见

agy(..., mode="review")

给 review 用的 diff

agy(..., mode="prototype")(无 allow_write)

应用 reviewed diff

agy(..., mode="execute", allow_write=True)(自动 worktree)

数小时大重构

agy_start(..., mode="long") 然后轮询

需要 Anthropic / OpenAI 对话状态

不调 —— agy 是独立模型独立上下文

安全底线

  • 所有错误 / 日志 / 响应字段先过 SafetyPolicy.redact:/Users/<u>/ → ~/,PEM / JWT / AKID / Bearer 全脱敏;

  • mode=execute 写入必须显式 allow_write=True;destructive prompt 即使置位仍拒;

  • execute 模式下读 / 提及 ~/.ssh、~/.aws/credentials、浏览器 cookie、OS keychain 都拒;

  • mode=execute + allow_write 默认 worktree=True(可经 ~/.config/agy-mcp/config.toml 或 AGY_MCP_WORKTREE_DEFAULT=0 关闭);

  • 不写任何文件到 ~/.gemini/(Antigravity CLI 自有状态目录);user-scope antigravity skill 落在 ~/.agy/skills/。

完整威胁模型与「不防御」清单 → docs/security.md。

项目协议片段

直接复制到项目根的 CLAUDE.md / AGENTS.md:

文档目录

文件

内容

docs/installation.md

安装 + Claude Code / Codex 注册 + SKILL + 验证

docs/architecture.md

模块图(caller / MCP server / bridge / supervisor / adapter / safety)

docs/output-strategy.md

Hybrid backend:stdout + klog + transcript.jsonl + 协议翻译器

docs/README_EN.md

English README

docs/README_ZH-TW.md

繁體中文 README

docs/README_JA.md

日本語 README

docs/security.md

威胁模型、防护清单、明确不防御项

docs/cli-capabilities.md

agy --help 实测 + capability 矩阵

docs/examples.md

7 个典型场景

docs/comparison-with-cli-wrappers.md

Stream-json passthrough vs Hybrid backend 两种 wrapper 模式对比

docs/release.md

PyPI trusted publishing + GitHub Release 发布手册(一次性设置 + 常规流程)

CHANGELOG.md

版本变更记录(Keep a Changelog)

开发

uv sync
uv run pytest        # 全量测试
uv run agymcp        # 启动 MCP stdio server(人工测试用)
uv run agy-bridge --cd . --PROMPT "Hello" --mode ask --dry-run --debug
uv run agy-doctor    # 环境与鉴权探测

License

MIT.

Available Tools

11 tools
agyA

Run agy --print synchronously and return the assistant text + metadata. Compatible drop-in for the legacy gemini tool: same PROMPT / cd / sandbox / SESSION_ID / return_all_messages / model fields, with new mode / timeout / allow_write / worktree / backend / output_protocol options.

ParametersJSON Schema
NameRequiredDescriptionDefault
cdNo.
modeNoask
debugNo
modelNo
PROMPTYes
backendNoauto
dry_runNo
sandboxNo
timeoutNo
worktreeNo
extra_envNo
SESSION_IDNo
allow_writeNo
output_protocolNoclaude
return_all_messagesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
cwdNo
errorNo
job_idNo
statusNo
adapterNo
successYes
log_pathNo
warningsNo
artifactsNo
SESSION_IDNo
created_atNo
updated_atNo
all_messagesNo
agent_messagesNo
command_previewNo

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are present, so the description bears the burden. It discloses synchronous execution and return content, and mentions parameters like allow_write and sandbox that hint at side-effect control, but it does not specify permissions, side effects, or operational risks.

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 two sentences, efficiently delivering the core action, return type, and parameter compatibility. No filler or redundancy; information is 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?

With 15 parameters, 0% schema coverage, and no annotations, the description is too thin. It relies heavily on familiarity with the legacy gemini tool and does not explain modes, enums, or the output structure beyond 'assistant text + metadata'.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate. It lists parameter groups ('same PROMPT / cd / ...' and 'new mode / timeout / ...') but does not explain the meaning of individual parameters or enum values, leaving the agent without sufficient semantics.

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 explicitly states 'Run agy --print synchronously and return the assistant text + metadata', providing a specific verb, resource, and output. It distinguishes this from sibling tools like agy_start and agy_continue by positioning it as the primary execution tool.

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

Usage Guidelines4/5

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

The description offers clear context by calling itself a 'drop-in for the legacy gemini tool', indicating when it should be used (when you would use gemini). However, it does not explicitly contrast with siblings or provide exclusions, but the inference is straightforward from the names.

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

agy_cancelA

Signal a running job to stop by full job_id or unique prefix. Returns success=True, signalled=True if the worker was alive, signalled=False if it was unknown / already finished.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
job_idNo
successYes
signalledNo

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description must carry behavioral disclosure. It adds meaningful outcome semantics (signalled=True if the worker was alive, False if unknown or already finished), but omits permissions, whether cancellation is guaranteed or graceful, and 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?

Two tightly written sentences with purpose front-loaded and outcome details second. No filler; every sentence contributes.

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

Completeness4/5

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

For a single-parameter tool with an output schema, the description covers purpose, accepted identifier forms, and outcome meaning. It lacks permission/ownership requirements and prefix-ambiguity behavior, but is nearly complete for correct invocation.

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?

Schema description coverage is 0% and the sole job_id parameter has no schema description. The description compensates by stating it accepts a full job_id or a unique prefix, adding important input semantics, though it does not address prefix-ambiguity handling.

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?

States a specific verb ('Signal ... to stop') and resource ('running job'), and explains accepted identifier forms. However, it does not distinguish this tool from siblings like agy_status or agy_read, so it 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 explicit when-to-use guidance versus alternatives such as agy_status; the only context is the implied 'running job' condition. No prerequisites or exclusions are stated, matching the calibration example for a tool that lacks usage guidance.

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

agy_continueA

Continue an existing agy session. Identical to agy except SESSION_ID is required and the underlying adapter resumes the Antigravity conversation.

ParametersJSON Schema
NameRequiredDescriptionDefault
cdNo.
modeNoask
debugNo
modelNo
PROMPTYes
backendNoauto
dry_runNo
sandboxNo
timeoutNo
worktreeNo
extra_envNo
SESSION_IDYes
allow_writeNo
output_protocolNoclaude
return_all_messagesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
cwdNo
errorNo
job_idNo
statusNo
adapterNo
successYes
log_pathNo
warningsNo
artifactsNo
SESSION_IDNo
created_atNo
updated_atNo
all_messagesNo
agent_messagesNo
command_previewNo

TDQS

A3.5/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 disclose behavioral traits but only says 'the underlying adapter resumes the Antigravity conversation.' It does not mention side effects, write permissions, session state changes, or other behaviors. Given zero annotation coverage, this 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?

Two sentences, front-loaded with the core purpose, and every word adds value. It efficiently conveys the main function and the critical requirement (SESSION_ID) without redundancy.

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 an output schema, the tool has 15 parameters and no annotations. The description is minimal and does not explain key behavioral aspects like modes, backends, or the meaning of parameters such as allow_write or return_all_messages. It is too sparse for a tool of this complexity.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only adds meaning to SESSION_ID (clarifying it is required for continuation). It does not explain PROMPT or the other 13 parameters, nor does it elaborate on enums or defaults. The reference to `agy` might imply shared semantics, but that is not self-contained.

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 explicitly states 'Continue an existing agy session' with a specific verb and resource, and distinguishes itself from siblings by noting 'Identical to `agy` except SESSION_ID is required.' This clearly differentiates it from agy_start (new session) and other session-related tools.

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

Usage Guidelines4/5

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

It implies usage is for continuing an existing session, with 'SESSION_ID is required' as the key differentiator. It references the alternative `agy` but does not explicitly state exclusions like 'do not use for new sessions.' However, the context is clear enough for an agent to decide when to use it.

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

agy_doctorA

Run capability + auth + session-store probes. Returns a structured report (no secrets) suitable for surfacing to a user via MCP. Pass force_refresh=true to drop the cached binary probe (use after upgrading the underlying agy / gemini CLI without restarting the MCP server).

ParametersJSON Schema
NameRequiredDescriptionDefault
force_refreshNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
reportNo
successYes
versionNo

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description takes on the burden. It discloses caching behavior ('drop the cached binary probe'), the return format ('structured report (no secrets)'), and appropriateness for MCP. It doesn't explicitly state safety or side effects, but the context is adequate.

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?

Three concise sentences front-load the purpose, describe the output, and then explain the parameter. No wasted words.

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

Completeness5/5

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

The tool is simple (one optional parameter) and an output schema exists. The description covers the purpose, output nature, and the cache nuance, making it complete for an agent to invoke correctly.

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

Parameters5/5

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

Despite 0% schema coverage, the description fully explains the one parameter: 'Pass `force_refresh=true` to drop the cached binary probe' and gives the exact scenario for using it.

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 states 'Run capability + auth + session-store probes' with a specific verb and resource, clearly distinguishing it from sibling tools like agy_status or agy_read as a diagnostic tool.

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

Usage Guidelines4/5

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

It provides clear context for the force_refresh parameter ('use after upgrading the underlying agy / gemini CLI'), but does not explicitly compare with alternatives or state when-not to use it. The diagnostic purpose is implicit.

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

agy_install_skillA

Install the agy-mcp collaboration skill bundle into one or more agent platforms. targets may include 'claude', 'codex', 'antigravity', or 'all' (default expands to all three). User scope writes to ~/.claude/skills/, ~/.agents/skills/, and ~/.agy/skills/ respectively; project scope writes to .claude/skills/, .agents/skills/, and .antigravity/skills/ under the supplied project_root. Antigravity's wrapper-owned ~/.agy/ is used in user scope because the standing rule 'do not write under ~/.gemini/' rules out the Antigravity CLI's own state directory. force=False (the default) skips files whose on-disk body already matches; force=True rewrites every file unconditionally.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNo
scopeNouser
targetsNo
project_rootNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
successYes
warningsNo
installedNo

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description fully bears the transparency burden. It details exact filesystem paths per scope, the force flag behavior (skip vs. unconditional rewrite), and the reasoning behind using ~/.agy/ over ~/.gemini/ due to a standing rule. This is rich 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.

Conciseness5/5

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

The description is a single well-structured paragraph, front-loaded with the main action, then logically covering targets, scope paths, the Antigravity exception, and force semantics. Every sentence adds necessary context without waste.

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

Completeness5/5

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

Given 4 parameters, 0% schema coverage, and existing output schema, the description covers all parameters, defaults, and edge cases, leaving no significant ambiguity for an agent to decide when and how to invoke the tool.

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

Parameters5/5

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

Schema description coverage is 0%, and the description compensates thoroughly: targets values are enumerated, scope modes are tied to concrete paths, project_root is explained, and force behavior is defined for both false and true.

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 opens with a specific verb+resource: 'Install the agy-mcp collaboration skill bundle into one or more agent platforms.' It clearly differentiates from sibling tools like agy_start or agy_status by focusing on installation.

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

Usage Guidelines4/5

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

The description explains target expansion and scope semantics, giving clear context on parameter choices. It does not explicitly name alternatives or exclusions, but the tool's purpose is self-contained and sibling names clearly differ.

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

agy_purgeA

Delete session-store job directories whose mtime is older than days. Returns the removed job ids and a coarse count of remaining jobs. days must be a positive integer <= 3650; zero or negative values are rejected to avoid an accidental wipe via off-by-one config.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
daysNo
errorNo
removedNo
successYes
remainingNo
removed_countNo

TDQS

A4.3/5.0
Behavior4/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 discloses the deletion action, the validation constraints (positive integer <= 3650, rejection of zero/negative), and the return value (removed job ids and coarse count). This adds safety context and expected behavior, though it does not detail irreversible effects or permissions.

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 two sentences with no redundancy. The first sentence states the core action, the second provides validation details and rationale. Every word adds value, and the most critical information is front-loaded.

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

Completeness4/5

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

The description covers the tool's purpose, parameter constraints, and return value, which is sufficient given the simple single-parameter interface and the presence of an output schema. It does not describe the exact structure of the output, but the output schema presumably covers that, and it does not mention edge cases like empty results, but these are minor gaps.

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

Parameters5/5

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

The schema only defines `days` as an integer with a default, providing no description. The tool description fills this gap completely by specifying the valid range (1-3650), the requirement for positivity, and the rationale for rejecting zero/negative values, which prevents misuse.

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 ('Delete') and the resource ('session-store job directories'), and specifies the condition based on mtime and days. It also mentions the return value, which distinguishes it from sibling tools like agy_status or agy_cancel by describing a unique cleanup operation.

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 cleaning up old session jobs, and explicitly warns about safe values for `days` to avoid accidental wipes. However, it does not explicitly state when to prefer this tool over alternatives, nor does it mention when not to use it (e.g., if active jobs might be affected).

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

agy_readB

Read events from a job's event log. since is the 0-based offset; translate may be 'raw', 'claude', or 'codex' to wire-format the events (default returns canonical events as dicts). job_id may be a full id or unique prefix.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceNo
job_idYes
translateNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
errorNo
sinceNo
eventsNo
job_idNo
successYes
translateNo

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It does disclose useful operational detail (since is a 0-based offset, the default return is canonical event dicts, job_id accepts a unique prefix), but it says nothing about whether reads are non-destructive, whether the call blocks waiting for new events, or whether a cursor/offset is persisted across calls.

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?

Three compact clauses, purpose front-loaded, then per-parameter clarifications in the order the agent will encounter them. No filler sentences.

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 output schema exists, so return values needn't be documented. However, for a polling-style log-read tool with no annotations and many confusable siblings, the description should have covered whether the read blocks, whether it is safe/repeatable, and how it relates to agy_result/agy_status. Those gaps leave the agent under-informed.

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?

Schema coverage is 0% (titles only), so the description must carry the load, and it documents all three parameters: the meaning and base of `since`, the accepted `translate` values with the default behavior spelled out, and the prefix-matching rule for `job_id`. It stops short of explaining how the raw/claude/codex wire formats differ, keeping it from a 5.

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 first sentence gives a specific verb and resource: 'Read events from a job's event log.' That is unambiguous about what the tool does. What it lacks is any differentiation from siblings such as agy_result or agy_status, which an agent must distinguish to pick the right tool.

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?

There is no explicit when-to-use, when-not-to-use, or alternative-tool guidance. Nothing tells the agent whether to call agy_read versus agy_result (for results) or agy_status (for state), so selection rests entirely on inferring from the name.

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

agy_resultA

Return the captured output for a finished background job. Pass job_id (full id or unique prefix) to select a job, or omit it to use the latest finished job from agy_sessions. Set include_events=true to also return stored events; otherwise use agy_read for the full event log.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceNo
job_idNo
include_eventsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
errorNo
sinceNo
eventsNo
job_idNo
recordNo
successYes
result_textNo
include_eventsNo

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It does useful work: it implies a read-only retrieval, defines the default (latest finished job from agy_sessions), and clarifies the include_events toggle. However it never states failure modes — what happens if the job is still running, if the prefix matches multiple jobs, or if no finished job exists — which matters for a tool whose whole contract is id selection.

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?

Two tight sentences, front-loaded with the core action before the argument-selection rules. Slightly dense in the second sentence, but no filler and every clause carries routing information.

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?

An output schema exists, so return values need no explanation, and the core invocation paths are covered. Still incomplete for a job-selection tool: 'since' semantics and the behavior on ambiguous or non-finished job ids are unresolved, so an agent could call it correctly but not predict its edge-case 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 0%, so the description must compensate. It does explain job_id (full id or unique prefix) and include_events (returns stored events), but the 'since' parameter is entirely undocumented in both the schema and the description, leaving one of three parameters opaque.

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?

States a specific verb and resource ('Return the captured output for a finished background job') with the scope qualifier 'finished'. It explicitly distinguishes itself from siblings by naming agy_read and agy_sessions, so an agent can route between them without opening any schema.

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

Usage Guidelines5/5

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

Gives explicit selection rules: pass job_id (full or unique prefix) to target a job, omit it to fall back to the latest finished job from agy_sessions. It also names the alternative path for full event retrieval ('otherwise use agy_read'), which is exactly the when-to-use/when-to-use-something-else guidance the dimension asks for.

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

agy_sessionsA

List recent jobs, newest first. limit defaults to 50; pass 0 for the full list.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
errorNo
recordsNo
successYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the ordering ('newest first') and the limit behavior (default 50, 0 for full list), which is useful. However, it does not explicitly state that the operation is read-only or describe potential side effects, though 'list' implies a safe read.

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 entire description is a single sentence, concise and front-loaded with the main action. Every word earns its place, conveying both purpose and parameter details without fluff.

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

Completeness4/5

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

For a simple list tool with one optional parameter and an output schema, the description covers the core aspects: what is listed, ordering, and limit semantics. It omits explicit mention of read-only status or the definition of 'jobs', but the presence of an output schema reduces the need to describe return values.

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 schema provides only a bare parameter with a default, but the description adds crucial semantics: 'limit defaults to 50; pass 0 for the full list.' This explains the parameter's behavior and special value, effectively compensating for the 0% schema description coverage.

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 clearly states the tool 'List recent jobs' with an explicit ordering ('newest first'), giving a specific verb and resource. It does not explicitly differentiate from sibling tools like agy_status or agy_result, but the resource 'jobs' and the list action are distinct enough.

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?

The description provides no guidance on when to use this tool versus alternatives such as agy_status or agy_result. There is no mention of typical use cases, prerequisites, or exclusions, leaving the agent without context for tool selection.

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

agy_startA

Start an agy session in the background. Returns an envelope with status='running' and a job_id you can poll via agy_status / agy_read / agy_cancel.

ParametersJSON Schema
NameRequiredDescriptionDefault
cdNo.
modeNoask
debugNo
modelNo
PROMPTYes
job_idNo
backendNoauto
sandboxNo
timeoutNo
worktreeNo
extra_envNo
SESSION_IDNo
allow_writeNo
output_protocolNoclaude

Output Schema

ParametersJSON Schema
NameRequiredDescription
cwdNo
errorNo
job_idNo
statusNo
adapterNo
successYes
log_pathNo
warningsNo
artifactsNo
SESSION_IDNo
created_atNo
updated_atNo
all_messagesNo
agent_messagesNo
command_previewNo

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description must carry the burden of behavioral disclosure. It discloses that the session runs in the background and returns a status and job_id. It does not mention side effects like file system changes, permissions, or rate limits, but for a 'start' tool the core behavior is reasonably conveyed. Lacks depth expected for a 14-parameter tool.

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, front-loaded, zero fluff. The first sentence states the core action, the second explains the return value and next steps. 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?

Despite the presence of an output schema (per context), the tool is complex with 14 parameters and rich options (modes, sandbox, workflows). The description only covers the basic launch-and-poll flow, offering almost no guidance on parameter selection, which is essential for correct usage in varied situations.

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

Parameters1/5

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

Schema description coverage is 0%, so the description should compensate for parameter meaning. It does not explain any of the 14 parameters (PROMPT, mode, backend, sandbox, allow_write, etc.). The only mention of job_id refers to the return value, not the input parameter. This leaves the agent guessing about all 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 tool's action: 'Start an agy session in the background.' This identifies a specific verb and resource, and the mention of returning a job_id to poll distinguishes it from sibling tools like agy_status and agy_cancel. It leaves no ambiguity about what the tool does.

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

Usage Guidelines4/5

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

The description provides clear context: this tool is for launching a background session and then polling it via agy_status/agy_read/agy_cancel. It implies usage for asynchronous workflows and names the related tools. However, it does not explicitly say when NOT to use this tool or mention alternatives like 'agy' for interactive sessions.

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

agy_statusB

Return the JobRecord (status, exit code, error, timestamps) for a job_id or unique job-id prefix.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
recordNo
successYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full burden. It usefully enumerates the returned record contents (status, exit code, error, timestamps), but never states that this is a read-only, non-mutating operation, nor any auth, rate-limit, or polling behavior for a status-check tool.

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 with no filler; the returned fields are parenthesized rather than expanded, and the input rule is stated compactly. Nothing could be removed without losing information.

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 output schema already covers return values, so restating them is harmless but not the missing piece. What is missing is sibling disambiguation and the read-only safety profile — the two things an agent actually needs to choose and safely call this among agy_start, agy_result, and agy_read.

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?

Schema description coverage is 0%, so the description must compensate, and it does: it discloses that job_id may be a full id OR a unique job-id prefix, which is non-obvious behavior absent from the schema's plain 'Job Id' string. It stops short of giving format details or stating what happens on an ambiguous prefix.

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?

States a specific verb ('Return') and a specific resource ('the JobRecord') scoped to a job, which is clearer than the bare name agy_status. However, it does nothing to differentiate itself from close siblings like agy_result, agy_read, or agy_sessions, so an agent cannot route between them from this text alone.

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?

The description says what input it takes but never states when to call this versus agy_result, agy_read, or agy_continue. There are no exclusions, prerequisites, or contextual triggers, leaving the agent to guess at routing among a crowded sibling set.

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. 11 tool updatesv0.1.8
    • First observedagy
    • First observedagy_cancel
    • First observedagy_continue
    • First observedagy_doctor
    • First observedagy_install_skill
    • First observedagy_purge
    • First observedagy_read
    • First observedagy_result
    • First observedagy_sessions
    • First observedagy_start
    • First observedagy_status

TDQS

A3.9/5.0

Scored across 11 tools

Disambiguation5/5

Each tool has a clearly distinct role: synchronous run vs background start vs continue, and job inspection is split into status, result, read, and sessions with descriptions that explain the boundaries. The overlap around job state/output is minimal and resolvable from the descriptions.

Naming Consistency4/5

Names are consistently snake_case with an agy_ prefix, except for the main tool named simply 'agy' as a legacy drop-in. The verb/noun mix (start, read, cancel vs status, result, sessions) is readable but not a single uniform pattern.

Tool Count5/5

Eleven tools is well-scoped for an MCP wrapper that manages background jobs, synchronous runs, sessions, diagnostics, and skill installation. Each tool appears to earn its place without obvious redundancy.

Completeness4/5

The surface covers the core job lifecycle: start, run, continue, status, read, result, cancel, list, and purge, plus diagnostics and skill installation. Minor gaps exist, such as no explicit single-job deletion or skill uninstall/update operation, but agents can work around them.

Maintenance

ActivityMaintained
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers