Skip to main content
Glama
git-training-wheels

git-training-wheels

by lava

MCP Git Training Wheels

LLMs try to please, but as the context window gets larger and larger, errors start to happen. In particular, current models have a tendency to just git add -a the whole source tree, accidentally adding lots of random stuff to their commits.

These issues become especially noticable when multiple agents are working on a codebase in parallel, or if you're doing quick fixes while an agent is working. And no current model has the ability to un-fuck a git history.

This MCP server gives the agent some training wheels for using git safely,. It ensures that only a specific named set of files can be committed, and also provides a convenient way to fixup earlier commits. For best results, use permissions to automatically deny the use of Bash(git commit:*) or equivalent.

It's still using the regular git commit command under the hood, so global and global git settings like username, email, and commit signing all apply as usual.

Installation

Using uv

uvx mcp-git-training-wheels

From source

git clone https://github.com/lava/mcp-git-training-wheels
cd mcp-git-training-wheels
uv pip install -e .

Related MCP server: git-mcp-server

Usage

Add the following

Depending on your agent of choice, run something like the following

claude mcp add git-commit -- uvx mcp-git-training-wheels

or drop the following JSON into .mcp.json or any other location of your choice.

{
  "mcpServers": {
    "gtw": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcp-git-training-wheels"
      ],
      "env": {}
    }
  }
}

The specific command may change depending on your installation method.

Available Tools

git_commit

Commits specified files with a message and saves the commit information for later use.

Parameters:

  • files: List of file paths to commit

  • message: Commit message

Example:

{
  "tool": "git_commit",
  "parameters": {
    "files": ["src/main.py", "tests/test_main.py"],
    "message": "Add main functionality and tests"
  }
}

fixup_commit

Adds files to a previously created commit. If the commit is still HEAD, it uses git commit --amend. Otherwise, it uses the gitrevise module to edit the commit in history.

Parameters:

  • files: List of file paths to add to the commit

Example:

{
  "tool": "fixup_commit",
  "parameters": {
    "files": ["src/utils.py"]
  }
}

Available Tools

2 tools
git_commitB

Commit specified files to git with the given commit message.

Inputs: files (required), message (required). Returns: result

git_commit_amendA

Amend files to the last commit created by git_commit. If the commit is still HEAD, uses git commit --amend. Otherwise, uses git commit --fixup to create a fixup commit.

Inputs: files (required). Returns: result

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 2 tools

    Disambiguation5/5

    git_commit creates a new commit, while git_commit_amend modifies an existing commit (via amend or fixup). The purposes are clearly distinct and the descriptions explicitly define the boundary. No ambiguity exists between the two tools.

    Naming Consistency5/5

    Both tools follow the same `git_` prefix plus a verb (`commit`, `commit_amend`), creating a clear and predictable pattern. The naming is consistent and immediately conveys the action.

    Tool Count3/5

    With only two tools, the surface feels thin, even for a focused 'training wheels' server. While the tools are well-chosen for basic commit workflows, a couple more (e.g., log, status) would round out the set. It is borderline but not critically under-scoped.

    Completeness3/5

    The domain appears to be basic git commit operations, and the two tools cover creating and amending/fixing up commits. However, there are notable gaps such as inspecting commit history, checking repository status, or reverting changes, which an agent would likely need for a complete workflow.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A Git-enforced filesystem MCP server that integrates git with filesystem operations, enforcing commits on writes, providing reads with history, and supporting staged branching.
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A secure, git-aware MCP server for working with local repositories, enabling file management, shell commands, and full git operations within allowed directories.
      138 npm
      1
      GPL 3.0
    • A
      license
      A
      quality
      D
      maintenance
      A local MCP server that provides a safe, explicit set of Git operations for version control tasks like status, diff, branching, staging, committing, fetching, merging, and pushing.
      13
      8 npm
      MIT