Skip to main content
Glama
cyanheads

git-mcp-server

by cyanheads

Version MCP Spec MCP SDK License Status TypeScript Bun


Tools

28 git operations organized into seven categories:

Category

Tools

Description

Repository Management

git_init, git_clone, git_status, git_clean

Initialize repos, clone from remotes, check status, clean untracked files

Staging & Commits

git_add, git_commit, git_diff

Stage changes, create commits, compare changes

History & Inspection

git_log, git_show, git_blame, git_reflog

View commit history, inspect objects, trace authorship, view ref logs

Analysis

git_changelog_analyze

Gather git context and instructions for LLM-driven changelog analysis

Branching & Merging

git_branch, git_checkout, git_merge, git_rebase, git_cherry_pick

Manage branches, switch contexts, integrate changes, apply specific commits

Remote Operations

git_remote, git_fetch, git_pull, git_push

Configure remotes, fetch updates, synchronize repositories, publish changes

Advanced Workflows

git_tag, git_stash, git_reset, git_worktree, git_set_working_dir, git_clear_working_dir, git_wrapup_instructions

Tag releases (list/create/delete/verify), stash changes, reset state, manage worktrees, set/clear session directory

Related MCP server: GIT MCP Server

Resources

Resource

URI

Description

Git Working Directory

git://working-directory

The current session working directory, set via git_set_working_dir.

Prompts

Prompt

Description

Parameters

Git Wrap-up

Workflow protocol for completing git sessions: review, document, commit, and tag changes.

changelogPath, createTag.

Getting started

Runtime

Works with both Bun and Node.js. Runtime is auto-detected.

Runtime

Command

Minimum Version

Node.js

npx @cyanheads/git-mcp-server@latest

>= 20.0.0

Bun

bunx @cyanheads/git-mcp-server@latest

>= 1.2.0

MCP client configuration

Add the following to your MCP client config (e.g., cline_mcp_settings.json). Update the environment variables to match your setup — especially the git identity fields.

{
  "mcpServers": {
    "git-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": ["@cyanheads/git-mcp-server@latest"],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio",
        "MCP_LOG_LEVEL": "info",
        "GIT_BASE_DIR": "~/Developer/",
        "LOGS_DIR": "~/Developer/logs/git-mcp-server/",
        "GIT_USERNAME": "cyanheads",
        "GIT_EMAIL": "casey@caseyjhand.com",
        "GIT_SIGN_COMMITS": "true"
      }
    }
  }
}

Bun users: replace "command": "npx" with "command": "bunx".

For Streamable HTTP, set MCP_TRANSPORT_TYPE=http and MCP_HTTP_PORT=3015.

Features

Built on mcp-ts-template.

Feature

Details

Declarative tools

Define capabilities in single, self-contained files. The framework handles registration, validation, and execution.

Error handling

Unified McpError system for consistent, structured error responses.

Authentication

Supports none, jwt, and oauth modes.

Pluggable storage

Swap backends (in-memory, filesystem, Supabase, Cloudflare KV/R2) without changing business logic.

Observability

Structured logging (Pino) and optional auto-instrumented OpenTelemetry for traces and metrics.

Dependency injection

Built with tsyringe for decoupled, testable architecture.

Cross-runtime

Auto-detects Bun or Node.js and uses the appropriate process spawning method.

Provider architecture

Pluggable git provider system. Current: CLI. Planned: isomorphic-git for edge deployment.

Working directory management

Session-specific directory context for multi-repo workflows.

Configurable git identity

Override author/committer info via environment variables, with fallback to global git config.

Commit signing

GPG/SSH signing (enabled by default) for commits, merges, rebases, cherry-picks, and tags. Silent fallback to unsigned on failure with signed/signingWarning fields in responses.

Safety

Destructive operations (git clean, git reset --hard) require explicit confirmation flags.

Security

  • All file paths are validated and sanitized to prevent directory traversal.

  • Optional GIT_BASE_DIR restricts operations to a specific directory tree for multi-tenant sandboxing.

  • Git commands use validated arguments via process spawning — no shell interpolation.

  • JWT and OAuth support for authenticated deployments.

  • Optional rate limiting via the DI-managed RateLimiter service.

  • All operations are logged with request context for auditing.

Configuration

All configuration is validated at startup in src/config/index.ts. Key environment variables:

Variable

Description

Default

MCP_TRANSPORT_TYPE

Transport: stdio or http.

stdio

MCP_SESSION_MODE

HTTP session mode: stateless, stateful, or auto.

auto

MCP_RESPONSE_FORMAT

