This MCP server defines 6 read-only Git inspection tools with reasonable naming (verb-noun convention) and complete input schemas. However, descriptions lack depth and actionability, they explain WHAT tools do but rarely explain WHEN to use them or how they chain together. Most parameter descriptions are minimal (often just restating the parameter name). Output schemas are not documented, forcing LLMs to infer response structure. Error handling is absent from tool definitions. All tools are read-only (low risk), but the lack of rich context makes this a C-grade implementation suitable for Git inspection workflows but not production-grade agent orchestration.
List branches in the repository. Shows all branches with indication of current branch.
Preview files and line change stats touched by commits. Useful for understanding what files were modified in recent commits or in local-only commits not yet pushed.
Find how many steps (commits) back from HEAD to the last change in a file. Useful for understanding when a file was last modified.
View commit history with various filters. Shows commit messages, authors, and dates.
Show changes in the working directory or between commits. Can show unstaged changes, staged changes, or diff between commits.
Get repository status showing modified, staged, and untracked files. Provides a clear overview of the current state of the working directory.
No output schema documentation. LLMs cannot predict response structure or plan downstream operations. All 6 tools lack documented return types, field names, and data structures.
Descriptions lack actionability and discovery guidance. Tools describe WHAT they do but omit WHEN to use them vs. similar tools. E.g., 'hug_log' vs 'hug_h_files' vs 'hug_h_steps' all examine commit history but lack clear distinctions. No hints like 'Call this first to understand repo structure' or 'Use for recent changes only'.
Parameter descriptions are minimal, many just restate the parameter name. E.g., 'count' → 'Number of commits to look back (default: 1)' lacks context on valid ranges or typical use cases. 'temporal' → 'Time-based filter (e.g., 3 days ago...)' includes an example rather than a formal constraint or pattern.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 61 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 44 | - | v1 |
'temporal' parameter in hug_h_files uses free-form string with examples ('3 days ago', '1 week ago', '2024-01-15'). Should be enum-constrained or have a formal pattern. Free-form strings invite hallucinated values like 'next month' or 'yesterday at 3pm'.
Tool naming could be more consistent. 'hug_h_files' and 'hug_h_steps' use domain-specific abbreviations ('h' likely short for 'history'). Clearer names like 'get_commit_files' and 'get_steps_to_file_change' would match LLM expectations for verb_noun patterns.
No error handling guidance. Tools do not document what errors can occur (e.g., invalid file path, no commits matching temporal filter) or how LLMs should recover. No recovery hints or retry guidance.
Interdependencies between tools not documented. E.g., 'hug_branch_list' should suggest 'Call this to discover available branches before using branch names in other tools.' No discovery prompts guide LLM toward multi-step workflows.