Skip to main content
Glama
LJLCarrien

Local Ops MCP

by LJLCarrien

Local Ops MCP

一个轻量、零运行时依赖的本地 MCP 服务。它允许 ChatGPT 或 Codex 在一个明确授权的工作区内管理文件和本地 Git 仓库,同时由服务端阻止路径越界。

本项目是个人参考实现,不是 OpenAI 官方产品,也没有经过独立的专业安全审计。请勿直接用于生产环境或关键数据;使用者负责限制工作区权限、备份数据、保护凭据并审查写入与远程 Git 操作。

ChatGPT / Codex
       ↓ MCP
Local Ops MCP
       ↓ 路径边界检查
指定的本地项目目录

文档

第一次使用,建议从中文文档导航开始:

公开文档只使用占位路径和示例编号。发布截图或日志前,仍需检查 Runtime API Key、真实 Tunnel ID、本机用户名和私人项目路径。

Related MCP server: Softority MCP Server

环境要求

  • Node.js 20 或更高版本

  • 使用 ChatGPT 或 Codex;其他客户端尚未在本项目中验证

  • 使用 Hosted Chat 时需要 OpenAI Secure MCP Tunnel 与官方 tunnel-client

使用 ChatGPT Hosted Chat 接入时还需要 ChatGPT 开发者模式。根据 OpenAI 官方开发者模式文档,该功能目前在网页版向 Pro、Plus、Business、Enterprise 和 Education 账户开放;免费账户不在官方列出的适用范围内。开始配置前,请先确认自己的账户能够在“设置 → 安全与登录”中启用开发者模式。ChatGPT 套餐权限与 OpenAI Platform 的 API/Tunnel 权限是两套独立条件,具备其中一项不代表自动具备另一项。

可用工具

  • 浏览:list_directoryread_file

  • 写入:write_filecreate_directory

  • 整理:copy_filemove_filerename_file

  • 删除:delete_filedelete_directory

  • Git 只读:git_statusgit_diff_unstagedgit_diff_stagedgit_loggit_showgit_branch

  • Git 写入:git_addgit_commitgit_amend_message

  • Git 远程:git_fetchgit_pullgit_push(默认关闭,需显式启用)

测试

npm test

Git 支持

Git 必须已经安装并位于 PATH。仓库路径使用工作区相对路径,解析后的仓库必须位于 LOCAL_OPS_ROOT 下。

git_add 必须传入明确的仓库相对路径列表,git_commit 只提交已经暂存的修改。git_amend_message 只修改最近一次本地提交的信息,不会把暂存区或工作区修改并入该提交;它会改写最近一次提交,应仅在确认尚未推送或明确需要改写历史时使用。不开放 checkout、reset、删除分支、强制推送、删除远程分支、任意 Git 参数或通用 Shell。

远程工具使用仓库中已有的 remote,以及电脑现有的 Git Credential Manager 或 SSH 凭据,不接受凭据作为工具输入。git_pull 始终使用 --ff-onlygit_push 只把 HEAD 通过非强制 refspec 推送到当前分支的 upstream。允许网络 URL 和 LOCAL_OPS_ROOT 内的本地 remote,拒绝根目录之外的本地 remote。

本地 Git 命令默认超时 30 秒,远程命令默认超时 60 秒。可通过 LOCAL_OPS_GIT_TIMEOUT_MSLOCAL_OPS_GIT_REMOTE_TIMEOUT_MS 调整;命令输出与文件读取共同遵守 LOCAL_OPS_MAX_BYTES 上限。

Git 开关

环境变量

默认值

控制范围

LOCAL_OPS_GIT_READ

true

status、diff、log、show、branch

LOCAL_OPS_GIT_WRITE

true

add、commit、amend message

LOCAL_OPS_GIT_REMOTE

false

所有远程工具的总开关

LOCAL_OPS_GIT_FETCH

true

总开关启用后的 fetch

LOCAL_OPS_GIT_PULL

false

总开关启用后的仅快进 pull

LOCAL_OPS_GIT_PUSH

false

总开关启用后的当前分支 push

关闭的工具不会出现在 MCP tools/list 中,直接调用也会被拒绝。布尔值支持 true/false1/0yes/noon/off

