Skip to main content
Glama
cyanheads

git-mcp-server

by cyanheads

Git MCP 服务器

TypeScript 模型上下文协议 版本 执照 地位 GitHub

MCP(模型上下文协议)服务器,提供与 Git 存储库交互的工具。使 LLM 和 AI 代理能够通过 MCP 标准执行 Git 操作,例如克隆、提交、推送、拉取、分支、差异、日志、状态等。

该服务器基于cyanheads/mcp-ts-template构建,遵循模块化架构:

开发人员注意事项:此存储库包含一个.clinerules文件,该文件可作为您的 LLM 编码代理的开发人员备忘单,并提供代码库模式、文件位置和代码片段的快速参考。

目录

|概述|特点|安装|

|配置|项目结构|

|工具|资源|开发|许可证|

Related MCP server: GIT MCP Server

概述

通过无缝 Git 集成增强您的 AI 代理和开发工具!

Git MCP 服务器充当桥梁,允许理解模型上下文协议 (MCP) 的应用程序(MCP 客户端) - 如高级 AI 助手 (LLM)、IDE 扩展或自定义脚本 - 直接安全地与本地 Git 存储库进行交互。

您的工具可以利用此服务器来执行以下操作,而无需使用复杂的脚本或手动 CLI:

  • 自动化 Git 工作流程:克隆存储库、创建分支、暂存更改、提交工作、推送更新以及以编程方式管理标签。

  • 获得存储库洞察:无需离开主机应用程序即可检查状态、查看日志、差异更改和检查 Git 对象。

  • 将 Git 集成到 AI 驱动的开发中:使 LLM 能够将版本控制作为其编码或重构任务的一部分进行管理。

该服务器基于强大的mcp-ts-template构建,提供了一种通过 MCP 标准公开 Git 功能的标准化、安全且高效的方式。它通过使用 Node.js 的child_process模块安全地执行系统上安装的标准git命令行工具来实现这一点,从而确保兼容性并充分利用 Git 的全部功能。

特征

核心实用程序(来自模板)

利用mcp-ts-template提供的强大实用程序:

  • 日志记录:结构化、可配置的日志记录(文件轮换、控制台、MCP 通知),并带有敏感数据编辑。

  • 错误处理:集中错误处理、标准化错误类型( McpError )和自动日志记录。

  • 配置:环境变量加载( dotenv )。

  • 输入验证/清理:使用zod进行模式验证和自定义清理逻辑(对于路径至关重要)。

  • 请求上下文:通过唯一的请求 ID 来跟踪和关联操作。

  • 类型安全:由 TypeScript 和 Zod 模式强制执行的强类型。

  • HTTP 传输选项:内置 Express 服务器,支持 SSE、会话管理和 CORS。

