Skip to main content
Glama
LuiccianDev

MCP Git Commit Generator

by LuiccianDev

Python 3.13+ Code style: black Imports: isort Type checking: mypy Ruff GitPython pre-commit License: MIT

A Python package implementing the Model Context Protocol (MCP) to generate meaningful Git commit messages by analyzing repository changes.


πŸš€ Overview

MCP Git Commit Generator is a Python package that leverages the Model Context Protocol (MCP) to analyze your Git repository and generate conventional, context-aware commit messages. It supports multiple deployment modes and integrates seamlessly with DXT and MCP environments.


Related MCP server: Git Auto Commit MCP Server

πŸ› οΈ Tool Reference

For a complete list of available tools and their input schemas, see TOOLS.md.


πŸ“¦ Installation

Prerequisites

  • Python 3.11+ (with type hints)

  • UV Package Manager (Install UV) or use pip

  • Git (for repository operations)

  • Desktop Extensions (DXT) (Install DXT) for packaging .dxt files for Claude Desktop

Clone the Repository

git clone https://github.com/LuiccianDev/mcp_git_commit_generator.git
cd mcp_git_commit_generator

Install in Development Mode

pip install -e .

πŸ“‚ Project Structure

mcp_git_commit_generator/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ core/                  # Core logic and utilities
β”‚   β”‚   └── __init__.py
β”‚   β”œβ”€β”€ tools/                 # MCP tool implementations
β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”œβ”€β”€ commit_analysis.py # Commit message generation logic
β”‚   β”‚   β”œβ”€β”€ git_operations.py  # Git repository operations
β”‚   β”‚   └── register_tools.py  # Tool registration for MCP
β”‚   β”œβ”€β”€ __init__.py            # Package metadata
β”‚   β”œβ”€β”€ __main__.py            # CLI entry point
β”‚   └── server.py              # MCP server implementation
β”œβ”€β”€ tests/                     # Unit and integration tests
β”‚   └── test_commit_analysis.py
β”œβ”€β”€ manifest.json              # DXT packaging manifest
β”œβ”€β”€ TOOLS.md                   # Tool reference documentation
└──README.md                  # Project documentation

πŸ§ͺ Development

Setup Development Environment

  1. Clone the repository and navigate to the project directory.

  2. Install development dependencies:

    pip install -e ".[dev]"
  3. Install pre-commit hooks:

    pre-commit install

βš™οΈ Deployment Modes

MCP Git Commit Generator Server supports three deployment modes to fit different workflows and environments:

DXT Package Deployment

Recommended for: Users in the DXT ecosystem who want seamless configuration management.

  1. Package the project:

    dxt pack
  2. Usage: Once packaged, the tool integrates directly with DXT-compatible clients with automatic user configuration variable substitution.

  3. Server Configuration: This project includes manifest.json for building the .dxt package.

For more details, see DXT Package Documentation.

Traditional MCP Server

Recommended for: Standard MCP server deployments with existing MCP infrastructure.