修改开关后,先重启 Local Ops Tunnel;服务端安全策略会立即生效。若工具增减后 ChatGPT 仍显示旧清单,先在连接器详情页刷新应用以重新拉取工具描述和清单;若当前界面没有刷新入口或刷新后实测仍未更新,再删除旧的 Local Ops 自定义连接器,并保持原 Tunnel 运行、使用原 Tunnel ID 重新创建。后者是本项目的故障兜底经验,不是平台保证。这里不需要删除 OpenAI Platform 中的 Tunnel,也不需要重新初始化本机 tunnel-client Profile。

安全边界

  • 所有路径都必须位于 LOCAL_OPS_ROOT 下;拒绝 .. 越界和符号链接越界;

  • 除非明确设置 overwrite=true,否则不会覆盖已有文件;

  • expected_sha256 可以防止覆盖读取后又被其他程序修改的文件;

  • 删除非空目录必须明确设置 recursive=true,且工作区根目录永远不能被删除;

  • 移动和重命名不会替换已存在的目标;

  • 文件默认限制为 2 MiB,可通过 LOCAL_OPS_MAX_BYTES 调整;

  • 不暴露通用 Shell 或管理员工具;Git 使用固定参数数组启动,不经过 Shell,远程工具默认关闭;

  • 协议日志写入 stderr,stdout 只用于 MCP JSON-RPC 消息。

通过 Secure MCP Tunnel 连接 Hosted Chat

Hosted Chat 无法直接启动本机 STDIO 进程。OpenAI Secure MCP Tunnel 可以把 ChatGPT 的工具调用转发到本机,同时不需要开放入站防火墙端口。

Windows 快速开始

  1. 准备 Node.js 20、一个明确授权的本地项目目录,以及官方 tunnel-client

  2. 在 OpenAI Platform 创建 Tunnel,为它选择目标 ChatGPT workspace,并创建具备 Tunnels Read + Use 权限的 Runtime API Key。

  3. 双击仓库根目录的 Local-Ops.bat,选择 1. First-time setup 完成首次配置。

  4. 再选择 2. Start Tunnel 并保持窗口开启。

  5. 在 ChatGPT 开发者模式中创建 Tunnel 连接的应用,从“可用隧道”列表选择对应 Tunnel,然后先执行一次只读目录测试。

tunnel-client 是 OpenAI Secure MCP Tunnel 的官方传输客户端;本仓库的 server.mjs 才是提供受限文件工具的 MCP 服务端。二者配套使用,不能互相替代。仓库不再分发或跟踪官方客户端二进制文件。

后续细节按场景查阅,避免在多份文档中维护同一套操作规则:

配置与密钥

  • config/local-ops.example.psd1:可提交的脱敏模板;

  • config/local-ops.psd1:每台电脑单独生成的真实配置,已被 Git 忽略;

  • Runtime API Key:不保存在仓库中,脚本需要时临时询问;

  • .mcp.json:本地插件入口,安装前应确认 LOCAL_OPS_ROOT 指向预期工作区。

不要为了方便把工作区设为整个磁盘、用户主目录或系统目录。推荐一个 Local Ops 实例只授权一个明确项目。

开源与安全

本项目在设计、编码和文档编写过程中使用了 AI 编程工具辅助。维护者会检查改动并运行自动测试,但自动测试不等于安全审计。

Available Tools

18 tools
copy_fileA
Destructive

Copy a regular file within the configured workspace root. Existing destinations require overwrite=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesWorkspace-relative source file path
overwriteNo
destinationYesWorkspace-relative destination file path; parent directory must exist

TDQS

A4.5/5.0
Behavior4/5

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

Beyond the destructiveHint annotation, the description explains the exact overwrite condition: existing destinations are not overwritten unless overwrite=true. This gives the agent concrete knowledge about when the destructive behavior occurs, though it does not describe error behavior 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 short sentences with no filler. The core action is front-loaded, and the critical overwrite constraint is stated immediately after, making the definition easy to parse and act on.

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?

For a tool of this complexity, the description plus schema and annotations are sufficient for correct invocation. The agent knows what the tool does, the scope, the required parameters, and the only non-obvious behavior (overwrite gating). No output schema is needed to make the call correctly.

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 already documents source and destination including workspace-relative paths and the parent directory requirement. The description compensates for the undocumented overwrite parameter by clarifying that it is required when the destination already exists, giving the agent the missing semantic context.

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 uses a specific verb and resource, 'Copy a regular file', and scopes the operation to the configured workspace root. This clearly differentiates it from sibling tools like move_file, rename_file, and delete_file because copying preserves the original and is restricted to regular files.

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 states a clear use context: copying regular files inside the workspace. It also provides a key prerequisite/condition: existing destinations require overwrite=true. It stops short of a 5 because it does not explicitly name alternatives such as move_file or rename_file for related operations.

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