Response format: json (LLM-optimized), markdown (human-readable), or auto.

json

MCP_RESPONSE_VERBOSITY

Detail level: minimal, standard, or full.

standard

MCP_HTTP_PORT

HTTP server port.

3015

MCP_HTTP_HOST

HTTP server hostname.

127.0.0.1

MCP_HTTP_ENDPOINT_PATH

MCP request endpoint path.

/mcp

MCP_AUTH_MODE

Authentication mode: none, jwt, or oauth.

none

STORAGE_PROVIDER_TYPE

Storage backend: in-memory, filesystem, supabase, cloudflare-kv, r2.

in-memory

OTEL_ENABLED

Enable OpenTelemetry.

false

MCP_LOG_LEVEL

Minimum log level: debug, info, warn, error.

info

GIT_SIGN_COMMITS

GPG/SSH signing for commits, merges, rebases, cherry-picks, and tags. Falls back to unsigned on failure (see response signed/signingWarning).

true

GIT_AUTHOR_NAME

Git author name. Aliases: GIT_USERNAME, GIT_USER. Falls back to global git config.

(none)

GIT_AUTHOR_EMAIL

Git author email. Aliases: GIT_EMAIL, GIT_USER_EMAIL. Falls back to global git config.

(none)

GIT_BASE_DIR

Absolute path to restrict all git operations to a specific directory tree.

(none)

GIT_WRAPUP_INSTRUCTIONS_PATH

Path to custom markdown file with workflow instructions.

(none)

MCP_AUTH_SECRET_KEY

Required for jwt auth. 32+ character secret key.

(none)

OAUTH_ISSUER_URL

Required for oauth auth. OIDC provider URL.

(none)

Running the server

Via package manager (no install)

npx @cyanheads/git-mcp-server@latest

Configure through environment variables or your MCP client config.

Local development

# Build and run
npm run rebuild
npm run start:stdio   # or start:http

# Dev mode with hot reload
npm run dev:stdio     # or dev:http

# Checks and tests
npm run devcheck      # lint, format, typecheck
npm test

Cloudflare Workers

npm run build:worker   # Build the worker bundle
npm run deploy:dev     # Run locally with Wrangler
npm run deploy:prod    # Deploy to Cloudflare

Project structure

Directory

Purpose

src/mcp-server/tools

Tool definitions (*.tool.ts). Git capabilities live here.

src/mcp-server/resources

Resource definitions (*.resource.ts). Git context data sources.

src/mcp-server/transports

HTTP and STDIO transport implementations, including auth.

src/storage

StorageService abstraction and provider implementations.

src/services

Git service provider (CLI-based git operations).

src/container

DI container registrations and tokens.

src/utils

Logging, error handling, performance, security utilities.

src/config

Environment variable parsing and validation (Zod).

tests/

Unit and integration tests, mirroring src/ structure.

Response format

Configure output format and verbosity via MCP_RESPONSE_FORMAT and MCP_RESPONSE_VERBOSITY.

JSON format (default, optimized for LLM consumption):

{
  "success": true,
  "branch": "main",
  "staged": ["src/index.ts", "README.md"],
  "unstaged": ["package.json"],
  "untracked": []
}

Markdown format (human-readable):

# Git Status: main

## Staged (2)
- src/index.ts
- README.md

## Unstaged (1)
- package.json

The LLM always receives the complete structured data via responseFormatter — full file lists, metadata, timestamps — regardless of what the client displays. Verbosity controls how much detail is included: minimal (core fields only), standard (balanced), or full (everything).

Development guide

See AGENTS.md for architecture, tool development patterns, and contribution rules.

Testing

Tests use Bun's test runner with Vitest compatibility.

bun test              # Run all tests
bun test --coverage   # With coverage
bun run devcheck      # Lint, format, typecheck, audit

Roadmap

The server uses a provider-based architecture for git operations:

  • CLI provider (current) — Full 28-tool coverage via native git CLI. Requires local git installation.

  • Isomorphic git provider (planned) — Pure JS implementation for edge deployment (Cloudflare Workers, Vercel Edge, Deno Deploy). Uses isomorphic-git.

  • GitHub API provider (maybe) — Cloud-native operations via GitHub REST/GraphQL APIs, no local repo required.

Contributing

Issues and pull requests are welcome. Run checks before submitting:

npm run devcheck
npm test

License

Apache 2.0. See 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. Dates show when Glama detected each change.

  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
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

ActivityMaintained
ResponsivenessWithin a week

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    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
    90,042
    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
    162
    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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cyanheads/git-mcp-server'

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