mcp-git-historian
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| repo_summaryA | Overview of a local git repository: current branch, total and merge commits, first and last commit (short hash + date), number of authors, top 10 contributors by authored commits and commit activity per month for the 12 calendar months ending at the most recent commit. Good first call. |
| hotspotsA | Rank the most frequently changed files (churn hotspots): commits touching each file and total lines added/deleted, following renames (older commits under a former name count towards the current name, listed in 'renamed_from'). Deleted files and merge commits are excluded. Each row has 'churn_percentile'; only files with >= 3 commits in the top decile carry a 'hint' marking them as refactoring / extra-review candidates. |
| file_historyA | List the commits that touched one file, newest first: short hash, date, author, subject, and lines added/deleted per commit. Follows the file across renames (rename commits include a 'renamed_from' key). |
| blame_summaryA | Summarize line ownership of a file at HEAD: percentage of surviving lines per author, the dominant author, and the dates of the oldest and newest lines. Answers "who wrote / who knows this file?". |
| bus_factorA | Analyze knowledge concentration by commits. Per top-level directory: dominant author and their share of commits; directories with >= 3 commits where one author made more than 80% of them are flagged as knowledge silos. Also returns the global bus factor: the minimum number of authors whose commits cover more than 50% of all commits (lower = riskier). For line-level ownership and inactive authors use knowledge_risk. |
| search_commitsA | Search commit messages case-insensitively, optionally filtered by author and date. Returns matches newest first (hash, date, author, subject). |
| find_changeA | Find when a piece of code appeared or disappeared using git's pickaxe (log -S): returns the commits where the number of occurrences of the pattern changed, i.e. the code was actually added or removed (unlike -G, which also matches lines that merely moved). Great for "when was this constant/function introduced?" forensics. |
| change_couplingA | Temporal coupling: files that keep changing in the same commits, a hidden dependency static analysis cannot see (e.g. code and the test or config that must always be edited with it). Per pair: shared commits, each file's revisions, degree = shared / min(revisions) (1.0 = every change to the rarer file also touched the other) and jaccard = shared / union. Rename-aware; merges and huge commits are ignored. |
| knowledge_riskA | What breaks if someone leaves? Blames the tracked text files and compares line ownership with each author's last commit. Files where inactive authors own more than 50% of the lines are 'orphaned'. Returns the riskiest files, a per-author rollup (lines owned, files they are the main owner of, last commit) and a per-directory rollup. |
| commit_detailsB | Inspect one commit: full message, author and committer with dates, parents (merge detection), every file changed with status (A/M/D/R/C/T), old path for renames and +/- lines, totals, and the branches and tags that contain it (plus the first tag that includes it). Merges are diffed against their first parent. |
| health_reportA | One-call Markdown health report combining repo_summary, hotspots, change_coupling, bus_factor and knowledge_risk, with a "what to look at first" list of files that change often AND are orphaned, single-owner or strongly coupled. Use it for an overview; use the individual tools to dig into details. Returns {"markdown": ...}. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
Each tool targets a distinct git-history analysis: bus_factor for commit concentration, hotspots for churn, blame_summary for line ownership, etc. The descriptions explicitly clarify boundaries (e.g., bus_factor notes 'For line-level ownership and inactive authors use knowledge_risk'). health_report is an aggregator but is clearly marked as a combined overview, not a replacement.
Mostly snake_case but mixed conventions: bus_factor and repo_summary are noun phrases, while search_commits and find_change are verb phrases. The pattern is not strictly consistent, though readable and domain-appropriate.
11 tools for a git historian server is well-scoped, covering key analysis dimensions (bus factor, hotspots, coupling, ownership, etc.) without redundancy. The inclusion of health_report as an aggregator is justified for quick overviews.
Comprehensive for historical analysis but lacks tools for comparing branches or examining uncommitted changes (e.g., diff, status), which are common in git toolkits. Minor gap, but core forensic and health workflows are well-covered.