create_directoryA

Create a directory below the configured workspace root. Set recursive=true to also create missing parent directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesWorkspace-relative directory path
recursiveNoAlso create missing parent directories

TDQS

A4.3/5.0
Behavior4/5

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

The description adds useful behavioral boundaries beyond the annotations: the directory is always created below the workspace root, and parent-directory creation only happens when recursive=true. This gives the agent a meaningful safety model for where the operation takes effect.

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 short sentences deliver the core purpose, the scope constraint, and the key option. Every word earns its place without repetition or padding.

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?

For a two-parameter creation tool with full schema coverage and no output schema, the description is sufficient. It tells the agent what is created, where it is created, and how to enable recursive creation; nothing essential is missing.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents both path and recursive. The description reinforces the recursive behavior in prose, but it adds no substantive meaning beyond the schema definitions, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states a specific action ('Create a directory') and a resource ('below the configured workspace root'), which distinguishes it from sibling file and git tools. Unlike names like 'process', 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 gives clear context: this creates a directory, and 'recursive=true' handles missing parents. It does not explicitly name alternatives or exclusion conditions, but the sibling list makes the intended use apparent and no other sibling overlaps with this operation.

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

delete_directoryA
Destructive

Delete a directory below the configured workspace root. Non-empty directories require recursive=true. The workspace root itself can never be deleted.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesWorkspace-relative directory path
recursiveNoDelete the directory and all of its contents

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already mark the tool as destructive, so the description adds value by spelling out the two key behavioral constraints: non-empty directories need recursive=true, and the root can never be deleted. It does not contradict the annotations and gives the agent the safety-relevant details it needs.

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 short sentences with no filler. The core delete action and scope come first, followed by the single most important usage condition, so an agent gets the critical information immediately.

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?

For a simple destructive directory tool, this description is complete: it states what is deleted, the path scope, the recursion requirement, and an absolute safety exclusion. With annotations covering the destructive nature and the schema fully documenting parameters, an agent has everything required to invoke it correctly.

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 100%, with both parameters already described. The description enhances this by attaching a condition to `recursive` (required for non-empty directories) and reinforcing that `path` is interpreted relative to the workspace root, which is behavior the schema alone doesn't fully convey.

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 action and resource ('Delete a directory'), defines the exact scope ('below the configured workspace root'), and clarifies the one condition that changes behavior (recursive on non-empty directories). This makes it clearly distinct from sibling delete_file and other workspace 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 provides actionable usage conditions: non-empty directories require recursive=true, and the workspace root is permanently excluded from deletion. It stops short of explicitly naming alternatives such as delete_file for files, but the resource type and conditions make the appropriate context clear.

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

delete_fileA
Destructive

Delete a regular file below the configured workspace root.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesWorkspace-relative file path

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=true, so the destructive nature is known. The description adds the workspace-root boundary and regular-file restriction, which is useful, but it does not disclose whether deletion is permanent, what happens on non-existent paths, or how directory paths are handled.

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, front-loaded sentence with no filler. Every word contributes meaning: delete, regular file, configured workspace root.

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 one-parameter destructive tool, the description plus annotations and schema provide enough to call it correctly: target type, scope boundary, and destructive intent. It lacks explicit failure-mode or irreversibility notes, but these are largely covered by the annotation and the tool's simplicity.

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

Parameters3/5

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

Schema description coverage is 100% and the single `path` parameter is already described as 'Workspace-relative file path'. The description reinforces 'below the configured workspace root' but adds little semantic detail beyond the schema.

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 the specific verb 'Delete' and resource 'a regular file', with the bound 'below the configured workspace root'. It also distinguishes itself from delete_directory by specifying 'regular file' rather than directories.

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 intended use is implied by 'regular file', which suggests this tool is for files and not directories, but the description does not explicitly name alternatives like delete_directory or state when not to use it. The scope is clear, but routing between siblings is left to inference.

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

git_addA

