git-training-wheels
Provides safe git commit and fixup capabilities, ensuring only specified files can be committed and allowing fixes to earlier commits.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@git-training-wheelscommit src/main.py and tests/test_main.py with message 'Add main functionality'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-wheelsFrom 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-wheelsor 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 commitmessage: 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 toolsgit_commitB
Commit specified files to git with the given commit message.
| Name | Required | Description | Default |
|---|---|---|---|
| files | Yes | List of file paths to commit | |
| message | Yes | Commit message |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only says 'commit' which implies a write/mutation, but gives no details about side effects, requirements (e.g., git repo), or behavior beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded action, no redundancy. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple and functional, but lacks usage context and behavioral caveats. With an output schema present (though not described) and sibling tool, a complete description would mention when to use vs amend or any prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% as both files and message are described in the input schema. The description adds nothing beyond what the schema already provides, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('commit') and resource ('specified files to git') and includes the key message parameter. It is clear, though it doesn't explicitly distinguish itself from the sibling git_commit_amend.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus git_commit_amend. It only states what it does, not context or alternatives, leaving the agent without selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| files | Yes | List of file paths to add to the commit |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. It transparently explains the two execution paths: using 'git commit --amend' if HEAD, otherwise 'git commit --fixup'. This adds meaningful behavioral insight beyond the tool name. It does not mention side effects like rewriting commit history or needing to rebase fixup commits later, but the core conditional behavior is well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: two sentences that front-load the purpose and immediately explain the conditional behavior. Every word earns its place, with no redundant filler or repetition of the tool name. It is efficiently structured for quick parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity and the presence of an output schema (which covers return values), the description provides sufficient context. It explains the two scenarios and the target commit. It could optionally mention the risks of amending pushed commits, but for a tool intended to amend the last git_commit, this is a minor omission. Overall, it is complete enough for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the only parameter 'files' with a description ('List of file paths to add to the commit'), so schema coverage is 100%. The description adds no additional meaning about the parameter itself, leaving the schema to carry the semantic weight. This aligns with the baseline score of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Amend files to the last commit created by git_commit.' It names the specific verb (amend) and resource (files to a commit), and the conditional behavior (HEAD vs fixup) further clarifies the scope. It naturally distinguishes from the sibling git_commit by focusing on modifying an existing commit rather than creating a new one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on how the tool behaves in different situations (HEAD vs not HEAD), which guides when it is appropriate. However, it does not explicitly state 'use this instead of git_commit when you want to amend the last commit' or list exclusions. The sibling tool name gives a strong hint, but explicit guidance would be stronger.
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.
2 tool updates
v0.1.2- First observed
git_commit - First observed
git_commit_amend
TDQS
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.
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.
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.
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
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
A MCP server built for developers enabling Git based project management with project and personal…
The MCP server that vets MCP servers: identity, risk grade and per-tool risk before you install.
An MCP server that provides Javelin Standalone Guardrails
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Git-enforced filesystem MCP server that integrates git with filesystem operations, enforcing commits on writes, providing reads with history, and supporting staged branching.MIT
- AlicenseNot gradedqualityCmaintenanceA secure, git-aware MCP server for working with local repositories, enabling file management, shell commands, and full git operations within allowed directories.6071GPL 3.0
- FlicenseNot gradedqualityDmaintenanceMCP server providing commit rules with SemVer and conventional commits format for development teams.-
- AlicenseAqualityBmaintenanceA 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.1326MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/lava/mcp-git-training-wheels'
If you have feedback or need assistance with the MCP directory API, please join our Discord server