An MCP server that gives Claude tools to inspect, analyze, and grade local git repositories
DevInsight provides 6 well-named, read-only tools with clear descriptions (avg 120 chars) and visible input schemas. All tools follow verb_noun naming (repo_stats, find_todos, git_log_summary, find_large_files, repo_health, tech_stack). Schemas include parameter types and descriptions. However, output schemas are not documented, LLMs cannot predict return structure. Error handling is minimal (only path-not-found checks visible). No parameter validation guidance (e.g., max_results bounds, threshold_lines constraints). Descriptions lack WHEN-to-use context and dependency hints. No tool annotations (readOnlyHint present conceptually but not declared). Composition is sound, each tool has one responsibility and tools chain naturally (repo_stats → find_large_files → repo_health). Baseline: avg tool description 194 chars (this server ~120), avg params 4 (this server 1 - 2), 100% of A+ tools document return types (this server does not).
Find files in a repo that exceed a line-count threshold.
Scan a repo for TODO / FIXME / HACK / XXX comments.
Summarize the most recent git commits in a repo: author, date, message, and how many lines were added/removed.
Assess overall repository health: file count, line count, largest files, TODO density, and recent commit frequency.
Get a language and size breakdown for a local repository.
Detect the tech stack of a repository by scanning for manifest files, lock files, and dependency declarations.
Output schemas not documented. LLMs cannot predict return structure (e.g., repo_stats returns dict with 'total_files', 'total_lines', 'by_ext', not visible in tool definition). Baseline: 100% of A+ tools document return types.
Parameter constraints not documented. find_todos max_results and find_large_files threshold_lines lack bounds (min/max). LLMs may pass absurd values (e.g., max_results=999999). Baseline: constrained-input pattern requires enums or range declarations.
Error handling minimal. Only path-not-found check visible. No recovery guidance (e.g., 'Path does not exist: {root}', should suggest 'Try repo_stats(path=".") to use current directory'). No categorization of errors as retryable/user-fixable/fatal.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Tool annotations missing. No readOnlyHint, destructiveHint, or idempotentHint declared in tool definitions. All 6 tools are read-only and idempotent, should be explicitly marked for agent planning.
Descriptions lack WHEN-to-use context. E.g., repo_health says 'Assess overall repository health' but does not explain when to call it vs repo_stats. No dependency hints (e.g., 'Call repo_stats first to see file breakdown'). Baseline: descriptions should answer WHAT, WHEN, and prerequisites.