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
| Primitive | Name | Purpose |
|---|
| 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