Stage an explicit list of repository-relative files. Arbitrary Git options are not accepted.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYes
repo_pathNoWorkspace-relative repository path; defaults to .

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate this is not read-only and not destructive. The description adds that only explicit files are staged and flags are disallowed, which is useful context but does not disclose behavior like index state changes, error handling, or interaction with untracked files.

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 no filler. The core action is front-loaded, and the important limitation on Git options is stated in a single follow-up sentence.

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 two-parameter tool with annotations covering safety and an output schema absent, the description plus input schema provides enough for correct invocation. Minor missing context like default staging behavior or success response is not critical for this operation.

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

Parameters3/5

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

Schema description coverage is 50%; the 'files' parameter lacks a description in the schema, but the tool description clarifies that paths must be repository-relative. The repo_path parameter is already described in the schema, so the description adds partial but not complete parameter-level meaning.

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

Purpose5/5

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

Description uses a specific verb ('Stage') and resource ('explicit list of repository-relative files'), clearly distinguishing this tool from siblings like git_status or git_commit. It also adds a scope constraint, making its purpose unambiguous.

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 states that only an explicit file list is accepted and that arbitrary Git options are not allowed, giving clear input-shape guidance. It does not explicitly name alternative tools or exclusion conditions, but no other sibling provides staging functionality, so the guidance is sufficient.

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

git_amend_messageA
Destructive

Rewrite only the most recent local commit message without including staged or working-tree changes. This rewrites local history and does not contact a remote.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYes
repo_pathNoWorkspace-relative repository path; defaults to .

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already mark this as destructive and non-read-only. The description adds meaningful behavioral detail: it rewrites local history, affects only the message, excludes staged and working-tree changes, and does not contact a remote. This is strong supplementary context beyond the annotations.

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 front-load the core purpose and scope. Every clause adds useful information: what is rewritten, what is excluded, that history is rewritten locally, and that no remote is contacted.

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 tool with no output schema, the description covers the key facts needed to invoke it correctly: the scope, the exclusion of staged and working-tree changes, and the local-only behavior. It is nearly complete, though it could briefly note that the commit's hash will change as a result of rewriting history.

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

Parameters3/5

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

The schema documents repo_path and its default, but the required message parameter has no schema description. The tool description clarifies that the message is the rewritten commit message, which adds some meaning, but it does not fully compensate for the schema's omission of message 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 names a specific verb and resource: rewriting only the most recent local commit message. It also explicitly excludes staged and working-tree changes, which sharply distinguishes it from related commit tools like git_commit.

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 clearly indicates when to use this tool: to change only the latest local commit message without including other changes. It also states the operation does not contact a remote, giving useful context, though it does not explicitly name alternative tools or when-not-to-use conditions.

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

git_branchA
Read-only

List local, remote, or all Git branches.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathNoWorkspace-relative repository path; defaults to .
branch_typeNolocal

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the scoping behavior (local/remote/all) but does not disclose potential remote network access or output format. With annotations carrying the safety burden, this is adequate but minimal.

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 zero filler. 'List local, remote, or all Git branches' efficiently conveys purpose and parameter scope in just six words.

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 read-only tool with two optional parameters, one enum, and an existing safety annotation, the description plus schema is largely sufficient. The only notable omission is the lack of any output format hint, though a branch-list result is fairly intuitive. No explicit default behavior is stated, but the schema covers the 'local' default.

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 description explicitly names the branch_type enum values ('local, remote, or all'), adding meaning to the undocumented branch_type parameter. The repo_path parameter is already described in the schema, so the description's main added value is clarifying the branch_type 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 states a specific verb ('List') and a clear resource ('Git branches'), and explicitly names the three scope options: local, remote, or all. This unambiguously distinguishes the tool from sibling git tools like git_status or git_log, none of which list branches.

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 clearly signals when to use this tool: any time branches need to be listed. Because no sibling tool performs branch listing, exclusion guidance is unnecessary. It does not explicitly describe when not to use it, but the unique resource makes the context clear.

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

git_commitA

Create a local Git commit from already staged changes. This does not stage files or contact a remote.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYes
repo_pathNoWorkspace-relative repository path; defaults to .

TDQS

A4.2/5.0
Behavior4/5

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

