Skip to main content
Glama
qwertymuzaffar

mcp-udacity-commit

mcp-udacity-commit

npm version npm downloads License: MIT MCP

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"]
    }
  }
}
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"

Related MCP server: Cursor Auto-Review MCP Server

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          # → build/index.js
npm run test:client    # spawns the server and exercises the tools

License

MIT

Available Tools

3 tools
format_commit_messageFormat a Udacity-style commit messageA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoWhat & why; auto-wrapped at 72 chars
typeYes
footerNoIssue refs, e.g. "Resolves: #123"
subjectYesImperative subject; auto-capitalized, trailing period removed

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYes
messageYes
problemsYes
warningsYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses formatting behaviors (capitalization, period removal, body wrapping) but omits other behavioral details such as handling of missing optional fields, error conditions, or whether existing formatting is overridden. With no annotations, the description should cover more.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences, no unnecessary words. It front-loads the main purpose and efficiently communicates the key formatting rules.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (likely describing the formatted string), the description need not cover returns. It adequately explains input formatting, though it could mention that type must be from the enum. Still, it is mostly complete for its simple task.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds value beyond the schema by explaining that subject is auto-capitalized and trailing period removed, and body is auto-wrapped. Schema description coverage is 75%, so the baseline is 3; the extra semantics raise it to 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool composes a Udacity-style commit message from parts, specifying key formatting actions (capitalization, period removal, wrapping). It distinctively contrasts with the sibling validate_commit_message by focusing on composition rather than validation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly provide when or when-not to use this tool versus the sibling. The purpose is clear, but no alternatives or exclusions are mentioned, leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_branch_nameValidate a git branch nameA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe branch name to check, e.g. "feat/add-dark-mode"

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYes
problemsYes
warningsYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does a good job: it discloses the return format (compliant, problems, warnings) and the base branch exemption. It does not mention that this is a read-only operation, but the verb 'Check' and the nature of validation make that evident. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core verb and resource, and every sentence adds value. The example and return behavior are condensed effectively with no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter validation tool with an output schema, the description covers purpose, compliance criteria, return contents, and exceptions. It doesn't spell out what 'kebab-case' means, but the example is sufficient. Overall complete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description for 'name', but the tool description adds extra meaning by explaining the convention and giving an example ('feat/add-dark-mode'), which helps the agent understand what values are appropriate beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Check' and a clear resource 'git branch name', and identifies the exact convention being validated. It naturally distinguishes itself from sibling tools that deal with commit messages (validate_commit_message, format_commit_message).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies it is the tool to use for branch name validation against the companion convention, and mentions base branch exceptions. However, it does not explicitly state when to avoid it or name alternative tools for similar tasks, though the sibling context makes the domain distinction obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_commit_messageValidate a commit messageB

Check a commit message against the Udacity Git Commit Message Style Guide. Returns whether it is compliant plus any problems (violations) and warnings (hints).

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesThe full commit message to check

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYes
problemsYes
warningsYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description discloses returns: compliance status, problems (violations), warnings (hints). With no annotations, this is adequate but fails to mention side-effects (likely none) or response structure beyond vague categories.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with action and resource. No extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given low complexity (1 param, output schema exists), description adequately conveys purpose and returns. Missing explicit mention that output structure is defined by schema, but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of the single parameter with description 'The full commit message to check'. Tool description adds no additional semantic detail beyond schema, meeting baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'check a commit message against the Udacity Git Commit Message Style Guide', specifying verb and resource. Sibling tool 'format_commit_message' suggests different operation, but no direct differentiation is made.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., format_commit_message). No prerequisites or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool updatev1.2.2
    • Addedvalidate_branch_name
  2. 2 tool updatesv1.0.2
    • First observedformat_commit_message
    • First observedvalidate_commit_message

TDQS

A4.1/5.0
Disambiguation5/5

Each tool targets a distinct aspect of commit conventions: branch name validation, commit message validation, and commit message formatting. There is no overlap in their purposes, making selection unambiguous.

Naming Consistency5/5

All tool names follow the same verb_noun pattern: validate_branch_name, validate_commit_message, format_commit_message. This consistency makes the toolset predictable and easy to navigate.

Tool Count5/5

With only 3 tools, the server is tightly scoped to its purpose of enforcing Udacity commit guidelines. Each tool earns its place, and the count is neither too thin nor overly heavy.

Completeness5/5

The server covers the full lifecycle of commit standard compliance: validating branch names, validating commit messages, and formatting commit messages. There are no obvious gaps in the domain.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/qwertymuzaffar/mcp-udacity-commit'

If you have feedback or need assistance with the MCP directory API, please join our Discord server