chatgpt-local-coding-agent
ChatGPT 网页版本地 Shell Agent 0.2.1(Windows + WSL)
这套实现把 ChatGPT 官方 Developer Mode 通过 OpenAI Secure MCP Tunnel 接到本机 Shell 与代码 workspace。模型推理只发生在 ChatGPT 网页会话中;服务端代码不会调用 Responses、Chat Completions、Realtime 或其他模型 API。Runtime API key 只交给官方 Tunnel 客户端建立传输链路。
项目没有截图、鼠标、键盘、UI Automation、桌面遥控或浏览器自动化工具,也不会把 chatgpt.com 包装成非官方 API。
能力
读取当前用户有权限访问的 Windows / WSL 普通文本文件。
保留原有 WSL bubblewrap
shell_run:无授权倒计时,随服务长期可用;宿主 home、Windows mounts 与宿主/var不可见。PowerShell 7 与原生 Windows 可执行文件使用
windows_shell_open → windows_shell_prepare → windows_shell_run;首次本机批准后授权跨 Tunnel、MCP 与登录重启保留,直到显式windows_shell_close。Windows 与 WSL repo 都支持 snapshot、diff、冲突检测、本机确认、原子写回与恢复副本。
workspace 只复制 Git tracked / untracked nonignored 普通文件;排除
.env、凭据路径、检测到凭据内容的文件、symlink、junction、reparse point、特殊文件及 Git ignored 内容。Windows Shell 只继承白名单环境变量,secret-like 环境变量不会传入;输出最多各 2 MiB,并在返回 ChatGPT 前脱敏。
Windows 子进程放入 kill-on-close Job Object;超时、撤销授权或 Agent 停止时终止命令树。
不提权、不调用 UAC。若 Gateway 本身处于提升状态,Windows Shell 会拒绝运行。
Windows snapshot 是可审核副本,不是强安全沙箱。标准用户进程仍可能访问该用户的其他文件,因此所有非严格只读的 Windows 命令都会被当作“可影响宿主”并逐次弹出本机确认。
详细边界见 SECURITY.md。
Related MCP server: chatgpt-codex-tools-mcp
MCP 工具
文件工具:
system_health
fs_stat / fs_list / fs_search_paths
fs_inspect / fs_read / fs_release共享 workspace 工具:
workspace_open(executor="wsl" | "windows")
workspace_status
workspace_diff
workspace_apply_back
workspace_closeShell 工具:
shell_run # 只用于 WSL bubblewrap
windows_shell_status
windows_shell_open
windows_shell_prepare
windows_shell_run
windows_shell_closewindows_shell_prepare 会把 shell、完整命令或 argv、cwd、target、用途、超时、环境摘要、网络特征与风险绑定到 5 分钟的一次性 review_id。执行时不能替换字段;重启后 review token 失效,但 Windows Shell 的 DPAPI 持久授权仍有效。
Windows 命令分级
等级 | 行为 |
| Shell 已授权时可执行;接受 AST 可证明为静态只读的扩展 allowlist,包括文件/进程/服务/系统信息、哈希/ACL、PowerShell 元数据,以及 Git status/diff/log/show/rev-parse/ls-files/ls-tree 等查询。 |
| cwd 映射到 Windows snapshot;ChatGPT 工具确认与 Windows 本机逐命令确认。 |
| 直接影响宿主或有网络/状态改变能力;ChatGPT 工具确认与 Windows 本机逐命令确认。 |
| 提权、RunAs、EncodedCommand、命令混淆、安全防护关闭、注入、键盘记录、凭据转储或审批绕过。 |
Shell 永不返回精确凭据。合法任务确实需要原始值时,必须继续走 fs_inspect → fs_release(mode="exact"),并由用户在本机弹窗确认。
ChatGPT 中的用法
WSL workflow:
system_health
workspace_open(platform="windows", path="C:\path\repo", executor="wsl")
shell_run(command="...")
workspace_diff
workspace_apply_back(review_id="...", purpose="具体写回用途")
workspace_closeWindows workflow:
system_health
windows_shell_status
windows_shell_open(purpose="在本机 repo 中构建并运行测试")
workspace_open(platform="windows", path="C:\path\repo", executor="windows")
windows_shell_prepare(
shell="powershell",
command="python -m pytest",
cwd="C:\path\repo",
target="workspace",
purpose="运行该 repo 的测试以验证当前修改",
timeout_seconds=120
)
windows_shell_run(review_id="...")
workspace_diff
workspace_apply_back(review_id="...", purpose="测试通过后写回已审核 diff")
workspace_closewindows_shell_open 的旧 duration_seconds 参数为兼容保留,在 authorization_mode="persistent" 下会被忽略。不要在每次任务结束时调用 windows_shell_close;只有你希望撤销永久授权时才调用它。停止或重启 Tunnel 不会撤销授权。
对宿主做只读查询时使用 target="host"。任何安装、文件写入、注册表修改、进程/服务状态改变或网络传输都会逐命令弹出本机确认。
安装、升级与运行
默认安装位置:
%LOCALAPPDATA%\ChatGPTMCP全新安装前,先在 OpenAI 控制面创建 Secure MCP Tunnel 和专用 Runtime API key。安装脚本不包含任何预置 Tunnel ID,必须显式传入:
& .\scripts\Install.ps1 -TunnelId 'tunnel_your_id'默认 Tunnel profile 名为 chatgpt-local-coding-agent。如需自定义:
& .\scripts\Install.ps1 -TunnelId 'tunnel_your_id' -ProfileName 'my-local-coding-agent'安装脚本会把 profile 名写入本机 config.toml。旧安装若还没有该配置项,Operator CLI 仅在 profiles 目录恰好有一个 YAML 时兼容发现;缺失或多个候选时会拒绝猜测。
从旧版本升级:
& .\scripts\Upgrade.ps1升级脚本先在 %LOCALAPPDATA%\ChatGPTMCP\backups 保存配置、脚本、已安装包与依赖清单,再安装 0.2.1、运行完整测试;只有测试通过才把 windows_shell.enabled 改为 true 并设置 authorization_mode="persistent"。Runtime key 不会被读取、打印或删除。
常用命令:
& "$env:LOCALAPPDATA\ChatGPTMCP\Doctor.ps1"
& "$env:LOCALAPPDATA\ChatGPTMCP\Start-Agent.ps1"
& "$env:LOCALAPPDATA\ChatGPTMCP\Status-Agent.ps1"
& "$env:LOCALAPPDATA\ChatGPTMCP\Stop-Agent.ps1"
& "$env:LOCALAPPDATA\ChatGPTMCP\Enable-Autostart.ps1" -StartNow
& "$env:LOCALAPPDATA\ChatGPTMCP\Disable-Autostart.ps1"登录任务只为当前用户注册,RunLevel=Limited,不使用最高权限。Windows Shell 授权记录由当前 Windows 用户的 DPAPI 加密,第一次通过 windows_shell_open 批准后会在登录/Tunnel/MCP 重启时恢复。WSL Shell 没有倒计时。永久授权不等于永久放行命令:Windows 非只读命令、原 repo 写回和精确敏感内容仍逐次本机确认。
ChatGPT 网页自己的工具确认是另一层:OpenAI Developer Mode 对写 action 默认要求确认,网页端“记住”只适用于当前对话,刷新或新对话可能再次询问。本机服务不能也不会绕过这一层。参见 Developer Mode 文档。
部署新工具定义后,到 ChatGPT 的 App/Connector 详情页执行 Refresh,审核新增的五个 Windows Shell actions。OpenAI 不会自动替你启用变更后的工具定义。参见 Developer Mode 文档。
网页额度与 API
本项目不以节省 ChatGPT 网页额度为目标。ChatGPT Plus 的模型使用限制会动态变化,MCP App 调用沿用对应 ChatGPT 会话的限制,不构成额外模型 API 调用;OpenAI API 账户与 ChatGPT 订阅则是独立计费体系。参见 ChatGPT Plus 与 Apps in ChatGPT。
开发验证
通用验证范围见 docs/VALIDATION.md。
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e ".[test]"
.\.venv\Scripts\python.exe -m pytest测试覆盖文件敏感分级、MCP 工具发现、WSL 无到期状态、Windows DPAPI 持久授权与显式撤销、损坏授权拒绝、Windows snapshot、Git ignored 产物、diff/apply/冲突、扩展只读 allowlist、PowerShell AST、一次性 token、环境隔离、输出脱敏、本机拒绝、超时与多级子进程清理。
Available Tools
18 toolsfs_inspectBRead-onlyIdempotent
Classify a bounded file range locally and return reasons plus a short-lived inspection token, never content.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| distro | No | ||
| line_end | No | ||
| platform | Yes | ||
| line_start | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, but the description adds critical context beyond them: it explicitly states 'never content' and mentions a 'short-lived inspection token'. This is meaningful behavioral disclosure and doesn't contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the primary action and key limitation. Every word earns its place, with no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description is too sparse for a tool with 5 parameters. It doesn't explain what 'classify' means, what the reasons represent, how the token is used, or the significance of 'locally'. The complexity warrants more detail than a single sentence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description must compensate, but it provides no direct explanation of any parameter. It hints at a 'bounded file range', which maps to line_start/line_end, but doesn't clarify platform/distro or other semantics, leaving agents to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'classify' and resource 'bounded file range', with a specific output of reasons and an inspection token. It distinguishes from fs_read by emphasizing 'never content', but does not explicitly differentiate from other siblings like fs_stat or fs_list, so it's not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It implies usage for classification without returning content, but does not state scenarios, exclusions, or reference sibling tools. Agents have to infer when this is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fs_listARead-onlyIdempotent
List directory entry names and metadata. This never returns file snippets.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| limit | No | ||
| distro | No | ||
| platform | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is clear. The description adds useful behavioral context beyond annotations by specifying that the return includes entry names and metadata but never file snippets, helping agents avoid misusing the tool for content retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core action and scoped by a clarifying negative. Every word adds value, and there is no redundant restatement of schema or annotation information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing tool with robust annotations and an output schema, the description is mostly sufficient. It captures the core purpose and the key behavioral boundary (no file snippets). It does not explain distro/platform context or limit behavior, but parameter names and the structured schema partially cover that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no parameter-level guidance. It only implies that the operation targets a directory via 'List directory entry names', leaving path, limit, distro, and platform semantics entirely to their names and schema types. The description must compensate for the lack of schema descriptions but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('List directory entry names and metadata') and clearly distinguishes this from sibling file tools by stating it never returns file snippets. This makes the tool's scope immediately clear and differentiates it from content-reading tools like fs_read or fs_inspect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context that this is a directory-listing operation, and the explicit note 'never returns file snippets' gives an implicit exclusion when file content is needed. However, it does not explicitly name alternatives or provide a when-not-to-use directive, so it falls short of a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fs_readARead-onlyIdempotent
Read a bounded normal text range. Sensitive ranges return review_required and no content.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| distro | No | ||
| line_end | No | ||
| platform | Yes | ||
| line_start | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is clear. The description adds valuable context about sensitive ranges returning review_required and no content, which is beyond annotations. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and every word earns its place. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 5 parameters with 0% schema description coverage, but an output schema exists. The description explains the sensitive range behavior but does not cover parameter details or return format beyond that. Given the complexity, it is adequate but has gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. It mentions 'bounded normal text range' implying line_start and line_end, but does not explain platform, path, or distro semantics. The description adds minimal value beyond the schema, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool reads a bounded normal text range, which is a specific verb+resource. It distinguishes from siblings like fs_stat and fs_list by focusing on reading file content, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for reading text files within a line range, but does not provide explicit when-to-use vs alternatives or exclusions. The mention of sensitive ranges returning review_required gives some context but not enough for clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fs_releaseB
Release an inspected range after model purpose verification. Exact mode also requires local confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | redacted | |
| purpose | Yes | ||
| inspection_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With all annotation hints false, the description carries the full burden for behavioral disclosure. It reveals that Exact mode requires local confirmation, but it does not explain what releasing a range does, whether the effect is reversible, or what happens when purpose verification fails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core action and condition, with no filler or redundant restatement of the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a state-changing tool with no useful annotations and zero parameter documentation, the description is under-specified: it lacks mode semantics, the relationship to fs_inspect, and the release workflow beyond the confirmation requirement. The presence of an output schema does not compensate for those gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning for the parameters. It only hints at an 'Exact mode' concept for the mode parameter; 'purpose' and 'inspection_id' remain effectively unexplained, and 'redacted' is not described.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Release') with a clear resource ('an inspected range') and a precondition ('after model purpose verification'), which differentiates it from related fs_* inspection/read tools. It does not name the sibling tool explicitly, but the action is distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a clear timing/condition: use this after an inspection has been performed and the purpose has been verified. It also warns that Exact mode requires local confirmation, but it doesn't explicitly contrast with alternatives or explain when redacted mode is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fs_search_pathsBRead-onlyIdempotent
Search file and directory names under a root; never searches or returns secret-bearing content snippets.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| limit | No | ||
| query | Yes | ||
| distro | No | ||
| platform | Yes | ||
| max_depth | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds behavioral context by specifying that it searches only names, not content, and explicitly never returns secret-bearing snippets. This adds value beyond annotations. However, it does not describe other behaviors like recursion, performance characteristics, or case sensitivity, but given the annotations, this baseline 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence that is front-loaded with the main action and includes a critical safety caveat. It wastes no words and has a clear structure. Perfect length for the information it conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has six parameters, an output schema, and no parameter descriptions. The description is minimal and does not explain return format (though output schema exists), paging/limits, depth control, or platform/distro specifics. The description is adequate for basic selection but insufficient for correct invocation without additional inference. Sibling tools like fs_list or shell_run span a complex ecosystem, and this description does not provide enough guidance on how to use parameters effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for parameter meaning. The description mentions 'root', 'search file and directory names', and 'query', but does not explicitly tie these to specific parameters like 'path', 'query', 'platform', 'distro', 'max_depth', or 'limit'. With six parameters and zero schema descriptions, the tool clearly fails to help the agent understand parameter semantics. The description only implies a search term and root path, leaving the rest unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb+resource structure ('Search file and directory names under a root'), specifies the scope ('names under a root'), and includes a crucial exclusion ('never searches or returns secret-bearing content snippets'). It distinguishes itself from sibling read tools like fs_read and fs_list by focusing on path-name search. However, it does not explicitly name a sibling alternative, so it doesn't fully differentiate from similar search-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use cases for searching file/directory names without returning content, which is a clear context but not explicit guidance on when to use this tool versus alternatives like fs_list or fs_find. No when-not-to-use or alternative tool names are provided. The 'never searches content' clarification hints at a distinguishing use case but does not provide full usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fs_statBRead-onlyIdempotent
Resolve and stat an absolute Windows or WSL path without returning file content.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| distro | No | ||
| platform | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety (readOnlyHint=true, destructiveHint=false, idempotentHint=true) but description adds limited detail about metadata only, no filesystem side-effect details, permission/error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, concise, no redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, but description does not explain return values; sibling tools of file listing/existence; contextual invocation for stat metadata may be sufficient. Missing content read vs lstat details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema parameters have no descriptions; description adds no meaning. schema_description_coverage is 0%, so tool relies on parameter names 'platform', 'path', 'distro' only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific action 'resolve' with target 'absolute Windows or WSL path without returning content'. Tool name 'fs_stat' suggests stat-like behavior. Distinguishes from siblings by stating no file content returned, but no explicit sibling comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied context: use to check path type/existence/metadata without reading content. No explicit when-vs alternatives, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shell_runADestructive
Run a command in the always-enabled WSL bubblewrap snapshot. Host homes and Windows mounts are hidden; network is enabled.
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | ||
| timeout_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive and non-read-only. The description adds useful behavioral context by disclosing filesystem isolation and network availability, which is directly relevant for working with commands.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences convey purpose and key environment traits without any fluff. The most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a command-execution tool with an output schema and robust annotations, the description captures core environment details (isolation, network) that affect command behavior. It doesn't discuss destructive potential, but annotations already signal that. Overall, sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain the 'command' or 'timeout_seconds' parameters at all. The description adds no parameter-level meaning, even though it has the burden to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs a command in the WSL bubblewrap snapshot, using a specific verb and resource. It distinguishes itself from siblings like windows_shell_run by specifying the WSL environment and notes key behaviors (host homes/windows mounts hidden, network enabled).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives like windows_shell_run. Usage is only implied by the tool name and environment description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_healthARead-onlyIdempotent
Report gateway capabilities and whether enhanced post-secret protections are active.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate read-only, idempotent, non-destructive behavior, so the description's job is simpler. It adds specific context by mentioning 'enhanced post-secret protections', which indicates the health check includes security-related status. There is no contradiction, and it helps the agent understand the focus of the report.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, succinct sentence that front-loads the core purpose. It is concise with no redundant information, and every word adds value in communicating what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (zero parameters) and the richness of annotations, the description is sufficient. It explains the purpose and key focus areas. The output schema exists, so return values are documented separately. No significant gaps are present for this straightforward health check.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so parameter semantics are not applicable. The description doesn't need to explain parameters, and with no parameters, a baseline of 4 is appropriate since there is no confusion about inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reports gateway capabilities and whether enhanced post-secret protections are active. It uses specific verbs ('report') and resources ('gateway capabilities'), and while it is not explicitly contrasted with siblings, the subject matter is distinct from the listed sibling tools which deal with files, workspaces, and shells.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool is for checking system health or status, but it does not provide explicit guidance on when to use it versus other tools like workspace_status or windows_shell_status. There is no mention of exclusions or alternatives, though the purpose is clear enough for an agent to infer usage in a health-check context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
windows_shell_closeA
Immediately revoke Windows Shell authorization, invalidate reviews, and terminate the active Windows command tree.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=false, but the description says 'Immediately revoke... invalidate... terminate', which suggests destructive actions. However, the description does not contradict the annotations directly; it adds context about what happens (revoke, invalidate, terminate). Since annotations are present, the description adds some value by specifying the exact effects, but it could be more explicit about side effects like whether it is reversible or requires confirmation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise, and front-loaded with the action. It covers the key effects without unnecessary words. It earns a high score for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema exists, the description is fairly complete. However, it does not mention what the output or return value is, but the output schema likely covers that. It also does not mention any prerequisites or side effects beyond the listed actions, which could be important for a close operation. Overall, it is adequate but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema description coverage is 100% (vacuously). The description does not need to explain parameters, and the baseline for zero parameters is 4. The description adds no parameter info, but that is acceptable given no parameters exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: revoke Windows Shell authorization, invalidate reviews, and terminate the active command tree. It uses specific verbs and resources, and it distinguishes from siblings like windows_shell_status and windows_shell_open by indicating a closing/termination action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when the user wants to close the Windows Shell session, but it does not explicitly state when to use it versus alternatives like windows_shell_close vs workspace_close. It lacks explicit exclusions or alternative tool references, but the context of 'close' is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
windows_shell_openA
Request one local approval for persistent Windows Shell authorization. It survives restarts until windows_shell_close; duration_seconds is legacy compatibility.
| Name | Required | Description | Default |
|---|---|---|---|
| purpose | Yes | ||
| duration_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide readOnlyHint=false, openWorldHint=false, etc., but no detailed behavioral traits. The description adds important behavior: the approval survives restarts until windows_shell_close, and notes that duration_seconds is legacy compatibility. This goes beyond the basic annotations and helps the agent understand persistence and parameter deprecation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the core action, persistence, and a parameter caveat. It is front-loaded with the primary purpose, and every clause adds value. No filler words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this tool has a clear purpose, an output schema (which likely documents the result), and only two simple parameters, the description covers the main behavioral points. However, the purpose parameter is left unexplained, and there is no mention of what constitutes 'approval' or how it is handled. The description is adequate but not fully complete for a tool that triggers a user-approval flow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides only minimal parameter context: it mentions that duration_seconds is legacy compatibility, but does not explain the purpose parameter or its expected content. The purpose parameter is required but unexplained, leaving the agent to guess what information to provide. The description adds some value for duration_seconds but fails for purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Request one local approval for persistent Windows Shell authorization') and specifies the scope (persistent across restarts until closed). It distinguishes this from related tools like windows_shell_prepare, windows_shell_run, and windows_shell_close by focusing on the authorization/approval step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains when the tool is used (to request approval before shell operations, and that it persists until close), but does not provide explicit guidance on when NOT to use it or which alternative (e.g., windows_shell_prepare) might be preferred. The context of 'one local approval' implies a prerequisite step, but comparisons are not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
windows_shell_prepareARead-onlyIdempotent
Statically parse and bind one PowerShell or direct native command to cwd, target, purpose, risk, environment, and timeout; does not execute it.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | Yes | ||
| shell | Yes | ||
| target | Yes | ||
| command | No | ||
| purpose | Yes | ||
| arguments | No | ||
| executable | No | ||
| timeout_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and non-destructive behavior. The description reinforces this by stating it does not execute, and adds that parsing is static, suggesting no side effects. This is sufficient given the existing annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the core action (parse and bind) and its non-execution aspect. It is efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While it explains the main purpose, it does not describe the output of the preparation, how the bound command is used later, or interactions with other tools. Given the tool's complexity and unknown output schema, the description is only partially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions several parameters (cwd, target, purpose, timeout) but omits others (shell, command, arguments, executable). It also references 'risk' and 'environment' which are not in the schema, causing ambiguity. Parameter meanings are not fully explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: it statically parses and binds a PowerShell or native command to specified parameters, and explicitly notes it does not execute. This distinguishes it from execution tools like shell_run.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for preparation without execution, but does not explicitly state when to choose this tool over alternatives. It lacks direct guidance on scenarios where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
windows_shell_runADestructive
Consume one prepared review token and run exactly the reviewed standard-user command; non-safe commands require local confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| review_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, which signals mutation and risk. The description adds that it runs standard-user commands and that non-safe commands require local confirmation, which is useful beyond annotations. It also implies a warning about consuming a token. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that conveys purpose, constraints, and safety requirement. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and an output schema, the description provides the essential context: it's a gated execution tool. It doesn't explain what the output looks like, but the output schema likely covers that. The description could mention what happens on failure or how to obtain a review_id, but that might be covered by sibling tools like 'windows_shell_prepare'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage of 0%, the description must explain the parameter. It mentions 'review token' and 'review_id' but doesn't explicitly map 'review_id' to the token. The connection is implied but could be clearer. The description adds meaning (what a valid review_id is), but not fully explicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: consume a review token and run a reviewed standard-user command. It distinguishes itself from 'shell_run' by specifying it uses a prepared review token and requires confirmation for non-safe commands, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: use when you have a prepared review token and want to execute a reviewed command. It contrasts with 'windows_shell_prepare' (which produces the token) and 'shell_run' (likely a less safe variant), but doesn't explicitly say when not to use it or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
windows_shell_statusARead-onlyIdempotent
Report PowerShell 7, standard-user, Job Object, authorization, workspace, and policy status without executing a command.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is known. The description adds the list of specific status categories and the fact it doesn't execute commands, which adds some behavioral context beyond annotations but doesn't elaborate on output format or side effects (none expected). With annotations covering the core behavioral traits, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, succinct sentence that front-loads the verb 'Report' and then lists the specific items. Every word contributes value, with no fluff or repetition, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (0 params), has rich annotations covering safety, and an output schema exists. The description lists exactly what statuses are reported, covering all relevant aspects for such a status tool. No additional context is needed given the low complexity and structured annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so schema coverage is 100% by default. The description correctly omits parameter details. Baseline for 0-parameter tools is 4, and the description doesn't attempt to fabricate unnecessary parameter explanations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it reports status (PowerShell 7, standard-user, Job Object, authorization, workspace, policy) and explicitly says 'without executing a command', distinguishing it from siblings like shell_run or windows_shell_run. This is a specific verb-resource pair that leaves no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance is given, but the phrase 'without executing a command' informs agents that this is a safe, non-executing status check. Siblings like shell_run and windows_shell_run imply alternatives, but no direct comparison or exclusions are stated. The usage context is inferred rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workspace_apply_backADestructive
After diff review and local confirmation, conflict-check and apply only reviewed paths to the original repository.
| Name | Required | Description | Default |
|---|---|---|---|
| purpose | Yes | ||
| review_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, and the description aligns by stating 'apply ... to the original repository,' implying modifications. The description adds the 'conflict-check' step, which is useful behavioral context. However, it doesn't detail what happens on conflict or whether the operation is reversible. With destructiveHint already set, the description adds some value but not extensive detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded with the action. It provides the key context in a short string, which is efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (though not provided in detail), and the annotations include destructiveHint. The description covers the main purpose and usage step. Given the simple parameters and clear purpose, it is mostly complete. However, it could benefit from explaining the output or side effects more, but with output schema present, that burden is reduced.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the description must compensate. The description names 'review_id' and 'purpose' indirectly? Actually, it mentions 'reviewed paths' and 'diff review' but does not explicitly map to 'review_id' or 'purpose'. It doesn't explain how 'purpose' is used or what values it takes. Since there are only 2 params, a good description could easily explain them, but this one does not. Baseline is low because coverage is 0%, and the description adds minimal param semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('apply back') and the resource ('reviewed paths to the original repository'). It specifies the operation is about applying previously reviewed changes after diff review and local confirmation, which distinguishes it from generic apply tools. However, it doesn't explicitly differentiate from sibling tools like workspace_diff or workspace_status, though the focus on applying back is distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage context: 'After diff review and local confirmation, conflict-check and apply only reviewed paths to the original repository.' This indicates when to use the tool (after diff review) and what it does (conflict-check and apply). It doesn't explicitly mention alternatives or when not to use it, but the context is clear enough for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workspace_closeADestructive
Remove the active local snapshot. Unapplied changes require an explicit discard flag and local confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| discard_unapplied | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark the tool as destructive (destructiveHint: true), but the description adds valuable behavioral context by noting that unapplied changes require an explicit discard flag and local confirmation. This goes beyond what the annotations provide and helps the agent understand the safety mechanism and prerequisite for destructive action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action. The second sentence adds essential conditional behavior without verbosity. Every word contributes to clarity, and it is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 optional parameter, output schema exists), the description is complete. It covers the main action, the destructive nature, the parameter's purpose, and the confirmation requirement. There are no ambiguous aspects or missing behavioral details that the agent would need to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has only one parameter (discard_unapplied) with no coverage from the schema description (0%). The description fully compensates by explaining that unapplied changes need this flag, directly linking the parameter to its purpose. This gives the agent a clear understanding of when to set it to true.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Remove the active local snapshot.' It uses a specific verb and resource, and it is easily distinguished from sibling tools like workspace_open, workspace_status, or workspace_diff, which have different purposes. The mention of unapplied changes and discard flags further clarifies the scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when the discard flag is required (for unapplied changes), which provides clear context on how to handle a common scenario. It does not explicitly name alternative tools or state when not to use it, but the purpose is evident from the tool name and description, and the guidance on unapplied changes covers the main usage nuance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workspace_diffARead-onlyIdempotent
Return a redacted managed-file diff; Git-ignored runtime outputs are listed but never reviewed or applied.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive aspects. The description adds behavioral details such as redaction and that Git-ignored outputs are listed but not reviewed or applied, which goes beyond the annotations. It could be more specific about what 'redacted' entailed, but it's still informative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that conveys all essential information without redundancy. It is well-structured and direct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters), the existing output schema, and comprehensive annotations, the description covers all required aspects. It explains the core functionality and key behaviors, making it complete for an agent to decide and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since the tool has zero parameters, the schema fully covers them (100% coverage). Per the guidelines, when coverage is high, the baseline score is 3 even without parameter-specific descriptions. No additional parameter info is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a diff of managed files, and specifies the redaction and handling of Git-ignored outputs. This distinguishes it from sibling tools like workspace_apply (which applies changes) and workspace_status (which shows status).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by describing what the tool does and its limitations (lists but never applies Git-ignored outputs), but it does not explicitly contrast with alternatives or provide when-to-use scenarios. However, the conditions are reasonably clear from the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workspace_openA
Open one repository snapshot with executor='wsl' or executor='windows'; the original remains read-only until reviewed apply-back.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| distro | No | ||
| executor | No | wsl | |
| platform | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds crucial behavioral context beyond annotations: the original remains read-only until reviewed apply-back, indicating that opening a snapshot does not modify the original. This is not captured in annotations (readOnlyHint=false) and helps the agent understand side effects. It does not discuss other traits like auth or rate limits, but the added detail is significant.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, focused sentence that front-loads the verb and resource, then provides the executor qualification and the read-only note. No superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description need not explain return values. It conveys the core operation and an important workflow constraint. It could mention prerequisites or follow-up actions (e.g., apply-back or close), but it is sufficient for a well-scoped tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate. It clarifies the executor parameter values ('wsl' or 'windows') and implies platform, but does not explain 'path' or 'distro'. This partial coverage of the four parameters is helpful but leaves gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (open one repository snapshot) and specifies two permitted executor values ('wsl' or 'windows'). It differentiates from siblings like workspace_apply_back and workspace_close by describing the snapshot-opening role in the workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by mentioning the snapshot execution context and the original's read-only status until apply-back, but it does not explicitly state when to use this tool vs. alternatives or when not to use it. The context is clear but not prescriptive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workspace_statusARead-onlyIdempotent
Report managed changes and separately list Git-ignored runtime outputs, without file content.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and idempotent behavior. The description adds meaningful detail by specifying that it excludes file content and separately lists ignored outputs, providing extra behavioral transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words. It efficiently conveys the tool's purpose and key limitation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has no parameters and an output schema exists, the description adequately explains the tool's function and output scope. It is complete for a status tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so the description need not explain them. The baseline of 4 applies, and no additional parameter information is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reports managed changes and separately lists Git-ignored runtime outputs, providing a specific action and resource. This distinguishes it from sibling tools like workspace_diff or workspace_apply_back.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for status checking but does not explicitly state when to use it over alternatives or mention sibling tools. It provides some context (excluding file content) but lacks explicit when-to-use/when-not-to-use guidance.
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. Dates show when Glama detected each change.
18 tool updates
v0.2.1- First observed
fs_inspect - First observed
fs_list - First observed
fs_read - First observed
fs_release - First observed
fs_search_paths - First observed
fs_stat - First observed
shell_run - First observed
system_health - First observed
windows_shell_close - First observed
windows_shell_open - First observed
windows_shell_prepare - First observed
windows_shell_run - First observed
windows_shell_status - First observed
workspace_apply_back - First observed
workspace_close - First observed
workspace_diff - First observed
workspace_open - First observed
workspace_status
TDQS
Each tool has a clearly distinct purpose. The fs_* tools handle file inspection/reading, workspace_* manage snapshots and changes, and windows_shell_* handle Windows shell operations, with shell_run specifically for WSL. No overlapping or ambiguous tools.
Most tools follow a verb_noun pattern with consistent prefixes (fs_, workspace_, windows_shell_). The only outlier is 'system_health' which is noun-based, but it's a single tool and doesn't create confusion.
With 18 tools, the set is well-balanced for a coding agent. It covers file system, workspace management, shell execution, and system health without being overly bloated or insufficient.
The toolset covers read/inspect operations, workspace management, and shell execution, but lacks a direct file write/edit tool. This is a minor gap, as editing could be performed via shell commands, but it's not explicitly provided.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceLocal MCP server bridging ChatGPT Web to local tools for file, shell, git, test, and process management with secure policy controls.MIT
- AlicenseNot gradedqualityAmaintenanceEnables ChatGPT to inspect and edit local projects through a secure MCP interface, offering workspace management, file operations, git integration, and safe command execution.4MIT
- AlicenseAqualityBmaintenanceEnables ChatGPT web to use local tools like file reading, command execution, and patch application through an MCP server over OpenAI Secure MCP Tunnel.61MIT
- FlicenseNot gradedqualityBmaintenanceEnables ChatGPT Web to securely access local files and run commands via MCP, with optional OpenCode agent mode for autonomous tasks.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/everlastingQAQ/chatgpt-local-coding-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server