The description adds meaningful behavioral context beyond the readOnlyHint=false and destructiveHint=false annotations: it is local, operates only on staged content, and has no remote interaction. It does not list failure conditions such as missing staged changes or Git user configuration, but the core behavioral boundaries are disclosed.

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 tight sentences with no filler. The main purpose is front-loaded, and the exclusions are stated immediately afterward, making the tool behavior easy to parse quickly.

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 relatively simple commit tool, the description covers the essential preconditions and boundaries: staged changes, local-only, no remote interaction. It does not describe the return value or commit hash, but this is a minor gap for a straightforward operation.

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

Parameters3/5

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

Schema description coverage is 50%: repo_path is described in the schema, but message has only length constraints and no semantic description. The tool description does not explain the message parameter or add meaning beyond its name, so the agent must infer that it is the commit message.

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

Purpose5/5

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

The description clearly states the verb ('Create'), the resource ('local Git commit'), and the precondition ('already staged changes'). It also distinguishes itself from staging and remote operations, so an agent can tell it apart from sibling tools like git_add without opening schemas.

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 explicitly says the tool works on already staged changes and does not stage files or contact a remote, which provides clear usage context. It does not explicitly name git_add as the staging alternative, so the agent must infer that relationship, but the guidance is still strong.

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

git_diff_stagedA
Read-only

Show staged Git changes for a repository below the configured workspace root.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathNoWorkspace-relative repository path; defaults to .

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe read-only nature is established without the description. The description adds the workspace-root boundary, which is useful behavioral context, but it does not describe the output format or behavior when no changes are staged. With annotations covering the safety profile, a score of 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.

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It states the operation, the resource, and the scope constraint compactly, making it easy for an agent to parse quickly.

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?

For a simple read-only tool with one optional parameter, the description is complete: it specifies what is shown, where it applies, and how the path is interpreted. No output schema exists, but the standard nature of a staged Git diff means the return behavior is well understood. Annotations cover the safety profile, and no critical usage detail is missing.

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

Parameters3/5

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

Schema description coverage is 100% and the sole parameter repo_path is already documented as 'Workspace-relative repository path; defaults to .' The description reinforces the workspace-relative concept but does not add meaning beyond what the schema already provides, so the baseline 3 applies.

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 uses a specific verb ('Show') and a specific resource ('staged Git changes') and clearly distinguishes this tool from its sibling git_diff_unstaged by the 'staged' qualifier. The phrase 'for a repository below the configured workspace root' also adds scoping clarity.

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 makes the tool's scope clear: it operates on staged changes rather than unstaged ones, which is the key selection signal among the sibling diff tools. It does not explicitly name alternatives or state when not to use it, but for a simple diff utility the context is sufficiently clear.

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

git_diff_unstagedA
Read-only

Show unstaged Git changes for a repository below the configured workspace root.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathNoWorkspace-relative repository path; defaults to .

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to restate safety. It adds the workspace-root scoping constraint, which is useful, but it does not describe output format, whether untracked files are included, or behavior when no changes exist.

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 sentence with no wasted words. The core action and object are front-loaded, and the scoping constraint is expressed efficiently.

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 read-only tool with one optional parameter and a complete schema, the description is nearly sufficient. It does not explicitly route to git_diff_staged or clarify untracked-file behavior, but annotations and schema cover the main safety and parameter needs.

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 100% and the schema already documents repo_path as workspace-relative with a default of '.'. The description adds a subtle but meaningful constraint: the repository must be below the configured workspace root, which enriches the parameter's intended value.

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 states a specific action ('Show') and a specific resource ('unstaged Git changes'), which clearly identifies what the tool does. 'Unstaged' implicitly distinguishes it from the sibling git_diff_staged, but the sibling is not named explicitly.

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 phrase 'for a repository below the configured workspace root' gives a clear scope constraint, but there is no explicit guidance about when to choose this tool over git_diff_staged or git_status. Usage context is implied by 'unstaged' rather than spelled out.

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

git_logA
Read-only

Show recent Git commits for a repository below the configured workspace root.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_countNo
repo_pathNoWorkspace-relative repository path; defaults to .

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the workspace-root scoping constraint, but does not disclose ordering, pagination, or output format, which would add further 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?

A single sentence with no filler; the primary action and object are front-loaded, and the workspace-root constraint is stated concisely. Every word earns its place.

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 read-only list tool with two optional parameters, the description, schema, and annotations together are largely sufficient. No output schema exists, so the description could have specified return fields, but 'show recent commits' implies the output type and the missing detail is not critical for correct invocation.

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