Add to your MCP configuration file (e.g., Claude Desktop's mcp_config.json):

# Build packages
uv build
# Install packages
pip install dist/your_package*.whl

Then configure MCP:

{
  "mcpServers": {
    "mcp_git_commit": {
      "command": "uv",
      "args": ["run", "mcp_git_commit"]
    }
  }
}

Or use this configuration (less recommended):

{
   "mcp-word": {
      "command": "/Users/user/to/repo/.venv/Scripts/python",
      "args": [
        "/Users/user/to/repo/src/mcp_git_commit_generator/server.py"
      ]
   }
}

🀝 Contributing

Contributions are welcome! Please read the contribution guidelines before submitting pull requests.


πŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.


Available Tools

15 tools
generate_commit_messageA

Analyses staged changes and produces a conventional commit message suggestion.

Reads staged diffs and file metadata to generate a commit message in the format type(scope): description. The LLM should use the returned analysis to craft the final message.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathYesPath to the Git repository
commit_typeNoOverride the conventional commit type (e.g. 'feat', 'fix', 'docs'). Auto-detected if omitted.
scopeNoOverride the scope (e.g. 'auth', 'api'). Auto-detected from changed files if omitted.
lite_modeNoSkip loading the full diff for faster analysis. Useful for large repos.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose all behavioral traits. It mentions reading staged diffs and file metadata and producing a suggestion, but is vague about the exact return value ('produces a suggestion' vs 'use the returned analysis'), and does not address failure modes (e.g., no staged changes) or side effects.

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

Conciseness4/5

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

The description is concise (two sentences) and front-loaded with the primary action. The second sentence adds relevant detail, though it could be slightly tighter (e.g., merging the LLM instruction).

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

Completeness3/5

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

The description covers the core functionality and mentions the commit message format, but lacks guidance on preconditions (e.g., must have staged changes) and does not explicitly differentiate from similar tools. An output schema exists, so return value details are not needed.

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%, so the baseline is 3. The description does not add meaning beyond the schema's parameter descriptions; it only notes that staged diffs and metadata are read, which is already implied by the tool's purpose.

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

Purpose5/5

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

The description clearly states the tool's purpose: it 'analyses staged changes and produces a conventional commit message suggestion.' This distinguishes it from sibling tools like git_commit_tool (which commits) and git_diff_staged_tool (which shows diffs).

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 implies usage for generating a commit message suggestion before committing, but does not explicitly contrast with siblings or state when not to use it. However, the context of staged changes makes it reasonably clear.

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

git_add_toolA

Adds file contents to the staging area.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathYesPath to the Git repository
filesYesList of files to stage. Use ['.'] to stage everything

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description must disclose behaviors. It only states the basic function, without mentioning side effects, required permissions, error conditions, or handling of missing 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 is a single concise sentence, front-loaded with the essential purpose. 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?

The tool is simple and has an output schema, but the description lacks guidance on common use cases or return value interpretation. It is adequate but not 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?

Schema coverage is 100% with clear descriptions for both parameters. The description adds no additional meaning beyond what the schema provides, so baseline score applies.

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

Purpose5/5

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

The description 'Adds file contents to the staging area' clearly states the action and resource, and it distinguishes from siblings like git_commit_tool and git_status_tool.

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?

No explicit when-to-use or when-not-to-use guidance is given. Usage is implied by the context of Git operations, but no alternatives are mentioned.

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

git_branch_toolB

Lists Git branches (local, remote, or all).

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathYesPath to the Git repository
branch_typeNoWhich branches to list: 'local', 'remote', or 'all'local
containsNoOnly show branches that contain this commit SHA
not_containsNoOnly show branches that do NOT contain this commit SHA

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It only states the basic listing function but does not mention potential behaviors such as requiring the repo path to be valid, performance considerations for large repositories, or any side effects.

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

Conciseness4/5

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

The description is a single concise sentence that effectively communicates the core purpose. While it could be more structured (e.g., listing options), it is appropriate in length and front-loaded.

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

Completeness2/5

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

Despite having an output schema and four parameters, the description is too sparse. It omits mention of the optional filtering parameters (contains, not_contains) and does not provide enough context for an agent to fully understand the tool's capabilities.

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

Parameters3/5

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

The input schema already provides complete descriptions for all four parameters (100% coverage). The tool's description adds no additional parameter semantics beyond what the schema offers.

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 that the tool lists Git branches, specifying the options local, remote, or all. This directly describes the action and resource, and distinguishes it from other branch-related sibling tools like git_create_branch_tool or git_checkout_tool.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternative tools for branch operations. There is no mention of prerequisites or context like requiring a valid repo path.

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

git_checkout_toolC

Switches to the specified branch.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathYesPath to the Git repository
branch_nameYesName of the branch to switch to

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description fails to disclose behavioral traits such as potential side effects (e.g., overwriting local changes, changing working directory) or required permissions. This omission leaves the agent unaware of important implications.

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 a single concise sentence that clearly communicates the tool's primary function. It is front-loaded and contains no unnecessary words, but could benefit from additional context without becoming verbose.

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?

Given the tool's complexity as a git operation with side effects, the description is incomplete. It does not mention the return value (despite an output schema being present), error conditions, or the impact on the working directory. This leaves gaps for an AI agent.

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

Parameters3/5

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

The input schema has 100% description coverage, meaning each parameter's purpose is already documented. The description adds no extra semantic value beyond what the schema provides, so a 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 verb 'switches' and the resource 'branch', indicating the tool's action. However, it does not distinguish itself from sibling tools like git_branch_tool or git_create_branch_tool, which could cause confusion about when to use this tool versus creating a branch.

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 use this tool versus alternatives. There is no mention of prerequisites (e.g., clean working tree, existing branch) or scenarios where other tools should be preferred.

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

git_commit_toolB

Records staged changes to the repository with the given commit message.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathYesPath to the Git repository
messageYesThe commit message

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

The description implies a write operation (committing) but does not disclose behavioral details like requiring staged changes, potential failure modes (e.g., no changes staged, dirty index), or that it can be undone with git reset. No annotations are present to compensate.

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

Conciseness5/5

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

The description is a single sentence, front-loading the action 'Records staged changes'. Every word is necessary with no redundancy or 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?

For a standard git commit operation, the description paired with the input schema and output schema (present) is adequate to understand the basic functionality. However, it lacks context about typical workflow steps (e.g., staging first) and error conditions.

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

Parameters3/5

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

Schema description coverage is 100%, with clear descriptions for both parameters ('Path to the Git repository' and 'The commit message'). The tool description does not add additional semantic value 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 the specific phrase 'Records staged changes' which clearly identifies the action as committing changes to a repository. It distinguishes this tool from siblings like git_add_tool (staging) and git_diff_tool (viewing differences).

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 use this tool vs alternatives. It does not mention prerequisites such as staging changes first (sibling git_add_tool) or that it should be used after reviewing changes with git_diff_staged_tool.

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

git_create_branch_toolB

Creates a new branch from an optional base branch.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathYesPath to the Git repository
branch_nameYesName of the new branch
base_branchNoBranch to base the new one off. Defaults to the current branch

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It does not disclose side effects (e.g., whether the new branch is automatically checked out, what happens if the base branch doesn't exist, or whether it overwrites an existing branch). This omission is critical for an AI agent.

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, no fluff. Every word adds value: 'Creates', 'new branch', 'optional base branch' are all necessary and sufficient.

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's simplicity, the description covers the basic action. However, it lacks information on preconditions (e.g., repo exists, branch doesn't exist) and postconditions (e.g., stays on current branch). An output schema exists but isn't described, so return value context is missing. Adequate but with gaps.

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%, so the baseline is 3. The description adds no extra meaning beyond the schema: 'optional base branch' is already stated by the schema's default null and description of base_branch.

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 it creates a branch, differentiating from sibling tools like git_branch_tool (which likely lists/deletes) and git_checkout_tool (which switches). It specifies the optional base branch, adding precision.

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 on when to use this tool versus alternatives like git_checkout_tool or when to avoid it (e.g., if a branch name already exists). The description only states what it does, not when to use it.

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

git_diff_staged_toolB

Shows changes that are staged for commit.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathYesPath to the Git repository
context_linesNoNumber of context lines to show in diff output

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must convey behavior. It only states it shows staged changes, implying a read operation, but lacks details on output format, performance, or limitations.

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 a single sentence that is concise and front-loaded. It could be slightly more informative without losing brevity.

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's simplicity and the presence of an output schema, the description is minimally adequate. However, it could mention the diff output format or contrast with similar tools for completeness.

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%, so the schema already explains both parameters. The description adds no extra meaning beyond 'staged changes'.

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 shows staged changes, which is a specific verb and resource. It differentiates from sibling tools like git_diff_unstaged_tool and git_diff_tool, which handle unstaged or all changes.

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 like git_diff_unstaged_tool. No prerequisites or contexts are mentioned.

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

git_diff_toolB

Shows differences between branches or commits.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathYesPath to the Git repository
targetYesBranch name or commit hash to diff against
context_linesNoNumber of context lines to show in diff output

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, and the description lacks behavioral details such as performance implications, required permissions, or output characteristics. The tool's behavior beyond showing diffs is undisclosed.

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 a single concise sentence, front-loading the core purpose. While efficient, it could be slightly more informative without sacrificing brevity.

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 complexity (3 parameters, output schema exists), the description provides minimal context. It covers the basic purpose but lacks details on usage scenarios and behavioral constraints, making it adequate but incomplete.

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?

All three parameters have descriptions in the input schema (100% coverage), so the baseline is 3. The tool description adds no additional meaning beyond the schema's parameter descriptions.

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 shows differences between branches or commits, specifying the verb and resource. It distinguishes itself from sibling tools like git_diff_staged_tool and git_diff_unstaged_tool by focusing on branches/commits.

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 on when to use this tool versus alternatives. The description does not mention context, prerequisites, or exclusions, leaving the agent without decision support.

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

git_diff_unstaged_toolB

Shows changes in the working directory that are not yet staged.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathYesPath to the Git repository
context_linesNoNumber of context lines to show in diff output

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It only states 'shows changes' without disclosing behavioral traits such as whether it modifies files, performance implications, or that it only shows tracked files. The output schema existence is not leveraged in the description.

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 a single sentence with no unnecessary words. It is front-loaded with the core purpose. Slightly more structure could improve scannability, but it is appropriately concise.

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

Completeness3/5

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

For a simple diff tool with full schema coverage and an existing output schema, the description covers the basic purpose. However, it lacks usage guidelines and behavioral details, leaving some context gaps. Adequate but not thorough.

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%, so both parameters (repo_path, context_lines) are documented in the schema. The description adds no additional meaning beyond what is already in the schema, meeting the baseline of 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?

The description clearly states the tool shows changes in the working directory that are not yet staged. It uses specific verb 'shows' and resource 'changes in the working directory unstaged', which distinguishes it from siblings like git_diff_staged_tool.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives like git_diff_staged_tool or git_diff_tool. Usage is only implied by the name and description, which may not be sufficient for an AI agent.

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

git_init_toolB

Initialises a new Git repository at the given path.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathYesPath where the new Git repository will be initialised

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only says 'initialises'. It fails to disclose side effects such as creating a .git folder, potential overwrite, required permissions, or whether it fails gracefully on invalid paths.

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

Conciseness5/5

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

A single sentence that is perfectly concise and front-loaded. Every word contributes to understanding the tool's purpose without redundancy.

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 tool is simple and has an output schema (so return values need not be detailed), the description lacks any behavioral context like whether initialization is idempotent, error handling, or state changes beyond creating a .git folder. It is minimally adequate but not comprehensive.

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

Parameters3/5

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

The input schema already describes 'repo_path' as 'Path where the new Git repository will be initialised'. The description does not add additional meaning beyond the schema; with 100% schema coverage, baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'initialises', the resource 'new Git repository', and includes the scope 'at the given path'. It distinguishes itself from sibling tools like git_add_tool or git_commit_tool which perform different operations.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus other sibling tools. It does not mention prerequisites (e.g., path must exist) or scenarios where initialization is inappropriate (e.g., existing .git directory).

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

git_log_toolB

Shows the commit log of the repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathYesPath to the Git repository
max_countNoMaximum number of commits to return

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states it 'shows' the log. It does not disclose any behavioral traits like read-only nature, default ordering, or potential performance impacts.

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 a single, concise sentence with no wasted words, though it could be slightly more informative without becoming verbose.

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

Completeness3/5

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

The tool is simple with two parameters and an output schema, so the description is minimally adequate. However, it lacks context about default behavior (e.g., log order), and does not help distinguish from sibling tools.

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

Parameters3/5

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

Schema description coverage is 100%; both parameters have descriptions. The tool description adds no additional meaning 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 clearly states 'Shows the commit log of the repository,' using a specific verb ('shows') and resource ('commit log'), which distinguishes it from sibling tools like git_status_tool or git_diff_tool.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, such as git_show_tool or git_diff_tool, nor any exclusions or prerequisites.

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

git_optimized_statusA

Fast status check using GitPython β€” shows staged, unstaged, and untracked files.

Preferred over git_status_tool when you only need a quick overview before deciding whether to generate a commit message.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathYesPath to the Git repository

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden. It discloses the tool is a fast, read-only status check using GitPython, listing the file states shown. It does not mention any side effects or prerequisites beyond the repo_path, but for a status check, this is sufficient. A score of 4 reflects good transparency with minor room for more detail (e.g., behavior with large 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?

Two sentences, no wasted words, front-loaded with the action and result. The description is efficient and easy to parse.

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 tool has one parameter, an output schema, and sibling tools providing context, the description sufficiently covers purpose, usage guidelines, and basic behavior. An agent can confidently select and invoke this tool for its intended use case.

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

Parameters3/5

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

The only parameter repo_path has 100% description coverage in the schema, so baseline is 3. The tool description does not add additional meaning about the parameter 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 clearly states the tool performs a fast status check showing staged, unstaged, and untracked files using GitPython. It also distinguishes itself from the sibling git_status_tool by emphasizing speed and suitability for quick overviews before commit message generation, meeting the specific verb+resource requirement.

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

Usage Guidelines5/5

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

The description explicitly says 'Preferred over git_status_tool when you only need a quick overview before deciding whether to generate a commit message,' providing clear when-to-use guidance and implicitly when not to use (i.e., when more detail is needed).

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

git_reset_toolA

Unstages all staged changes (non-destructive β€” does not discard modifications).

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathYesPath to the Git repository

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations provided, the description fully discloses behavior: it unstages all staged changes and explicitly states it is non-destructive. This covers safety and scope without contradiction.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the action and key constraint. Every word adds value with no redundancy.

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

Completeness5/5

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

For a simple unstaging tool with an output schema provided, the description sufficiently covers what the tool does and its safety profile. No additional context is needed given the output schema documents 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?

The single parameter repo_path has 100% schema coverage with a clear description. The tool description adds no additional parameter-specific context beyond what the schema already provides, warranting a baseline score of 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?

The description clearly states 'Unstages all staged changes' with a specific verb ('Unstages') and resource ('staged changes'). It distinguishes from sibling tools like git_add_tool, git_commit_tool, and git_diff_staged_tool by explicitly targeting the staging area.

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 with 'non-destructive β€” does not discard modifications', implying the tool is safe for unstaging without losing file changes. However, it omits explicit guidance on when not to use it (e.g., for hard resets or discarding changes), which would improve score.

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

git_show_toolB

Shows the metadata and diff of a specific commit.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathYesPath to the Git repository
revisionYesCommit hash, tag, or branch name to inspect

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations provided. Description implies read-only but does not explicitly state no side effects. It adds 'metadata and diff' context but lacks details on output format or limits.

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, front-loaded, no wasted words. Perfectly concise for the purpose.

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 simple tool, good schema, and output schema existence, the description adequately covers the main purpose. Could be slightly more detailed about what 'metadata' includes, but sufficient.

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 parameter descriptions. Description adds minimal extra meaning beyond 'shows a specific commit'. Baseline 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 it shows metadata and diff of a specific commit, which is a specific verb and resource. It distinguishes from git_log_tool (log) and git_diff_tool (diff). However, 'metadata' is somewhat vague but acceptable.

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 on when to use this tool vs alternatives like git_log_tool or git_diff_tool. No mention of when not to use or prerequisites.

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

git_status_toolC

Shows the working tree status.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathYesPath to the Git repository

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist, so the description carries full burden. It does not disclose behavioral traits such as whether the repo must exist, if it shows all files, or if it has performance implications, leaving the agent uninformed.

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 a single concise sentence with no wasted words. However, it is borderline too minimal, sacrificing completeness for brevity.

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's simplicity (one required parameter), the description is adequate but lacks context about the output format or relationship to sibling tools like git_optimized_status, leaving gaps for an agent.

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

Parameters3/5

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

The schema covers the single parameter with a clear description. The tool description adds no extra meaning beyond the schema's 'Path to the Git repository', so credit is minimal beyond baseline.

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

Purpose4/5

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

The description clearly states the tool shows the working tree status, using a specific verb and resource. It distinguishes from sibling tools like git_log_tool or git_add_tool, but does not elaborate on the details of status (e.g., staged/unstaged changes) to fully differentiate from git_optimized_status.

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 usage guidance is provided. The description does not specify when to use this tool versus alternatives like git_optimized_status or git_diff_tool, leaving the agent without context for selection.

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. 15 tool updatesv1.0.0
    • First observedgenerate_commit_message
    • First observedgit_add_tool
    • First observedgit_branch_tool
    • First observedgit_checkout_tool
    • First observedgit_commit_tool
    • First observedgit_create_branch_tool
    • First observedgit_diff_staged_tool
    • First observedgit_diff_tool
    • First observedgit_diff_unstaged_tool
    • First observedgit_init_tool
    • First observedgit_log_tool
    • First observedgit_optimized_status
    • First observedgit_reset_tool
    • First observedgit_show_tool
    • First observedgit_status_tool

TDQS

A3.6/5.0
Disambiguation4/5

Most tools are clearly distinct, but git_optimized_status and git_status_tool overlap in purpose; however, the description helps differentiate them. Diff tools are separated into staged/unstaged and general, which is clear.

Naming Consistency4/5

All tools follow snake_case and most use the git_ prefix, but generate_commit_message lacks the prefix, and git_optimized_status deviates from the verb_noun pattern.

Tool Count5/5

15 tools cover the essential Git commit generation workflow without being excessive. Each tool serves a distinct purpose in the pipeline.

Completeness5/5

The tool set provides full coverage for generating commits: staging, committing, status checks, diffs, branching, and history. No obvious gaps for the intended domain.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

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/LuiccianDev/mcp_git_commit_generator'

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