mcp-udacity-commit

An MCP server that validates and formats git
commit messages according to the
Udacity Git Commit Message Style Guide.
Install
One line — paste it into your terminal:
claude mcp add udacity-commit -- npx -y mcp-udacity-commit
For Claude Desktop, add to claude_desktop_config.json:
{
"mcpServers": {
"udacity-commit": {
"command": "npx",
"args": ["-y", "mcp-udacity-commit"]
}
}
}
Install from source
git clone https://github.com/qwertymuzaffar/mcp-udacity-commit
cd mcp-udacity-commit
npm install
npm run build
claude mcp add udacity-commit -- node "$(pwd)/build/index.js"
What it exposes
| Resource | udacity://commit-styleguide | The style-guide rules, as markdown |
| Resource | udacity://branch-naming | The companion type/kebab-case branch-naming rules, as markdown |
| Tool | validate_commit_message | Checks a message against every rule (type, ≤50-char subject, capitalization, no trailing period, blank line, ≤72-char body wrap) |
| Tool | format_commit_message | Builds a compliant message from type + subject + optional body/footer |
| Tool | validate_branch_name | Checks a branch name against the companion type/kebab-case convention (e.g. feat/add-dark-mode); release/* is a typed branch with a version-style description (release/1.2.0), and base branches like main are exempt |
Example
format_commit_message turns loose parts into a compliant commit:
in: type=fix subject="prevent duplicate auth token refresh."
body="The refresh timer could fire twice under load, minting two tokens…"
footer="Resolves: #142"
out:
fix: Prevent duplicate auth token refresh
The refresh timer could fire twice under load, minting two tokens and
logging the user out. Serialize refreshes behind a single in-flight
promise so concurrent callers await the same request.
Resolves: #142
validate_commit_message flags every violation:
"Fixed the login bug." → ❌ Not compliant.
• Subject must follow "type: Subject".
• Subject must not end with a period.
validate_branch_name enforces the companion type/kebab-case convention:
"feat/add-dark-mode" → ✅ Compliant branch name.
"release/1.2.0" → ✅ Compliant branch name.
"Feature/Add_Dark_Mode" → ❌ Not compliant.
• Unknown type "Feature". Use one of: feat, fix, docs, style, refactor, test, chore, release.
• Description must be lowercase kebab-case. Got: "Add_Dark_Mode".
"main" → ✅ (base branch — feature-branch rules don't apply)
Develop
npm install
npm run build
npm run test:client
License
MIT