Parameters3/5

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

Schema description coverage is 50%: repo_path has a description, while max_count does not. The tool description adds no parameter-level meaning beyond the schema, though max_count's name plus default/min/max constraints make it reasonably self-explanatory.

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 uses a specific verb ('Show') and resource ('recent Git commits'), clearly indicating the tool's function. It is distinguishable from sibling git tools by its focus on commit history, though it does not explicitly name or contrast any alternative.

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 when recent commit history is needed, but provides no explicit when-to-use or when-not-to-use guidance. It does not mention alternatives like git_show for individual commits or git_status for working-tree state, leaving selection to inference.

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

git_showA
Read-only

Show one Git revision without invoking external diff helpers.

ParametersJSON Schema
NameRequiredDescriptionDefault
revisionYesCommit, tag, or branch name; cannot start with -
repo_pathNoWorkspace-relative repository path; defaults to .

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, establishing this as a safe read. The description adds a genuinely useful behavioral guarantee: it will not invoke external diff helpers, which matters for an unattended agent that could otherwise hang on an interactive pager. It does not describe output format or size, but the safety profile is already covered.

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 sentence front-loads the core operation and immediately conveys the critical non-interactive behavior. There is zero filler or redundancy.

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, read-only tool with a fully documented schema and existing safety annotations, this description is nearly sufficient. It could explicitly mention that output includes commit metadata/diff, but given the standard semantics of 'git show' and the rich schema, the gap is minor.

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

Parameters3/5

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

Schema description coverage is 100%: both 'revision' and 'repo_path' are already well-described. The description adds no parameter-specific meaning beyond what the schema provides, so it meets the baseline but does not exceed 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 uses a specific verb ('Show') and a precise resource ('one Git revision'), clearly distinguishing it from siblings like git_log (which lists multiple revisions) and git_diff_unstaged/staged (which show working-tree diffs). The modifier 'without invoking external diff helpers' further pins down its niche among the git tools.

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 phrase 'one Git revision' implies this tool is for inspecting a single commit/tag/branch, but it does not explicitly state when to prefer this over git_log or git_diff_unstaged/staged. No alternatives are named and no exclusions are given, leaving some inference to the agent.

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

git_statusB
Read-only

Show the concise Git working-tree status for a repository below the configured workspace root.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathNoWorkspace-relative repository path; defaults to .

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds useful context by specifying 'concise' and the workspace-root scoping, but it does not disclose return format or edge cases; given the annotations, this is adequate but not exceptional.

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. Every phrase earns its place: 'Show', 'concise', 'Git working-tree status', and the workspace-root constraint all add essential meaning without waste.

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 low-complexity tool with one optional parameter, read-only annotations, and no output schema, the description is essentially complete. It tells the agent what it does, its scope, and its read-only nature; only minimal extra detail like output brevity or exit behavior could be added, but none is required for correct invocation.

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

Parameters3/5

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

The schema has 100% coverage and already describes repo_path as workspace-relative with a default of '.'. The description adds no additional parameter semantics beyond what the schema provides, so the baseline 3 is appropriate.

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

Purpose4/5

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

The description uses a specific verb ('Show') and resource ('concise Git working-tree status'), and clarifies that it applies only to repositories below the configured workspace root. It is distinguishable from sibling tools like git_diff or git_log, though it does not explicitly contrast itself with any sibling.

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 guidance about when to choose git_status over alternatives such as git_diff_unstaged or git_log. The description implies a general status check but provides no conditions, exclusions, or hints about when a different sibling would be more appropriate.

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

list_directoryA
Read-only

List files and directories below the configured local workspace root.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoWorkspace-relative directory path; defaults to .

TDQS

A3.5/5.0
Behavior3/5

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 the workspace-root confinement, which is useful, but it does not disclose recursion behavior, hidden-file handling, or output structure. With annotations doing part of the work, this is acceptable but not rich.

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

Conciseness5/5

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

The description is a single sentence with no filler or redundancy. It states the action and scope immediately, making it easy for an agent to parse.

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

Completeness3/5

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

For a simple one-parameter read-only tool, the description is close to sufficient. However, 'below the configured local workspace root' is ambiguous about whether it lists immediate children or recurses, and the absence of an output schema leaves return-format details unstated.

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

Parameters3/5

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