Git 操作

  • 直接 Git CLI 执行:通过 Node.js child_process安全地执行标准git命令行工具与 Git 交互,确保完全兼容并可访问 Git 的功能。

  • 全面的命令覆盖:将各种 Git 命令作为 MCP 工具公开(参见工具部分)。

  • 存储库交互:支持状态检查、分支、暂存、提交、获取、拉取、推送、差异、日志记录、重置、标记等。

  • 工作目录管理:允许设置和清除特定于会话的工作目录,以便在多个 Git 操作中保持上下文持久性。

  • 安全功能:包括检查并要求对潜在破坏性操作(如git clean和git reset --hard进行明确确认。

  • 提交签名:支持使用 GPG 或 SSH 签名已验证的提交,通过GIT_SIGN_COMMITS环境变量和服务器端 Git 配置进行控制。包含一个可选工具参数,用于在签名失败时回退到未签名的提交。

安装

先决条件

通过 npm 安装

  1. 全局安装包:

    npm install @cyanheads/git-mcp-server

从源安装

  1. 克隆存储库:

    git clone https://github.com/cyanheads/git-mcp-server.git
    cd git-mcp-server
  2. 安装依赖项:

    npm install
  3. 构建项目:

    npm run build (or `npm run rebuild`)

    这会将dist/目录中的 TypeScript 代码编译为 JavaScript,并使入口点可执行。

配置

环境变量

使用环境变量配置服务器。在项目根目录下创建一个.env文件(从.env.example复制),或者在你的环境中设置它们。

多变的

描述

默认

MCP_TRANSPORT_TYPE

传输机制: stdio或http 。

stdio

MCP_HTTP_PORT

HTTP 服务器的端口(如果MCP_TRANSPORT_TYPE=http )。如果端口繁忙,则重试下一个端口。

3010

MCP_HTTP_HOST

HTTP 服务器的主机地址(如果MCP_TRANSPORT_TYPE=http )。

127.0.0.1

MCP_ALLOWED_ORIGINS

以逗号分隔的 CORS 允许来源列表(如果MCP_TRANSPORT_TYPE=http )。

(没有任何)

MCP_LOG_LEVEL

日志级别( debug 、 info 、 notice 、 warning 、 error 、 crit 、 alert 、 emerg )。继承自模板。

info

GIT_SIGN_COMMITS

设置为"true"即可启用对git_commit工具所作提交的签名尝试。需要服务器端 Git/key 设置(见下文)。

false

MCP_AUTH_SECRET_KEY

用于签署/验证身份验证令牌的密钥(如果将来启用身份验证则需要)。

''

MCP 客户端设置

添加到您的 MCP 客户端设置(例如, cline_mcp_settings.json ):

{
  "mcpServers": {
    "git-mcp-server": {
      // Use a descriptive name
      "command": "node", // Use node to run the script
      "args": ["/path/to/your/git-mcp-server/dist/index.js"], // Absolute path to the built entry point
      "env": {
        // "MCP_TRANSPORT_TYPE": "http", // Optional: if using http
        // "MCP_HTTP_PORT": "3010",     // Optional: if using http and non-default port
        // "GIT_SIGN_COMMITS": "true"   // Optional: Enable commit signing attempts if server is configured
      },
      "disabled": false,
      "autoApprove": [] // Configure auto-approval rules if desired
    }
  }
}

项目结构

代码库遵循src/目录中的模块化结构:

src/
├── index.ts           # Entry point: Initializes and starts the server
├── config/            # Configuration loading (env vars, package info)
│   └── index.ts
├── mcp-server/        # Core MCP server logic and capability registration
│   ├── server.ts      # Server setup, capability registration
│   ├── transports/    # Transport handling (stdio, http)
│   ├── resources/     # MCP Resource implementations (currently none)
│   └── tools/         # MCP Tool implementations (subdirs per tool)
├── types-global/      # Shared TypeScript type definitions
└── utils/             # Common utility functions (logger, error handler, etc.)

有关详细的文件树,请运行npm run tree或查看docs/tree.md 。

工具

Git MCP 服务器提供了一套用于与 Git 存储库交互的工具,可通过模型上下文协议调用。

工具名称

描述

关键论点

git_add

暂存指定的文件或模式。

path? 、 files?

git_branch

管理分支(列出、创建、删除、重命名、显示当前)。

path? 、 mode 、 branchName? 、 newBranchName? 、 startPoint? 、 force? 、 all? 、 remote?

git_checkout

切换分支或恢复工作树文件。

path? 、 branchOrPath 、 newBranch? force?

git_cherry_pick

应用现有提交引入的更改。

path? 、 commitRef 、 mainline? 、 strategy? 、 noCommit? signoff?

git_clean

删除未跟踪的文件。需要force: true 。

path? 、 force 、 dryRun? directories? 、 ignored?

git_clear_working_dir

清除会话特定的工作目录。

(没有任何)

git_clone

将存储库克隆到指定的绝对路径。

repositoryUrl 、 targetPath 、 branch? 、 depth? 、 quiet?

git_commit

提交阶段性变更。支持作者覆盖和签名控制。

path? 、 message 、 author? 、 allowEmpty? 、 amend? 、 forceUnsignedOnFailure?

git_diff

显示提交、工作树等之间的变化。

path? 、 commit1? commit2? ?、 staged? 、 file?

git_fetch

从其他存储库下载对象和引用。

path? 、 remote? 、 prune? 、 tags? 、 all?

git_init

在指定的绝对路径下初始化一个新的 Git 仓库。初始分支默认为“main”。

path 、 initialBranch? bare? 、 quiet?

git_log

显示提交日志。

path? 、 maxCount? 、 author? 、 since? 、 until? 、 branchOrFile?

git_merge

将指定分支合并到当前分支。

path? 、 branch 、 commitMessage? 、 noFf? 、 squash? 、 abort?

git_pull

从另一个存储库或本地分支获取并集成。

path? 、 remote? 、 branch? 、 rebase? 、 ffOnly?

git_push

使用本地引用更新远程引用。

path? 、 remote? 、 branch? 、 remoteBranch? ?、 force? 、 forceWithLease? 、 setUpstream? tags? 、 delete?

git_rebase

在另一个基本提示之上重新应用提交。

path? 、 mode? 、 upstream? 、 branch? 、 interactive? 、 strategy? 、 strategyOption? 、 onto?

git_remote

管理远程存储库(列出、添加、删除、显示)。

path? 、 mode 、 name? 、 url?

git_reset

将当前 HEAD 重置为指定状态。支持软、混合、硬三种模式。请谨慎使用“hard” 。

path? 、 mode? 、 commit?

git_set_working_dir

设置默认工作目录。如果不存在,可以选择初始化 repo。需要绝对路径。

path 、 validateGitRepo? 、 initializeIfNotPresent?

git_show

显示有关 Git 对象(提交、标签等)的信息。

path? , ref , filePath?

git_stash

管理存储的更改(列出、应用、弹出、删除、保存)。

path? 、 mode 、 stashRef? message?

git_status

获取存储库状态(分支、暂存、修改、未跟踪的文件)。

path?

git_tag

管理标签(列表、创建注释/轻量级、删除)。

path? 、 mode 、 tagName? 、 message? 、 commitRef? annotate?

git_worktree

管理 Git 工作树(列出、添加、删除、移动、修剪)。

path? 、 mode 、 worktreePath? commitish? 、 newBranch? force? 、 detach? 、 newPath? verbose? 、 dryRun? expire?

注意:如果通过git_set_working_dir设置,大多数工具的path参数默认为会话的工作目录。

资源

此版本(v2.0.12)中未实现 MCP 资源。

此版本重点关注基于最新mcp-ts-template和 MCP SDK v1.12.0 重构的 Git 工具实现。此前可用的资源功能在本次重大更新中被暂时移除。

如果您需要 MCP 资源访问(例如,直接通过服务器读取文件内容),请使用稳定的**v1.2.4 版本**。

未来的开发可能会在后续版本中重新引入资源功能。

**注意:**此版本 (v2.0.0) 重点基于最新的 MCP SDK 重构和更新了核心 Git 工具。MCP 资源功能尚未在此版本中实现。如需访问资源,请使用v1.2.4 版本。

发展

构建和测试

# Build the project (compile TS to JS in dist/ and make executable)
npm run build

# Test the server locally using the MCP inspector tool (stdio transport)
npm run inspector

# Test the server locally using the MCP inspector tool (http transport)
npm run inspector:http

# Clean build artifacts (runs scripts/clean.ts)
npm run clean

# Generate a file tree representation for documentation (runs scripts/tree.ts)
npm run tree

# Clean build artifacts and then rebuild the project
npm run rebuild

# Start the server using stdio (default)
npm start
# Or explicitly:
npm run start:stdio

# Start the server using HTTP transport
npm run start:http

执照

该项目根据 Apache License 2.0 获得许可 - 有关详细信息,请参阅LICENSE文件。


Available Tools

28 tools
git_addGit AddA

Stage files for commit. Add file contents to the staging area (index) to prepare for the next commit.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the Git repository. Defaults to session working directory set via git_set_working_dir..
filesNoArray of file paths to stage (relative to repository root). Use ["."] to stage all changes. Can be omitted when all or update is true.
updateNoStage only modified and deleted files (skip untracked files).
allNoInclude all items (varies by operation).
forceNoAllow adding otherwise ignored files.

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
stagedFilesYesFiles that were successfully staged.
totalFilesYesTotal number of files staged.
statusYesRepository status after staging files.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations indicate readOnlyHint: false, and the description adds context that this modifies the staging area/index rather than working directory files. However, it misses behavioral details like reversibility (can be undone with git_reset), error conditions, or the distinction between staging tracked vs 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?

The description consists of two efficient sentences with zero waste. The first sentence front-loads the core action ('Stage files'), and the second clarifies the mechanism ('Add file contents to the staging area').

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?

Given the presence of an output schema and 100% parameter coverage, the description adequately covers the core concept. It could be improved by mentioning the relationship to git_commit or common staging workflows, but it is sufficient for tool selection.

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

Parameters3/5

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

With 100% schema description coverage, the baseline score is 3. The description mentions 'files' generally but adds no semantic detail about specific parameters like 'update' (modified/deleted only), 'all' (include untracked), or 'force' (ignored files) beyond what the schema already provides.

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

Purpose4/5

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

The description clearly states the tool stages files for commit and explains the staging area/index concept. It implies the workflow relationship with committing (distinguishing from git_commit), though it doesn't explicitly contrast with sibling tools like git_reset.

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 'prepare for the next commit' implies this tool should be used before committing, providing minimal workflow context. However, it lacks explicit when-to-use guidance (e.g., 'use this to select specific changes') or when-not-to-use exclusions (e.g., 'do not use if you want to discard changes').

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

git_blameGit BlameA
Read-only

Show line-by-line authorship information for a file, displaying who last modified each line and when. For large files, use startLine/endLine to limit output.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the Git repository. Defaults to session working directory set via git_set_working_dir..
fileYesPath to the file to blame (relative to repository root).
startLineNoStart line number (1-indexed).
endLineNoEnd line number (1-indexed).
ignoreWhitespaceNoIgnore whitespace changes.

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
fileYesThe file that was blamed.
linesYesArray of blame information for each line.
totalLinesYesTotal number of lines in the output.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true. Description adds valuable behavioral context about performance characteristics with large files and output volume management via line ranges, which is not inferable from the annotation alone. No contradictions with structured data.

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

Conciseness5/5

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

Two sentences with zero waste. First sentence front-loads core functionality; second provides essential optimization guidance. Appropriate density for the tool's complexity.

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

Completeness5/5

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

Given the presence of an output schema (covering return values) and readOnlyHint annotation (covering safety), plus the straightforward nature of git blame, the description successfully covers the essential behavioral concerns (large file handling) without redundancy.

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%, establishing baseline context for all 5 parameters. Description adds semantic value by explaining the purpose of startLine/endLine (limiting output for large files), which goes beyond the schema's mere 'Start line number' definition.

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?

Clear specific verb ('Show') + resource ('line-by-line authorship information') + scope ('for a file'). Distinct from siblings like git_log (history) or git_diff (changes) by emphasizing per-line authorship tracking.

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?

Provides specific optimization guidance ('For large files, use startLine/endLine to limit output') indicating when to use line range parameters. Lacks explicit comparison to alternatives (e.g., when to use git_log instead), but offers concrete usage context.

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

git_branchGit BranchA

Manage branches: list all branches, show current branch, create a new branch, delete a branch, or rename a branch.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the Git repository. Defaults to session working directory set via git_set_working_dir..
operationNoThe branch operation to perform.list
nameNoBranch name for create/delete/rename operations.
newNameNoNew branch name for rename operation.
startPointNoStarting point (commit/branch) for new branch creation.
forceNoForce the operation, bypassing safety checks.
allNoFor list operation: show both local and remote branches.
remoteNoFor list operation: show only remote branches.
mergedNoFor list operation: show only branches merged into HEAD (true) or specified commit (string).
noMergedNoFor list operation: show only branches not merged into HEAD (true) or specified commit (string).

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
operationYes
branchesNoList of branches (for list operation).
currentBranchNoName of current branch.
messageNoSuccess message for create/delete/rename operations.

TDQS

A3.6/5.0
Behavior3/5

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

The annotation indicates readOnlyHint: false, and the description corroborates this by listing mutating operations (create, delete, rename). It adds value by specifying which mutations are possible, but does not elaborate on safety implications, failure modes, or the specific effects of the force parameter beyond the schema description. Additional context about unmerged branch deletion behavior or rename conflicts is absent.

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 a single, efficiently structured sentence that front-loads the general capability ('Manage branches') followed by specific operations. No words are wasted on tautology or redundant restatement of the tool name. The colon-separated list format provides excellent information density.

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?

Given the comprehensive input schema (100% coverage) and the existence of an output schema, the description appropriately serves as a high-level capability summary rather than exhaustive documentation. It successfully enumerates all five supported operations from the enum. However, it could enhance completeness by explicitly noting the destructive nature of delete operations given the minimal annotations.

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

Parameters3/5

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

With 100% schema description coverage, the structured data already documents all 10 parameters comprehensively. The description mirrors the operation enum values but does not augment the schema with additional semantic context, syntax examples, or cross-parameter relationships. It maintains the baseline score appropriate for high-coverage schemas.

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 enumerates five specific operations (list, show-current, create, delete, rename) on the resource 'branches', providing clear functional scope. While 'Manage' is slightly generic, the colon-delimited list effectively specifies the tool's capabilities. However, it lacks explicit differentiation from sibling tools like git_checkout that may overlap in branch creation functionality.

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 lists the available operations but provides no explicit guidance on when to use this tool versus alternatives like git_checkout for branch creation or switching. There are no 'when-not' exclusions or prerequisites mentioned for destructive operations like delete. Usage guidance remains implied through the operation enumeration rather than explicit recommendation.

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

git_changelog_analyzeGit Changelog AnalyzeA
Read-only

Gather git history context (commits, tags) and structured review instructions to support LLM-driven changelog analysis. Changelog file should be read separately; this tool provides the supporting git data and analysis framework. Pass one or more review types to control what kind of analysis to perform.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the Git repository. Defaults to session working directory set via git_set_working_dir..
reviewTypesYesTypes of changelog review to perform. At least one required. Options: security, features, storyline, gaps, breaking_changes, quality.
maxCommitsNoMaximum recent commits to fetch for cross-referencing (1-1000).
sinceTagNoOnly include git history since this tag (e.g., "v1.2.0"). Narrows the analysis window.
branchNoBranch to analyze (defaults to current branch).

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
reviewTypesYesReview types that were requested.
gitContextYesGit history context for changelog cross-referencing.
reviewInstructionsYesAnalysis instructions for each requested review type. Guides the LLM on what to look for in the changelog.

TDQS

A4.2/5.0
Behavior4/5

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

Adds valuable behavioral context beyond readOnlyHint=true annotation: specifies it provides 'structured review instructions' and an 'analysis framework' (suggesting formatted output, not raw git log), and clarifies data scope (commits for cross-referencing). Consistent with read-only safety profile.

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

Conciseness5/5

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

Three tightly constructed sentences with zero waste. Front-loaded with core purpose, followed by critical usage constraint (changelog file separation), and ending with parameter guidance. Every sentence 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?

Complete conceptual coverage given rich input schema (100% coverage), presence of output schema, and annotations. Description successfully establishes the tool's role in the broader changelog analysis workflow without needing to duplicate output schema details.

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

Parameters3/5

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

Schema coverage is 100%, providing complete parameter documentation. Description minimally references reviewTypes ('Pass one or more review types') but adds no semantic depth beyond schema definitions. Baseline 3 appropriate for high-coverage schemas.

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

Purpose5/5

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

States specific action ('Gather git history context') and resource ('commits, tags') with clear purpose ('support LLM-driven changelog analysis'). Distinguishes from generic git_log by specifying changelog analysis context and from file tools by noting changelog files are handled separately.

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?

Provides clear when-not guidance ('Changelog file should be read separately') establishing separation of concerns. Lacks explicit comparison to git_log for when to use this versus standard log retrieval, but offers clear contextual guidance on tool boundaries.

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

git_checkoutGit CheckoutA

Switch branches or restore working tree files. Can checkout an existing branch, create a new branch, or restore specific files.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the Git repository. Defaults to session working directory set via git_set_working_dir..
targetYesBranch name, commit hash, or tag to checkout.
createBranchNoCreate a new branch with the specified name.
forceNoForce the operation, bypassing safety checks.
pathsNoSpecific file paths to checkout/restore (relative to repository root).
trackNoSet up tracking relationship with remote branch when creating new branch.

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
targetYesChecked out branch or commit.
branchCreatedYesTrue if a new branch was created.
filesModifiedYesFiles that were modified during checkout.

TDQS

A3.9/5.0
Behavior3/5

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

The description is consistent with the readOnlyHint:false annotation, using mutation verbs (switch, restore, create). It adds context about the three operational modes. However, it fails to disclose important behavioral traits like the risk of overwriting local changes during file restoration or the implications of detached HEAD state when checking out commits.

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

Conciseness5/5

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

Two sentences with zero waste. The first sentence establishes the dual nature of the tool (branches vs files), and the second enumerates the three specific modes. Information is front-loaded and every clause earns its place.

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?

Given the presence of a force parameter and the destructive potential of checkout operations, the description is minimally adequate but missing critical git-specific warnings. It should mention the risk of losing uncommitted changes or clarify HEAD detachment behavior, especially since annotations only indicate non-read-only status without detailing safety profiles.

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?

Despite 100% schema description coverage, the description adds value by mapping high-level use cases to specific parameters: 'existing branch' → target, 'create a new branch' → createBranch flag, and 'restore specific files' → paths parameter. This semantic bridging helps agents understand parameter purpose beyond type definitions.

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 specific verbs (switch, restore, create) and clearly identifies the resources (branches, working tree files). It distinguishes from siblings like git_branch by explicitly mentioning file restoration capabilities alongside branch operations, clarifying this tool's dual purpose.

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 enumerates three distinct usage modes (existing branch, new branch, file restoration), providing implicit context for when to use the tool. However, it lacks explicit guidance on when to use git_branch instead for branch creation, or when to avoid checkout due to uncommitted changes.

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

git_cherry_pickGit Cherry-PickA

Cherry-pick commits from other branches. Apply specific commits to the current branch without merging entire branches.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the Git repository. Defaults to session working directory set via git_set_working_dir..
commitsYesCommit hashes to cherry-pick.
noCommitNoDon't create commit (stage changes only).
continueOperationNoContinue cherry-pick after resolving conflicts.
abortNoAbort cherry-pick operation.
mainlineNoFor merge commits, specify which parent to follow (1 for first parent, 2 for second, etc.).
strategyNoMerge strategy to use for cherry-pick.
signoffNoAdd Signed-off-by line to the commit message.

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
pickedCommitsYesCommits that were successfully cherry-picked.
conflictsYesWhether operation had conflicts.
conflictedFilesYesFiles with conflicts that need resolution.

TDQS

A4/5.0
Behavior3/5

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

The annotations indicate readOnlyHint: false, and the description confirms this is a write operation ('Apply... to current branch'). However, it fails to disclose important behavioral traits: that cherry-picking creates new commit hashes (doesn't move originals), that it can result in conflicts requiring resolution, or that the working directory must be clean. These are material omissions given the tool's complexity.

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 efficient sentences with zero redundancy. It is well-structured with the core action front-loaded ('Cherry-pick commits') followed immediately by the value proposition/distinction from alternatives. 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?

Given the rich input schema (100% coverage) and presence of an output schema, the description appropriately focuses on conceptual explanation rather than implementation details. It is complete enough for tool selection, though mentioning the conflict resolution workflow would improve operational completeness given the existence of continueOperation/abort parameters.

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

Parameters3/5

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

With 100% schema description coverage, the baseline is appropriately met. The description adds semantic context that commits come 'from other branches', which complements the commits parameter. However, it does not clarify the relationship between the mutually exclusive operational modes (noCommit, continueOperation, abort) or when to use the mainline parameter.

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 specific verbs ('Cherry-pick', 'Apply') and clearly identifies the resource (commits from other branches). The second sentence effectively distinguishes this from git_merge by emphasizing 'without merging entire branches', making the scope distinct from sibling 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?

The description provides clear context for when to use this tool—when you need specific commits rather than entire branch merges. However, it lacks explicit guidance on conflict resolution workflows (despite the continueOperation/abort parameters) and doesn't mention when to prefer this over git_rebase for similar commit selection tasks.

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

git_cleanGit CleanA

Remove untracked files from the working directory. Requires force flag for safety. Use dry-run to preview files that would be removed.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the Git repository. Defaults to session working directory set via git_set_working_dir..
forceNoForce the operation, bypassing safety checks.
dryRunNoPreview the operation without executing it.
directoriesNoRemove untracked directories in addition to files.
ignoredNoRemove ignored files as well.

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
filesRemovedYesList of files that were removed.
directoriesRemovedYesList of directories that were removed.
dryRunYesWhether this was a dry-run (preview only).

TDQS

A4.4/5.0
Behavior4/5

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

While annotations indicate readOnlyHint: false, the description adds crucial behavioral context about the safety mechanism (force requirement) and preview capability (dry-run). It effectively communicates the destructive nature without contradicting the annotation.

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

Conciseness5/5

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

Three sentences with zero waste: purpose statement, safety constraint, and best practice. Information is front-loaded and each sentence earns its place. No redundant or vague filler.

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?

Given the presence of an output schema and 100% parameter coverage in the schema, the description appropriately focuses on safety-critical behavioral aspects (force/dry-run) rather than repeating schema details. Could be improved by briefly noting the directories/ignored modifiers, but adequate for safe usage.

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?

With 100% schema coverage, the baseline is 3. The description adds value by explaining the semantic purpose of force ('for safety') and dryRun ('preview files that would be removed'), framing the technical schema descriptions in user-centric safety terms.

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

Purpose5/5

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

The description opens with a specific verb ('Remove') and clear resource ('untracked files from the working directory'), immediately distinguishing it from sibling tools like git_status (viewing) or git_reset (affecting tracked files). The scope is precisely bounded to the working directory.

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?

Provides clear safety guidance ('Requires force flag for safety') and workflow recommendation ('Use dry-run to preview'), which effectively guides safe invocation. However, it lacks explicit comparison to alternatives (e.g., when to use git_add instead to preserve files).

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

git_clear_working_dirGit Clear Working DirectoryA

Clear the session working directory setting. This resets the context without restarting the server. Subsequent git operations will require an explicit path parameter unless git_set_working_dir is called again.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYesExplicit confirmation required to clear working directory. Accepted values: 'Y', 'y', 'Yes', or 'yes'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
messageYesConfirmation message.
previousPathNoThe working directory that was cleared (if one was set).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate `readOnlyHint: false`, and the description adds valuable behavioral context: it clarifies this 'resets the context without restarting the server' and explains the side effect on subsequent operations. It does not 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.

Conciseness5/5

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

Three sentences efficiently cover: (1) the action, (2) the mechanism (no restart needed), and (3) the side effects/workflow implications. Front-loaded with purpose and zero 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?

Given the presence of an output schema and the tool's narrow scope (state reset), the description adequately covers the operational context and side effects. It appropriately omits return value details since an output schema exists.

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

Parameters3/5

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

With 100% schema description coverage for the single 'confirm' parameter, the schema fully documents the input requirements. The description adds no additional parameter semantics, meeting the baseline for high-coverage schemas.

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

Purpose5/5

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

The description explicitly states the tool clears the 'session working directory setting' (specific verb + resource), distinguishing it from sibling `git_clean` (which removes files) and other git operations that manipulate the filesystem.

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

Usage Guidelines4/5

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

The description provides clear context by explaining consequences ('Subsequent git operations will require an explicit path parameter') and references the complementary sibling tool `git_set_working_dir` for recovery. However, it lacks explicit '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.

git_cloneGit CloneA

Clone a repository from a remote URL to a local path. Supports HTTP/HTTPS and SSH URLs, with optional shallow cloning.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesRemote repository URL to clone from.
localPathYesLocal path where the repository should be cloned.
branchNoSpecific branch to clone (defaults to remote HEAD).
depthNoCreate a shallow clone with history truncated to N commits.
bareNoCreate a bare repository (no working directory).
mirrorNoCreate a mirror clone (implies bare).

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
remoteUrlYesThe remote URL that was cloned.
localPathYesLocal path where repository was cloned.
branchYesThe branch that was checked out.
commitHashNoCurrent HEAD commit hash.

TDQS

A3.7/5.0
Behavior3/5

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

The annotation provides readOnlyHint: false, confirming this is a write operation. The description adds valuable context about protocol support and shallow cloning, but fails to disclose critical behavioral traits like error handling when localPath already exists, directory creation behavior, or authentication mechanisms for private repos.

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 exactly two efficient sentences with zero redundancy. The first sentence establishes the core operation, and the second adds capability details (protocols/shallow cloning). Every word earns its place.

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?

Given the existence of an output schema, return values need not be described. However, for a filesystem-mutating operation with 6 parameters, the description lacks operational details such as conflict resolution behavior, disk space requirements, or network dependency warnings that would help an agent handle failures gracefully.

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

Parameters3/5

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

With 100% schema description coverage, the baseline is appropriately met. The description references 'shallow cloning' (mapping to the depth parameter) and protocol support (mapping to URL format), but adds minimal semantic meaning beyond what the well-documented schema already provides.

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

Purpose5/5

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

The description clearly states the specific action (clone), resource (repository), and scope (remote URL to local path). It effectively distinguishes from siblings like git_init (which creates empty repositories) and git_pull (which updates existing ones) by emphasizing the remote-to-local copy operation.

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

Usage Guidelines3/5

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

While the description implies usage by mentioning HTTP/HTTPS/SSH support and shallow cloning, it lacks explicit guidance on when to use this versus alternatives (e.g., 'use git_init for creating new empty repositories instead') or prerequisites (e.g., authentication requirements for private repositories).

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

git_commitGit CommitA

Create a new commit with staged changes in the repository. Records a snapshot of the staging area with a commit message.

Commit Message Format: Pass commit messages as JSON string parameters. Multi-line messages are supported using standard JSON string escaping.

Examples:

  • Single line: { "message": "feat: add user authentication" }

  • Multi-line: { "message": "feat: add user authentication\n\nImplemented OAuth2 flow with JWT tokens.\nAdded tests for login and logout." }

Note: Do not use bash heredoc syntax. Literal escape sequences (\n, \t) in the message string are automatically normalized to their actual characters.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the Git repository. Defaults to session working directory set via git_set_working_dir..
messageYesCommit message.
authorNoOverride commit author (defaults to git config).
amendNoAmend the previous commit instead of creating a new one. Use with caution.
allowEmptyNoAllow creating a commit with no changes.
signNoSign the commit/tag with GPG.
noVerifyNoBypass pre-commit and commit-msg hooks.
filesToStageNoFile paths to stage before committing (atomic stage+commit operation).
forceUnsignedOnFailureNoIf GPG/SSH signing fails, retry the commit without signing instead of failing.

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
commitHashYesSHA-1 hash of the created commit.
messageYesThe commit message.
authorYesAuthor of the commit.
timestampYesUnix timestamp when the commit was created.
filesChangedNoNumber of files changed in this commit.
committedFilesYesList of files that were committed.
insertionsNoNumber of line insertions.
deletionsNoNumber of line deletions.
statusYesRepository status after the commit.

TDQS

A4.3/5.0
Behavior4/5

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

Beyond the readOnlyHint: false annotation, the description adds valuable behavioral details: it explains JSON string escaping requirements for multi-line messages, warns against bash heredoc syntax, and notes that escape sequences are automatically normalized. These are critical implementation details for correct invocation not inferable from the annotation alone.

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 well-structured with clear section headers (Purpose, Commit Message Format, Examples, Note). It is front-loaded with the core purpose, followed by specific formatting constraints and examples. Every sentence serves a purpose, with no redundant fluff.

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

Completeness5/5

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

Given the complexity (9 parameters including GPG signing, amend, atomic staging) and the presence of an output schema, the description appropriately focuses on the non-obvious aspects: JSON string formatting for git messages. It covers the critical escaping behavior that an AI agent needs to construct valid parameters, making it complete for its context.

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?

With 100% schema coverage, the baseline is 3. The description adds significant value by providing concrete examples of single-line and multi-line commit message JSON formatting, and explaining the specific escaping behavior required. This supplements the schema's basic 'Commit message' description with essential syntax guidance.

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

Purpose5/5

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

The description clearly states the tool creates a new commit with staged changes and records a snapshot of the staging area. It uses specific verbs (Create, Records) and identifies the resource (commit/snapshot), clearly distinguishing it from siblings like git_add, git_push, or git_status.

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

Usage Guidelines3/5

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

The description implies usage by mentioning 'staged changes,' suggesting files must be staged first, but lacks explicit workflow guidance. It does not state when to use git_add first versus using the filesToStage parameter, nor does it explicitly caution about using amend instead of regular commits in the main description text.

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

git_diffGit DiffB
Read-only

View differences between commits, branches, or working tree. Shows changes in unified diff format.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the Git repository. Defaults to session working directory set via git_set_working_dir..
targetNoTarget commit/branch to compare against. If not specified, shows unstaged changes in working tree.
sourceNoSource commit/branch to compare from. If target is specified but not source, compares target against working tree.
pathsNoLimit diff to specific file paths (relative to repository root).
stagedNoShow diff of staged changes instead of unstaged.
includeUntrackedNoInclude untracked files in the diff. Useful for reviewing all upcoming changes.
nameOnlyNoShow only names of changed files, not the diff content.
statNoShow diffstat (summary of changes) instead of full diff content.
contextLinesNoNumber of context lines to show around changes.
autoExcludeNoAutomatically exclude lock files and other generated files (e.g., package-lock.json, yarn.lock, bun.lock, poetry.lock, go.sum) from diff output to reduce context bloat. Set to false if you need to inspect these files.

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
diffYesThe diff output in unified diff format.
filesChangedYesNumber of files with differences.
insertionsNoTotal number of line insertions.
deletionsNoTotal number of line deletions.
excludedFilesNoFiles that were automatically excluded from the diff (e.g., lock files). Call again with autoExclude=false to include them.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, confirming safety. The description adds value by specifying the output format ('unified diff format'), which is behavioral context not in the schema. However, it misses other behavioral traits like how it handles binary files, large diffs, or the default exclusion of lock files (mentioned only in parameter schema).

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

Conciseness5/5

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

Two sentences with zero waste. The first establishes scope, the second output format. Every word earns its place—no redundant filler or obvious restatements of the tool name.

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?

Given the presence of an output schema and 100% parameter coverage, the description does not need to exhaustively detail returns or parameters. It successfully covers the tool's purpose and output format. A score of 4 reflects adequate coverage; a 5 would require addressing edge cases like binary file handling or performance notes.

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

Parameters3/5

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

With 100% schema description coverage, the schema carries the full burden of parameter documentation. The description implies the conceptual model (source/target comparisons) but does not add syntax details, examples, or clarify relationships between parameters (e.g., how source/target interact) beyond what the schema provides. 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 clearly states the core function ('View differences') and the specific scopes (commits, branches, working tree). It distinguishes from siblings like git_status (which shows summary status) by specifying it shows actual differences, though it could explicitly mention it performs comparisons versus showing historical logs.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives like git_status (for summary changes) or git_show (for specific commit details). It does not mention prerequisites such as being inside a git repository or having a working tree available.

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

git_fetchGit FetchA

Fetch updates from a remote repository. Downloads objects and refs without merging them.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the Git repository. Defaults to session working directory set via git_set_working_dir..
remoteNoRemote name (default: origin).
pruneNoPrune remote-tracking references that no longer exist on remote.
tagsNoFetch all tags from the remote.
depthNoCreate a shallow clone with history truncated to N commits.

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
remoteYesRemote name that was fetched from.
fetchedRefsYesReferences that were fetched from the remote.
prunedRefsYesReferences that were pruned (deleted locally).

TDQS

A3.8/5.0
Behavior3/5

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

Annotations only declare readOnlyHint: false. The description adds that it 'Downloads objects and refs' (confirming local modification) and specifies the no-merge behavior. However, it omits details about updating remote-tracking branches, network requirements, or idempotency.

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

Conciseness5/5

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

Two sentences with zero waste. Front-loaded with the core action ('Fetch updates'), followed immediately by the critical behavioral distinction ('without merging'). 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?

Appropriate for the complexity: 5 optional parameters with 100% schema coverage and an output schema available. The description captures the essential fetch semantics, though it could explicitly mention 'remote-tracking branches' for completeness given the 'refs' terminology may be opaque.

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%, establishing a baseline of 3. The description does not add parameter-specific semantics (e.g., when to use depth for shallow clones vs full fetch), but the schema adequately documents all 5 optional parameters without needing supplementation.

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?

Specific verb (Fetch) + resource (remote repository). The phrase 'without merging them' effectively distinguishes this from git_pull and git_merge siblings, clarifying that it only downloads without integrating changes into the working directory.

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?

Implicitly suggests usage via 'without merging them' (implying use git_pull instead if merging is desired), but lacks explicit guidance on when to choose this over alternatives or workflow recommendations (e.g., 'use before git_merge to inspect changes').

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

git_initGit InitA

Initialize a new Git repository at the specified path. Creates a .git directory and sets up the initial branch.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the Git repository. Defaults to session working directory set via git_set_working_dir..
initialBranchNoName of the initial branch (default: main).
bareNoCreate a bare repository (no working directory).

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
pathYesPath where repository was initialized.
initialBranchYesName of the initial branch.
isBareYesWhether this is a bare repository.

TDQS

A4/5.0
Behavior4/5

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

The annotation declares readOnlyHint: false, and the description adds valuable behavioral context by specifying the side effect: 'Creates a .git directory'. It also notes the initial branch setup behavior. It does not mention idempotency concerns (e.g., failing if .git exists) but provides more than the annotation alone.

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

Conciseness5/5

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

Two sentences with zero waste. The first sentence front-loads the core purpose (initialize repository), while the second adds essential implementation details (.git directory creation, branch setup). 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 tool with 3 well-documented parameters (100% coverage), an output schema (which handles return value documentation), and simple behavior, the description is sufficient. It could improve by mentioning the bare parameter or idempotency, but it covers the essentials adequately.

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

Parameters3/5

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

With 100% schema description coverage, the baseline is 3. The description loosely references the 'path' ('specified path') and 'initialBranch' ('initial branch') parameters conceptually but adds no syntax, format details, or examples 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 specific verbs ('Initialize', 'Creates', 'sets up') and clearly identifies the resource (Git repository). It effectively distinguishes from siblings like git_clone (which copies existing repos) and git_add/git_commit (which operate on existing repos) by specifying this creates a 'new' repository.

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 (creating new repositories from scratch) but provides no explicit guidance on when to use this versus git_clone or prerequisites like directory existence. No 'when-not' or alternative tool references are included despite relevant siblings existing.

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

git_logGit LogA
Read-only

View commit history with optional filtering by author, date range, file path, or commit message pattern.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the Git repository. Defaults to session working directory set via git_set_working_dir..
maxCountNoMaximum number of items to return (1-1000).
skipNoNumber of items to skip for pagination.
sinceNoShow commits more recent than a specific date (ISO 8601 format).
untilNoShow commits older than a specific date (ISO 8601 format).
authorNoFilter commits by author name or email pattern.
grepNoFilter commits by message pattern (regex supported).
branchNoShow commits from a specific branch or ref (defaults to current branch).
filePathNoShow commits that affected a specific file path.
onelineNoAbbreviated output: return only hash, shortHash, and subject per commit. Significantly reduces response size.
statNoInclude file change statistics for each commit.
patchNoInclude the full diff patch for each commit.
showSignatureNoShow GPG signature verification information for each commit.

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
commitsYesArray of commit objects.
totalCountYesTotal number of commits returned (may be limited by maxCount).

TDQS

A3.6/5.0
Behavior2/5

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

The readOnlyHint annotation already establishes the safe read-only nature. The description adds no behavioral context beyond the schema, such as pagination behavior (despite skip/maxCount parameters), performance characteristics for large repositories, or how output formats differ between full and oneline modes.

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

Conciseness5/5

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

Single sentence that front-loads the core action ('View commit history') and efficiently lists the primary filtering capabilities. No redundant or filler text; every clause 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?

Given the 13 parameters, 100% schema coverage, and presence of an output schema, the description provides sufficient high-level orientation. It covers the primary use case (filtered history viewing) adequately, though it could mention pagination or output format variations given the parameter richness.

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

Parameters3/5

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

With 100% schema description coverage, the baseline is 3. The description adds semantic value by grouping four parameters under the 'filtering' concept (author, date range, file path, message pattern), but does not elaborate on the remaining 9 parameters including output modifiers (oneline, stat, patch) or pagination controls.

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

Purpose5/5

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

The description clearly states the tool views commit history and specifically mentions the filtering dimensions (author, date range, file path, message pattern), which distinguishes it from sibling tools like git_show (single commit details) or git_diff (file comparisons).

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 through 'View commit history' but provides no explicit when-to-use guidance versus alternatives like git_show for single commits or git_reflog for reference logs. Usage is clear from context but lacks explicit comparative guidance.

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

git_mergeGit MergeB

Merge branches together. Integrates changes from another branch into the current branch with optional merge strategies.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the Git repository. Defaults to session working directory set via git_set_working_dir..
branchYesBranch to merge into current branch.
strategyNoMerge strategy to use (ort, recursive, octopus, ours, subtree).
noFastForwardNoPrevent fast-forward merge (create merge commit).
squashNoSquash all commits from the branch into a single commit.
messageNoCustom merge commit message.
abortNoAbort an in-progress merge that has conflicts.

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
strategyYesMerge strategy used.
fastForwardYesWhether merge was fast-forward.
conflictsYesWhether merge had conflicts.
conflictedFilesYesFiles with conflicts that need resolution.
mergedFilesYesFiles that were merged.
messageYesMerge commit message.

TDQS

B3.3/5.0
Behavior3/5

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

Aligns with readOnlyHint:false by describing an integration operation. Mentions 'optional merge strategies' which hints at behavioral variation. However, it omits critical behavioral context: potential for merge conflicts, working directory modifications, or the fact that this creates merge commits (unless fast-forwarded), all of which are left to parameter documentation alone.

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

Conciseness5/5

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

Two sentences with zero waste. Front-loaded with core action 'Merge branches together' followed by elaboration. Every word earns its place without redundancy or repetition of schema details.

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?

With 100% schema coverage and an output schema present, the description doesn't need to explain return values. However, for a complex VCS operation that can leave the repository in a conflicted state, the lack of behavioral context regarding conflicts, side effects, or failure modes leaves gaps that structured fields don't fully compensate.

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%, establishing baseline 3. Description mentions 'merge strategies' reinforcing the strategy parameter and implies the branch parameter is the source, but adds no syntax details, examples, or semantic nuances beyond what the well-documented schema already provides.

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

Purpose4/5

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

States specific action (merge/integrate changes) and resource (branches). However, it fails to distinguish from siblings like git_rebase, git_cherry_pick, or git_pull which also integrate changes, leaving ambiguity about which integration method to choose.

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?

Provides no guidance on when to use merge versus rebase (git_rebase), cherry-pick (git_cherry_pick), or pull (git_pull). Missing prerequisites like 'ensure working directory is clean' or guidance on conflict resolution workflows despite the existence of the abort parameter.

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

git_pullGit PullA

Pull changes from a remote repository. Fetches and integrates changes into the current branch.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the Git repository. Defaults to session working directory set via git_set_working_dir..
remoteNoRemote name (default: origin).
branchNoBranch name (default: current branch).
rebaseNoUse rebase instead of merge when integrating changes.
fastForwardOnlyNoFail if can't fast-forward (no merge commit).

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
remoteYesRemote name that was pulled from.
branchYesBranch that was pulled.
strategyYesIntegration strategy used.
conflictsYesWhether pull had conflicts.
filesChangedYesFiles that were changed.

TDQS

A3.7/5.0
Behavior3/5

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

The description confirms the write-operation nature (consistent with readOnlyHint:false) by mentioning 'integrates changes,' but fails to disclose critical behavioral traits like potential for merge conflicts, creation of merge commits, or network requirements. With minimal annotations, more safety context was needed.

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

Conciseness5/5

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

Two sentences with zero waste. The first establishes the high-level operation; the second clarifies the mechanism (fetch+integrate) that distinguishes this tool from siblings. Every word earns its place.

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?

Given the existence of an output schema and comprehensive parameter documentation, the description doesn't need to explain return values. However, for a state-modifying operation with complex branching behavior (merge vs rebase), it should mention conflict handling or failure modes to be fully complete.

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

Parameters3/5

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

With 100% schema description coverage, the schema adequately documents all parameters including rebase and fastForwardOnly behaviors. The description adds minimal parameter-specific semantics beyond implying the 'current branch' default, meriting the baseline score for high-coverage schemas.

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 specific verbs ('Pull', 'Fetches', 'integrates') with clear resources ('remote repository', 'current branch'). It effectively distinguishes from siblings by emphasizing the dual fetch-and-integrate nature, unlike git_fetch (fetch only) or git_merge (local integration only).

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?

While the description implies the workflow by stating it both fetches and integrates, it lacks explicit guidance on when to use git_pull versus running git_fetch followed by git_merge, or warnings about prerequisites like a clean working tree. No alternatives are named.

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

git_pushGit PushC

Push changes to a remote repository. Uploads local commits to the remote branch.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the Git repository. Defaults to session working directory set via git_set_working_dir..
remoteNoRemote name (default: origin).
branchNoBranch name (default: current branch).
forceNoForce push (overwrites remote history).
forceWithLeaseNoSafer force push - only succeeds if remote branch is at expected state.
setUpstreamNoSet upstream tracking relationship for the branch.
tagsNoPush all tags to the remote.
dryRunNoPreview the operation without executing it.
deleteNoDelete the specified remote branch.
remoteBranchNoRemote branch name to push to (if different from local branch name).
confirmedNoExplicit confirmation required for force push or branch deletion on protected branches (main, master, production, etc.).

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
remoteYesRemote name that was pushed to.
branchYesBranch that was pushed.
upstreamSetYesWhether upstream tracking was set for the branch.
pushedRefsYesReferences that were successfully pushed.
rejectedRefsYesReferences that were rejected by the remote.

TDQS

C2.9/5.0
Behavior2/5

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

While the annotation indicates readOnlyHint: false, the description fails to disclose critical behavioral traits: that this modifies remote state destructively (force/delete options), requires network connectivity and authentication, or that the 'confirmed' parameter gates dangerous operations on protected branches. The schema reveals these capabilities but the description doesn't contextualize the risks.

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

Conciseness4/5

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

The description is efficiently structured with two short sentences and no wasted words. However, it errs on the side of excessive brevity given the tool's complexity, missing an opportunity to front-load safety warnings about destructive operations.

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

Completeness2/5

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

Despite comprehensive schema coverage and an output schema existing, the description is inadequate for an 11-parameter tool with destructive capabilities. It fails to explain the safety mechanisms (confirmed parameter), the implications of force pushing, or workflow prerequisites (e.g., committing first), leaving significant gaps an agent would need to discover through trial or schema inspection alone.

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

Parameters3/5

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

With 100% schema description coverage, the baseline is appropriately 3. The description adds no parameter-specific guidance (e.g., explaining when to use forceWithLease versus force, or the interaction between branch and remoteBranch), relying entirely on the schema's individual field descriptions.

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

Purpose4/5

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

The description clearly states the tool uploads local commits to a remote repository using specific verbs ('Push', 'Uploads'). However, it lacks explicit differentiation from sibling tools like git_fetch (download) or git_pull (download+merge), which could help an agent choose correctly in workflows involving remote synchronization.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., git_push vs git_fetch), prerequisites (commits must exist locally, remote must be configured), or when to use specific modes like force push versus standard push. The agent must infer usage solely from the parameter schema.

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

git_rebaseGit RebaseB

Rebase commits onto another branch. Reapplies commits on top of another base tip for a cleaner history.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the Git repository. Defaults to session working directory set via git_set_working_dir..
modeNoRebase operation mode: 'start', 'continue', 'abort', or 'skip'.start
upstreamNoUpstream branch to rebase onto (required for start mode).
branchNoBranch to rebase (default: current branch).
interactiveNoInteractive rebase (not supported in all providers).
ontoNoRebase onto different commit than upstream.
preserveNoPreserve merge commits during rebase.

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
conflictsYesWhether rebase had conflicts.
conflictedFilesYesFiles with conflicts that need resolution.
rebasedCommitsYesNumber of commits that were rebased.
currentCommitNoCurrent commit hash if rebase stopped due to conflict.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false (mutative), and the description adds that commits are 'reapplied' and history becomes 'cleaner,' which hints at rewriting. However, it omits key behavioral traits: that commit hashes change, that conflicts may require manual resolution, or that this is a destructive history rewrite.

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

Conciseness5/5

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

Two sentences efficiently structured: first defines the action, second explains the mechanism and value proposition. No redundant or wasted words.

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?

Given the 100% schema coverage and existence of an output schema, the description adequately covers the basics. However, for a complex stateful git operation with conflict potential, the description is minimal—it fails to prepare the agent for the multi-step process or explain what happens in the output schema (likely rebase progress/conflict status).

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

Parameters3/5

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

With 100% schema description coverage, the baseline is 3. The description mentions 'onto another branch' which loosely references the upstream/onto parameters, but adds no syntax clarification, examples, or explanations of the stateful mode workflow (start/continue/abort/skip) beyond what the schema enum already provides.

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

Purpose4/5

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

The description clearly states the tool reapplies commits onto another base for a cleaner history, using specific verbs (rebase, reapplies). The 'cleaner history' phrase implicitly distinguishes it from git_merge (which creates merge commits), though it could explicitly mention the linear history advantage.

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

Usage Guidelines2/5

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

No guidance is provided on when to choose rebase over merge (sibling tool), nor warnings about rebasing public/shared branches. The description lacks prerequisites (e.g., clean working directory) and doesn't explain the multi-step workflow implied by the mode parameter (start/continue/abort).

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

git_reflogGit ReflogA
Read-only

View the reference logs (reflog) to track when branch tips and other references were updated. Useful for recovering lost commits.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the Git repository. Defaults to session working directory set via git_set_working_dir..
refNoShow reflog for specific reference (default: HEAD).
maxCountNoMaximum number of items to return (1-1000).

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
refYesThe reference that was queried.
entriesYesArray of reflog entries in reverse chronological order.
totalEntriesYesTotal number of reflog entries.

TDQS

A3.8/5.0
Behavior3/5

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

The annotation declares readOnlyHint=true, which the description respects by using 'View'. The description adds valuable context about recovery use cases. However, it misses important reflog-specific behaviors like 'local-only history', 'expires after 90 days by default', or 'does not sync to remotes'.

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 efficient sentences with zero waste. The first defines the operation, the second states the value proposition. 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?

Given the presence of an output schema (so return values need not be explained) and the readOnly annotation, the description adequately covers the tool's purpose and primary use case. Could be improved by noting the local-only nature of reflog data.

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

Parameters3/5

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

With 100% schema description coverage, the baseline is 3. The description provides no additional parameter details beyond the schema, but none are needed given the comprehensive schema documentation for path, ref, and maxCount.

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 ('View') and clearly identifies the resource ('reference logs/reflog'). It distinguishes from sibling git_log by specifying it tracks when 'branch tips and other references were updated' rather than showing commit history.

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 identifies a key use case ('recovering lost commits'), which hints at when to use the tool. However, it lacks explicit guidance on when to choose this over git_log or other history tools, and doesn't state prerequisites like requiring a local repository.

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

git_remoteGit RemoteA

Manage remote repositories: list remotes, add new remotes, remove remotes, rename remotes, or get/set remote URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the Git repository. Defaults to session working directory set via git_set_working_dir..
modeNoThe remote operation to perform.list
nameNoRemote name for add/remove/rename/get-url/set-url operations.
urlNoRemote URL for add/set-url operations.
newNameNoNew remote name for rename operation.
pushNoSet push URL separately (for set-url operation).

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
modeYesOperation mode that was performed.
remotesNoList of remotes (for list mode).
urlNoRemote URL (for get-url mode).
addedNoAdded remote (for add mode).
removedNoRemoved remote name (for remove mode).
renamedNoRename information (for rename mode).

TDQS

A3.6/5.0
Behavior3/5

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

Annotations indicate readOnlyHint: false, and the description aligns by mentioning mutation operations (add, remove, rename, set-url). However, it adds no further behavioral context such as what files are modified (.git/config), whether operations are reversible, or error conditions. Adequate given the annotation coverage but minimal added value.

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

Conciseness5/5

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

Single, efficiently structured sentence that front-loads the verb and resource. Every clause corresponds to a core capability with zero redundancy or filler. Excellent information density.

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?

Given 100% schema coverage, existence of output schema, and clear annotation indicating mutability, the description provides sufficient context for an agent to invoke the tool. Minor gap: does not clarify conditionally required parameters (e.g., 'name' is required for add/remove but not list), though the schema enumerates these fields.

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%, establishing a baseline of 3. The description reinforces the 'mode' parameter by listing the enum values in prose, but does not add semantic depth regarding parameter relationships (e.g., that 'add' requires both 'name' and 'url') beyond what the schema provides.

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?

Lists specific operations (list, add, remove, rename, get/set URLs) and identifies the resource (remote repositories). Distinguishes from siblings like git_clone or git_fetch by focusing on configuration management rather than data transfer or initialization, though it doesn't explicitly contrast with these alternatives.

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?

Enumerates possible operations but provides no explicit guidance on when to use this tool versus siblings (e.g., when to use git_remote add vs git_clone). Usage is implied by the operation list, but there are no exclusions, prerequisites, or conditional logic explained.

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

git_resetGit ResetA

Reset current HEAD to specified state. Can be used to unstage files (soft), discard commits (mixed), or discard all changes (hard).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the Git repository. Defaults to session working directory set via git_set_working_dir..
modeNoReset mode: soft (keep changes staged), mixed (unstage changes), hard (discard all changes), merge (reset and merge), keep (reset but keep local changes).mixed
targetNoTarget commit to reset to (default: HEAD).
pathsNoSpecific file paths to reset (leaves HEAD unchanged).
confirmedNoExplicit confirmation required for hard, merge, and keep reset modes on protected branches (main, master, production, etc.).

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
modeYesReset mode that was used.
targetYesTarget commit that was reset to.
filesResetYesFiles that were affected by the reset.

TDQS

A3.7/5.0
Behavior4/5

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

The description effectively discloses graduated destructiveness levels (discard commits vs discard all changes) that complement the readOnlyHint: false annotation. It appropriately warns about data loss potential for hard resets, adding safety context beyond what the boolean annotation alone provides.

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 two-sentence structure is optimally efficient—first establishing the core operation, second detailing modal variations. Zero redundancy; every clause conveys distinct functional information appropriate for agent tool selection.

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?

While the output schema handles return values and the description covers the three most common modes, it incompletely represents the tool's full capability set by omitting merge and keep modes defined in the schema. It also incorrectly implies all operations modify HEAD, failing to mention that the paths parameter enables file-specific resets without moving HEAD.

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

Parameters3/5

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

With 100% schema description coverage, the structured definitions already comprehensively document all parameters including enums and defaults. The description adds semantic framing by categorizing modes by function (unstaging vs discarding), meeting the baseline expectation for high-coverage schemas without adding significant additional constraints or syntax details.

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 provides a specific verb-resource pair ('Reset current HEAD to specified state') and clearly articulates three primary operational modes (soft, mixed, hard). However, it does not explicitly differentiate this tool from git_checkout (which also moves HEAD) or acknowledge the file-specific reset capability via the paths parameter.

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 maps reset modes to specific outcomes (unstage files, discard commits, discard changes), providing clear internal guidance for selecting modes. However, it lacks explicit guidance on when to use this tool versus alternatives like git_checkout or git_clean, leaving the agent to infer the appropriate tool selection.

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

git_set_working_dirGit Set Working DirectoryA

Set the session working directory for all git operations. This allows subsequent git commands to omit the path parameter and use this directory as the default.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path to the git repository to use as the working directory.
validateGitRepoNoValidate that the path is a Git repository.
initializeIfNotPresentNoIf not a Git repository, initialize it with 'git init'.
includeMetadataNoInclude repository metadata (status, branches, remotes, recent commits) in the response. Set to true for immediate repository context understanding. Defaults to false to minimize response size.

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
pathYesThe working directory that was set.
messageYesConfirmation message.
repositoryContextNoRich repository metadata including status, branches, remotes, and recent history. Only included when includeMetadata parameter is true.

TDQS

A4.2/5.0
Behavior4/5

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

Discloses session-scoped statefulness ('session working directory') and side effects on subsequent commands, adding context beyond the readOnlyHint: false annotation. Does not contradict annotations. Could improve by explicitly stating this is temporary session state (not persistent across sessions) or detailing interaction with validateGitRepo/initializeIfNotPresent behaviors.

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 well-structured sentences: first defines the action, second explains the benefit/behavioral consequence. Zero redundancy, front-loaded with critical information. Every word serves the agent's understanding.

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?

Adequate for a configuration tool with output schema present (handling return value documentation). Explains the mechanism of default path inheritance. Minor gap: does not mention error conditions (invalid paths) or explicitly scope the behavior to the current session only, though 'session' implies this.

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

Parameters3/5

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

With 100% schema description coverage, the schema fully documents all four parameters. The description references the 'path parameter' conceptually but does not add syntax details, validation rules, or semantic meaning beyond what the schema provides. Baseline score appropriate given schema completeness.

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?

Clearly states the tool sets a 'session working directory for all git operations' with specific verb (set) and resource (working directory). Effectively distinguishes from operational siblings (git_add, git_commit, etc.) by positioning this as session configuration rather than repository manipulation.

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?

Provides clear context on when to use by explaining it 'allows subsequent git commands to omit the path parameter.' Implicitly suggests use case for batch operations. Could be strengthened by explicitly contrasting with per-command path specification or mentioning git_clear_working_dir for cleanup.

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

git_showGit ShowA
Read-only

Show details of a git object (commit, tree, blob, or tag). Displays commit information and the diff of changes introduced.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the Git repository. Defaults to session working directory set via git_set_working_dir..
objectYesGit object to show (commit hash, branch, tag, tree, or blob).
formatNoOutput format for the git object.
statNoShow diffstat instead of full diff.
filePathNoView specific file at a given commit reference. When provided, shows the file content from the specified object.

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
objectYesObject identifier.
typeYesType of git object shown.
contentYesFormatted output showing the object details.
metadataNoAdditional metadata about the object.

TDQS

A3.8/5.0
Behavior4/5

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

The annotation declares readOnlyHint=true, confirming safety. The description adds valuable behavioral context beyond this: it specifies that the tool displays both metadata ('commit information') and content changes ('diff'), clarifying what output to expect. No contradictions with 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 efficient sentences with zero waste. The first establishes scope (object types), the second establishes output (info + diff). Information is front-loaded and appropriately brief given the rich schema and output schema coverage.

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?

Given 100% schema coverage, existing readOnlyHint annotation, and presence of an output schema, the description appropriately focuses on high-level purpose rather than repeating parameter or return value details. Minor gap: doesn't mention the single-file viewing capability (filePath param) in prose, though this is covered in schema.

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

Parameters3/5

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

With 100% schema description coverage, the schema fully documents all 5 parameters including the filePath single-file view and stat diffstat option. The description provides high-level context ('git object') but doesn't add parameter-specific semantics, syntax examples, or interaction rules (e.g., how filePath modifies the object view).

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

Purpose4/5

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

The description clearly states the tool 'shows details of a git object' and lists specific object types (commit, tree, blob, tag). It specifies the dual output of 'commit information and the diff,' which clarifies intent. However, it doesn't explicitly differentiate from sibling git_diff, which also displays diffs.

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 by specifying which git objects can be inspected (commits, blobs, trees, tags), but provides no explicit guidance on when to prefer this over git_diff or git_log. It lacks prerequisites (e.g., valid object reference format) and exclusion criteria.

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

git_stashGit StashA

Manage stashes: list stashes, save current changes (push), restore changes (pop/apply), or remove stashes (drop/clear).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the Git repository. Defaults to session working directory set via git_set_working_dir..
modeNoThe stash operation to perform. Defaults to push (save current changes).push
messageNoStash message description (for push operation).
stashRefNoStash reference like stash@{0} (for pop/apply/drop operations).
includeUntrackedNoInclude untracked files in the stash (for push operation).
keepIndexNoDon't revert staged changes (for push operation).

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
modeYesOperation mode that was performed.
stashesNoList of stashes (for list mode).
createdNoCreated stash reference (for push mode).
appliedNoApplied stash reference (for pop/apply mode).
droppedNoDropped stash reference (for drop mode).
conflictsNoWhether operation had conflicts.

TDQS

A3.9/5.0
Behavior3/5

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

The description confirms mutability ('save', 'remove') consistent with readOnlyHint:false, but fails to disclose that 'drop' and 'clear' are destructive/irreversible, or that 'pop' removes the stash while 'apply' preserves it. Additional behavioral traits like conflict handling are absent.

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

Conciseness5/5

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

Single, dense sentence efficiently conveys all primary operations without redundancy. Well-structured with the high-level action 'Manage stashes' front-loaded, followed by colon-separated specific capabilities.

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?

Sufficient given the rich schema (100% coverage) and presence of an output schema, but lacks important warnings about destructive operations (drop/clear) and nuanced distinctions between similar modes (pop vs apply) that would help an agent avoid data loss.

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?

With 100% schema coverage, the baseline is 3. The description elevates this by conceptually grouping the six mode enum values into four user-intent categories (list/save/restore/remove), which helps agents understand the purpose of the mode parameter beyond the technical schema definition.

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 ('Manage') and resource ('stashes'), then enumerates exact capabilities (list, save, restore, remove). It clearly distinguishes from sibling tools by focusing exclusively on stash operations rather than branching, committing, or other git workflows.

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?

While it maps operation modes to concepts (save/restore/remove), it lacks explicit guidance on when to use 'pop' versus 'apply', or when stashing is preferable to committing or resetting. No prerequisites (e.g., requiring uncommitted changes for push) are mentioned.

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

git_statusGit StatusA
Read-only

Show the working tree status including staged, unstaged, and untracked files.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the Git repository. Defaults to session working directory set via git_set_working_dir..
includeUntrackedNoInclude untracked files in the output.

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
currentBranchYesCurrent branch name.
isCleanYesTrue if working directory is clean.
stagedChangesYesChanges that have been staged for the next commit.
unstagedChangesYesChanges in the working directory that have not been staged.
untrackedFilesYesFiles in the working directory not tracked by git.
conflictedFilesYesFiles with merge conflicts that need resolution.

TDQS

A4.1/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true. Description adds behavioral context by specifying exactly what 'status' encompasses (staged/unstaged/untracked), but omits edge cases or performance notes.

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

Conciseness5/5

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

Single, dense sentence (11 words) front-loaded with the core action. No redundancy or filler; every word specifies scope or content.

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?

Sufficient for a read-only status tool. Output schema exists to detail return structure, while description adequately covers conceptual content (the three file categories).

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions for 'path' and 'includeUntracked'. Tool description adds no parameter-specific guidance, but the comprehensive schema makes this acceptable (baseline 3).

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?

Specific verb ('Show') and resource ('working tree status') with precise scope ('staged, unstaged, and untracked files'). Clearly distinguishes from siblings like git_diff (line changes) and git_log (commit history).

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?

Provides clear context about what the tool returns (three file categories), implicitly guiding when to use it. Lacks explicit comparison to alternatives (e.g., 'use this instead of git_diff when checking file states').

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

git_tagGit TagA

Manage tags: list all tags, create a new tag, or delete a tag. Tags are used to mark specific points in history (releases, milestones).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the Git repository. Defaults to session working directory set via git_set_working_dir..
modeNoThe tag operation to perform.list
tagNameNoTag name for create/delete operations.
commitNoCommit to tag (default: HEAD for create operation).
messageNoTag message (creates annotated tag). For release tags, summarize the notable changes.
annotatedNoCreate annotated tag. Automatically set to true when message is provided.
signNoSign the commit/tag with GPG.
forceUnsignedOnFailureNoIf GPG/SSH signing fails, retry the tag creation without signing instead of failing.
forceNoForce tag creation/deletion (overwrite existing).

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
modeYesOperation mode that was performed.
tagsNoList of tags (for list mode).
createdNoCreated tag name (for create mode).
deletedNoDeleted tag name (for delete mode).

TDQS

A4.2/5.0
Behavior3/5

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

The description acknowledges mutability (create/delete) which aligns with readOnlyHint:false. However, it fails to disclose behavioral nuances beyond the schema, such as the destructive nature of force deletion, GPG signing failure behaviors, or that list is non-destructive while other modes mutate state.

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?

Extremely efficient two-sentence structure. The first sentence front-loads the available operations; the second provides semantic context. No redundant or wasted language.

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?

Given 100% schema coverage and the presence of an output schema, the description adequately covers the tool's purpose. It could be improved by mentioning the default 'list' mode behavior or the relationship between the message and annotated parameters, but these are discoverable in the schema.

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?

While the schema has 100% coverage, the description adds valuable conceptual context by explaining tags mark 'releases' and 'milestones,' which helps agents understand the semantics of the tagName and message parameters for annotated tags.

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

Purpose5/5

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

The description explicitly states the three operations (list, create, delete) and the resource (tags). It clearly distinguishes this from sibling tools like git_branch or git_commit by defining tags as markers for 'specific points in history (releases, milestones)'.

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?

Provides clear context on the semantic purpose of tags (marking releases, milestones), which implies when to use the tool versus alternatives like branches. However, it lacks explicit guidance on when to choose between list/create/delete modes or warnings about delete implications.

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

git_worktreeGit WorktreeB

Manage multiple working trees: list worktrees, add new worktrees for parallel work, remove worktrees, or move worktrees to new locations.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to the Git repository. Defaults to session working directory set via git_set_working_dir..
modeNoThe worktree operation to perform.list
worktreePathNoPath for the new worktree (for add/move operations).
branchNoBranch to checkout in the new worktree (for add operation).
commitishNoCommit/branch to base the worktree on (for add operation).
forceNoForce operation (for remove operation with uncommitted changes).
newPathNoNew path for the worktree (for move operation).
detachNoCreate worktree with detached HEAD (for add operation).
verboseNoProvide detailed output for worktree operations.
dryRunNoPreview the operation without executing it (for prune operation).

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesIndicates if the operation was successful.
modeYesOperation mode that was performed.
worktreesNoList of worktrees (for list mode).
addedNoAdded worktree path (for add mode).
removedNoRemoved worktree path (for remove mode).
movedNoMove operation info (for move mode).
prunedNoPruned worktree paths (for prune mode).

TDQS

B3.4/5.0
Behavior3/5

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

The annotation readOnlyHint: false indicates this is not a read-only tool, and the description confirms this by mentioning 'remove' and 'move' operations. It adds context about 'parallel work' as a use case. However, it fails to mention the 'prune' operation, does not elaborate on the destructive potential of remove operations (e.g., uncommitted changes), and does not clarify filesystem side effects beyond the schema.

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

Conciseness4/5

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

The description is efficiently structured as a single sentence with a colon-delimited list of operations. It is front-loaded with the core concept ('Manage multiple working trees'). It loses one point for omitting 'prune' from the operation list, which creates a minor gap between the description and actual capabilities.

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?

Given the tool has 10 parameters, multiple modes, and an output schema, the description provides adequate high-level orientation but leaves gaps. The omission of the 'prune' mode is notable, and there is no mention of default behaviors (e.g., mode defaults to 'list'). Since an output schema exists, the description correctly does not attempt to document return values.

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

Parameters3/5

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

With 100% schema description coverage, the structured data already documents all 10 parameters comprehensively. The description adds minimal semantic value beyond the schema, though it implicitly groups parameters by operation type (add/move/remove). Baseline score of 3 is appropriate since the schema carries the full burden.

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 identifies the resource (working trees) and enumerates specific operations (list, add, remove, move). It distinguishes from siblings like git_checkout or git_branch by focusing on worktree management and mentioning 'parallel work.' However, 'Manage' is slightly generic as a verb, and it omits the 'prune' operation present in the schema enum.

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 parallel work' implies a use case (concurrent development on multiple branches), but there are no explicit when-to-use guidelines, prerequisites, or comparisons to alternatives like git_clone or git_stash. The agent must infer appropriate scenarios from the implied context.

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

git_wrapup_instructionsGit Wrap-up InstructionsA
Read-only

Provides the user's desired Git wrap-up workflow and instructions. Returns custom workflow steps (if configured) or default best practices for reviewing, documenting, and committing changes. Includes current repository status to guide next actions.

ParametersJSON Schema
NameRequiredDescriptionDefault
acknowledgementYesAcknowledgement to initiate the wrap-up workflow.
updateAgentMetaFilesNoInclude an instruction to update agent-specific meta files.
createTagNoIf true, instructs the agent to create a Git tag after committing all changes. Only set to true if given permission to do so.

Output Schema

ParametersJSON Schema
NameRequiredDescription
instructionsYesThe set of instructions for the wrap-up workflow.
gitStatusNoThe current structured git status.
gitStatusErrorNoAny error message if getting git status failed.

TDQS

A3.7/5.0
Behavior4/5

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

The description aligns with readOnlyHint=true by emphasizing 'provides' and 'returns' rather than modifying state. It adds valuable context beyond annotations by distinguishing between custom configured workflows and default best practices, and noting that current repository status is included to guide actions.

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

Conciseness4/5

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

The three-sentence structure is efficient and front-loaded: sentence 1 states the core purpose, sentence 2 clarifies return value variations (custom vs default), and sentence 3 notes the inclusion of repository status. No redundant or wasted text.

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?

Given the existence of an output schema (which handles return value documentation) and 100% input schema coverage, the description provides adequate context. It appropriately covers the tool's retrieval nature, workflow customization aspects, and repository status integration without over-specifying.

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

Parameters3/5

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

With 100% schema description coverage, the parameter documentation is comprehensive in the schema itself. The description does not add parameter-specific semantics, but given the high schema coverage, the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool provides/returns workflow steps and instructions for git wrap-up, distinguishing it from action-oriented siblings like git_commit or git_tag. However, it could more explicitly emphasize that this retrieves configuration rather than executes wrap-up actions.

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 context ('wrap-up workflow,' 'reviewing, documenting, and committing changes') but lacks explicit guidance on when to use this retrieval tool versus directly executing git commands. No alternative tools are mentioned.

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

Tool Schema Changelog

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

  1. 28 tool updatesv2.10.5
    • First observedgit_add
    • First observedgit_blame
    • First observedgit_branch
    • First observedgit_changelog_analyze
    • First observedgit_checkout
    • First observedgit_cherry_pick
    • First observedgit_clean
    • First observedgit_clear_working_dir
    • First observedgit_clone
    • First observedgit_commit
    • First observedgit_diff
    • First observedgit_fetch
    • First observedgit_init
    • First observedgit_log
    • First observedgit_merge
    • First observedgit_pull
    • First observedgit_push
    • First observedgit_rebase
    • First observedgit_reflog
    • First observedgit_remote
    • First observedgit_reset
    • First observedgit_set_working_dir
    • First observedgit_show
    • First observedgit_stash
    • First observedgit_status
    • First observedgit_tag
    • First observedgit_worktree
    • First observedgit_wrapup_instructions

TDQS

A3.7/5.0

Scored across 28 tools

Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity. Each tool corresponds to a specific Git command or operation, such as git_add for staging files, git_commit for creating commits, and git_merge for merging branches. The descriptions reinforce these distinctions, making it easy for an agent to select the correct tool without confusion.

Naming Consistency5/5

The tool names follow a highly consistent verb_noun pattern throughout, all prefixed with 'git_' and using snake_case uniformly. Examples include git_clone, git_pull, and git_status, with no deviations in style or structure. This predictability enhances readability and usability for agents.

Tool Count3/5

With 28 tools, the count feels heavy for a Git server, as many tools cover niche or advanced operations like git_changelog_analyze and git_wrapup_instructions. While comprehensive, it may overwhelm agents with less common commands, suggesting a borderline scope that could benefit from consolidation or simplification.

Completeness5/5

The tool set provides complete coverage of Git operations, including core commands (e.g., clone, commit, push), branch management, history viewing, and advanced features like stashing and worktrees. There are no obvious gaps; agents can perform full CRUD/lifecycle tasks for repository management without dead ends.

Maintenance

ActivitySlowing
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    A Model Context Protocol server for Git repository interaction and automation. This server provides tools to read, search, and manipulate Git repositories via Large Language Models.
    12
    57,038 PyPI
    91,120
    MIT
  • A
    license
    C
    quality
    C
    maintenance
    Node.js server implementing Model Context Protocol for git operations, enabling AI assistants to manage git repositories through natural language commands.
    11
    42 npm
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that enables LLMs to interact with Git repositories, providing tools to read, search, and manipulate Git repositories through commands like status, diff, commit, and branch management.
    12
    MIT
  • A
    license
    C
    quality
    B
    maintenance
    A Model Context Protocol server that enables LLMs to interact with Git repositories, providing tools to read, search, and manipulate Git repositories through commands like status, diff, commit, and branch operations.
    22
    4
    MIT