MCP server that validates and formats git commit messages per the Udacity Git Commit Message Style Guide.
Three well-named, focused tools with clear descriptions and complete input schemas. Tool names follow verb_noun pattern (validate_*, format_*). All parameters have type definitions and descriptions. Output schemas are documented via REPORT_SHAPE constant. However, parameter descriptions lack detail on constraints and error cases. No enum constraints on the 'type' parameter in format_commit_message despite a fixed set of valid values. Error handling is minimal, tools return structured reports but lack actionable recovery guidance. Resources are well-implemented with markdown content.
Compose a compliant commit message from its parts. The subject is capitalized, a trailing period is removed, and the body is wrapped at 72 characters.
Check a git branch name against the companion type/kebab-case convention (e.g. "feat/add-dark-mode"). Returns whether it is compliant plus any problems (violations) and warnings (hints). Base branches like main/master are exempt.
Check a commit message against the Udacity Git Commit Message Style Guide. Returns whether it is compliant plus any problems (violations) and warnings (hints).
format_commit_message 'type' parameter lacks enum constraint. Accepts free-form string instead of enforcing ['feat','fix','docs','style','refactor','test','chore']. LLMs may hallucinate invalid types.
Parameter descriptions lack format/constraint details. E.g., 'message' in validate_commit_message does not specify expected length, line-break handling, or encoding. 'name' in validate_branch_name does not clarify what constitutes a valid branch name pattern.
Error handling is minimal. Tools return structured reports (valid/problems/warnings) but do not provide actionable recovery guidance. E.g., if a commit message violates a rule, the tool lists the problem but does not suggest how to fix it or which tool to call next.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2025-06-18+ | v2 |
Output schema for format_commit_message includes 'message' field but does not document its format (plain text, markdown, etc.) or maximum length. Agents cannot predict output size.
No batch or multi-item variants. If an agent needs to validate 10 commit messages, it must call validate_commit_message 10 times sequentially, wasting tokens and latency.