Schema coverage is 100%: the path parameter is fully described as a workspace-relative directory path defaulting to '.'. The description adds no additional parameter-level meaning, so the baseline of 3 applies.

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 uses a specific verb ('List') and a specific resource ('files and directories below the configured local workspace root'). This clearly distinguishes the tool from its siblings, which handle file content, mutations, and git operations.

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 gives no guidance on when to use this tool versus alternatives, no exclusions, and no context about typical workflows like exploring before reading or writing. The intended usage must be inferred from the tool name and sibling list.

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

move_fileA
Destructive

Move a regular file to a new workspace-relative path. The destination must not already exist.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesWorkspace-relative source file path
destinationYesWorkspace-relative destination file path; parent directory must exist

TDQS

A3.7/5.0
Behavior4/5

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

The annotations already mark this tool as destructive (destructiveHint=true) and not read-only, so the description does not need to restate that. It adds useful behavioral context: the operation is limited to regular files and requires the destination to not already exist. The word 'move' reasonably implies the source disappears after success, although the description does not explicitly spell that out.

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 consists of two concise sentences with no filler. The primary action is stated first, and the critical destination constraint is given immediately after. Every word earns its place.

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 two-parameter tool with a clear schema and destructive annotations, the description is mostly complete: it names the operation, the scope, and the key precondition. It does not explicitly describe what happens to the source file after a successful move or how failures are reported, but these are relatively minor given the simple semantics and the existing schema/annotations.

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 100%, so the baseline is 3. The description adds meaningful parameter-level meaning beyond the schema by specifying that 'The destination must not already exist,' which is an important overwrite/conflict constraint not present in the destination property description. This supplemental constraint justifies a score above baseline.

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 a specific verb and resource: 'Move a regular file to a new workspace-relative path.' It also adds scope by restricting to regular files and requiring a destination that does not already exist. However, it does not explicitly differentiate move_file from sibling tools like copy_file or rename_file, so it stops short of full 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?

There is no guidance on when to prefer move_file over alternatives such as copy_file, rename_file, or delete_file. The only usage-related information is the constraint 'The destination must not already exist,' which is a precondition rather than a selection criterion. An agent is left to infer how this tool fits among the file-operation siblings.

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

read_fileA
Read-only

Read a UTF-8 text file below the configured workspace root and return its SHA-256 hash.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesWorkspace-relative file path

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds meaningful behavior beyond that: it only handles UTF-8 text files, restricts access to below the configured workspace root, and returns a SHA-256 hash rather than raw file content. This gives an agent important expectations for invoking the 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?

One sentence with no filler. The action, resource constraint, and return value are all present, and 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.

Completeness5/5

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

For a single-parameter, read-only tool with supportive annotations, this description is complete. It specifies the input scope, the file type limitation, and the return value (SHA-256 hash), so the agent knows what to expect and how to invoke the tool correctly.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents the single 'path' parameter as a workspace-relative file path. The description adds the 'below the configured workspace root' boundary and UTF-8 requirement, but it doesn't significantly deepen parameter semantics beyond what the schema already provides.

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

Purpose5/5

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

The description uses a specific verb ('Read'), a specific resource ('a UTF-8 text file'), and a precise outcome ('return its SHA-256 hash'). It clearly differentiates this tool from siblings like list_directory and write_file, which serve different purposes.

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 clearly implies when to use it: when a file's content hash is needed, and only for UTF-8 text files within the workspace root. It does not explicitly name alternatives or state when not to use it, but the constraints are clear enough for selecting it over siblings.

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

rename_fileA
Destructive

Rename a regular file without moving it to another directory. The new name must not already exist.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesWorkspace-relative source file path
new_nameYesNew file name only, without directory components

TDQS

A4.3/5.0
Behavior4/5

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

With destructiveHint=true already in annotations, the description adds value by specifying the scope ('regular file'), the constraint 'The new name must not already exist,' and the same-directory limitation. These are behavioral details beyond the annotation flags, giving the agent a concrete precondition. It does not contradict the annotations, and the additional disclosure is meaningful without being exhaustive.

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 concise sentences with no redundant phrases. It front-loads the main action and constraint immediately, and every word contributes either to the operation, its scope, or its preconditions.

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?

