MCP Server · Go · 100% Local
Raw git returns text for humans. Your agent has to parse it, guess state, and hope it doesn't break. git-courer is an MCP server that speaks JSON — so your agent actually understands what's happening.
$ go install github.com/blak0p/git-courer@latest
22 MCP tools
All return structured JSON. No text parsing, no pager hangs, no guessing. But one of them is special.
[NEW_FUNC] [MOD_SIG ⚠BREAKING] [DEL]. Your agent knows what changed, not just what lines moved.>>>>>> markers. The agent knows exactly what to fix.The special tool
A git-courer commit is not a text blob. It's a structured JSON capsule with WHY and WHAT — designed so any LLM can consume it without parsing, guessing, or hallucinating.
Go parses the AST, classifies the change type, and groups files by dependency graph — all before the LLM sees anything. The LLM only writes the human-readable message from the annotated diff. Zero tokens spent on understanding what changed.
Memory + Release
Each commit is persisted as JSON in .git-courer/. When GitHub squashes your PR, git log loses the individual history. git-courer doesn't use git log — it reads its own store.
✕ What git log sees after a squash
✓ What git-courer remembers
Release reads from the CommitStore — not git log. Aggregates commits across all branches, deduplicates by SHA. Go calculates the version bump from commit types (feat: → minor, fix: → patch). The LLM only writes the changelog. The version number is never at the mercy of a model.
See it in action
The agent calls status, reads structured JSON, then commits with full AST context — all locally.
Traction
Install once. Your code never leaves your machine.
View on GitHub →