For a two-parameter rename tool with annotations already covering the destructive profile and no output schema, the description is sufficient. It explains the operation, scope, and no-overwrite precondition, and the schema covers parameter details. Nothing essential is missing for an agent to invoke the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, with both 'path' and 'new_name' already fully described in the input schema. The tool description restates the constraint about not existing and clarifies 'without moving,' but it does not materially add to parameter meaning beyond what the schema provides. The baseline of 3 for high schema coverage is appropriate.

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

Purpose5/5

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

The description states a specific verb and resource: 'Rename a regular file without moving it to another directory.' This clearly distinguishes the tool from move_file by explicitly scoping it to same-directory renames, and the added constraint 'The new name must not already exist' further clarifies its exact operation. No ambiguity remains about what action is performed.

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 phrase 'without moving it to another directory' provides a clear boundary that signals when not to use this tool, implying cross-directory moves belong to a different tool. However, it does not explicitly name an alternative (e.g., move_file) or state 'use move_file when moving across directories,' so it falls between clear context and fully explicit routing.

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

write_fileA
Destructive

Write a UTF-8 text file below the configured workspace root. Existing files require overwrite=true; expected_sha256 can prevent lost updates.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesWorkspace-relative file path; parent directory must already exist
contentYesComplete UTF-8 file contents
overwriteNo
expected_sha256NoOptional SHA-256 of the existing file returned by read_file

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already mark the tool as non-read-only and destructive, so the description goes beyond them by explaining the overwrite guard and optimistic concurrency protection via expected_sha256. It also clarifies the workspace-root confinement, which is useful safety 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?

Two concise sentences with no filler. The core purpose is front-loaded, and the overwrite/concurrency caveats follow naturally without redundancy.

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 plus schema covers the essential behavior: writing a file, workspace-relative path, parent directory requirement, overwrite requirement, and optional SHA check. The absence of an output schema is acceptable for a write operation, and no critical guidance appears missing.

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 75%, and the description compensates for the undocumented overwrite parameter by explaining when it is required. It also adds practical meaning to expected_sha256 by tying it to preventing lost updates.

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 a specific verb (Write), a specific resource (UTF-8 text file), and a key scope constraint (below the configured workspace root). This clearly differentiates the tool from siblings like read_file, list_directory, and delete_file.

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 gives concrete usage conditions: existing files require overwrite=true, and expected_sha256 should be used to prevent lost updates. It does not explicitly name alternatives, but the behavior is specific enough that an agent can decide when to use this tool.

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.

  1. 18 tool updatesv0.3.0
    • First observedcopy_file
    • First observedcreate_directory
    • First observeddelete_directory
    • First observeddelete_file
    • First observedgit_add
    • First observedgit_amend_message
    • First observedgit_branch
    • First observedgit_commit
    • First observedgit_diff_staged
    • First observedgit_diff_unstaged
    • First observedgit_log
    • First observedgit_show
    • First observedgit_status
    • First observedlist_directory
    • First observedmove_file
    • First observedread_file
    • First observedrename_file
    • First observedwrite_file

TDQS

A3.9/5.0
Disambiguation4/5

Each tool maps to a distinct filesystem or Git operation, and most names are self-explanatory. The only mild ambiguity is between move_file and rename_file, though the descriptions clearly separate moving to a new path from renaming within the same directory.

Naming Consistency5/5

All tools follow a consistent verb_noun snake_case pattern, such as list_directory, copy_file, git_diff_staged, and git_amend_message. No mixed conventions or vague verbs appear.

Tool Count4/5

Eighteen tools is on the higher end, but the server covers two coherent domains: workspace file operations and local Git workflow. Each tool has a clear purpose, so the count feels slightly large rather than bloated.

Completeness3/5

The file operations cover common file and directory workflows but lack directory copy/move and file metadata/search. The Git side covers status/diff/log/add/commit but omits branch creation/checkout/deletion and unstage, leaving notable gaps in common local Git workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides secure, sandboxed file system access for AI assistants to read, write, and manage project files with controlled command execution capabilities, all confined to a designated workspace directory.
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables external AI (ChatGPT, Claude) to securely access a local workspace via Cloudflare Tunnel, providing file operations, shell commands, Git operations, and more with bearer token authentication and sandbox isolation.
    1
    -
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to develop within a local project workspace by reading and modifying files, running commands and tests, checking Git state, and persisting progress as history sessions that can be restored in later conversations.
    -

Latest Blog Posts

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/LJLCarrien/local-ops-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server