Skip to main content
Glama
kslmisel

git-changelog-mcp

by kslmisel

๏ปฟ

๐Ÿ”– Git Changelog MCP

MCP server that enables AI agents to read git commits and generate beautiful changelogs

npm version License: MIT TypeScript MCP

Features โ€ข Installation โ€ข Usage โ€ข Examples โ€ข Contributing


๐ŸŽฏ What is this?

Turn your git commits into beautiful, organized changelogs in seconds using AI. This Model Context Protocol (MCP) server gives AI assistants like Claude and Cursor the ability to:

  • ๐Ÿ“– Read commit history from any local git repository

  • ๐ŸŽจ Auto-generate formatted changelogs grouped by Features, Fixes, and Chores

  • โšก Work 100% locally with no API keys required

  • ๐Ÿค– Integrate seamlessly with any MCP-compatible AI tool

The Problem It Solves

โŒ Before: Manually writing changelogs is tedious and time-consuming
โŒ Before: Copy-pasting commit messages into release notes
โŒ Before: Inconsistent formatting across team members

โœ… After: Ask AI "generate a changelog from the last 50 commits"
โœ… After: Beautiful, categorized output in seconds
โœ… After: Consistent Conventional Commits formatting automatically


Related MCP server: github-changelog-mcp

โœจ Features

๐Ÿ› ๏ธ Two Powerful Tools

git_get_recent_commits

Fetch recent commits from a local git repository.

Parameters:

  • repoPath (string, required): Absolute or relative path to the git repository

  • count (number, optional): Number of commits to fetch (default: 20, max: 500)

Returns: Structured commit objects with hash, date, message, body, author name, and author email.

git_generate_markdown_changelog

Generate a beautifully structured Markdown changelog grouped by Features, Fixes, and Chores.

Parameters:

  • commits (array, required): Array of commit objects (typically from git_get_recent_commits)

  • title (string, optional): Changelog heading (default: "Changelog")

Returns: Formatted Markdown changelog with commits categorized using Conventional Commits conventions.

๐ŸŽฏ Key Benefits

  • โšก Lightning Fast - Generate changelogs in seconds

  • ๐ŸŽจ Beautiful Formatting - Automatic grouping by commit type

  • ๐Ÿ”’ 100% Local - No external APIs, no data leaves your machine

  • ๐Ÿค– AI-Powered - Works with Claude, Cursor, and any MCP client

  • ๐Ÿ“ Conventional Commits - Smart parsing of commit message formats

  • ๐Ÿ”ง Flexible - Use for releases, PRs, sprint summaries, or team reports


๐Ÿ“ฆ Installation

npm install -g git-changelog-mcp

Option 2: Clone and Build

git clone https://github.com/kslmisel/git-changelog-mcp.git
cd git-changelog-mcp
npm install
npm run build

๐Ÿš€ Usage

For Cursor IDE

Create or edit .cursor/mcp.json in your workspace:

{
  "mcpServers": {
    "git-changelog": {
      "command": "npx",
      "args": ["-y", "git-changelog-mcp"]
    }
  }
}

Restart Cursor and the server will be available.

For Claude Desktop

Add to your Claude Desktop config:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "git-changelog": {
      "command": "npx",
      "args": ["-y", "git-changelog-mcp"]
    }
  }
}

Restart Claude Desktop to load the server.

If Installed Locally

If you cloned the repo instead of using npm:

{
  "mcpServers": {
    "git-changelog": {
      "command": "node",
      "args": ["/absolute/path/to/git-changelog-mcp/dist/index.js"]
    }
  }
}

๐Ÿ’ก Examples

Once configured, ask your AI assistant:

Example 1: Simple Changelog

Fetch the last 30 commits from this repository and generate a changelog

Example 2: Release Notes

Get the last 50 commits from C:/projects/my-app and create a changelog 
titled "Release v2.0.0"

Example 3: PR Description

Generate a changelog from the last 10 commits to use as a pull request description

Example 4: Sprint Summary

Show me all commits from the past week formatted as a changelog for our standup

Example Output

## Release v2.0.0

### Features

- Add user authentication with JWT (`a1b2c3d`)
- Implement dark mode toggle (`e4f5g6h`)
- Add pagination to user list (`i7j8k9l`)

### Fixes

- Fix memory leak in WebSocket connection (`m1n2o3p`)
- Resolve CORS issues on API endpoints (`q4r5s6t`)

### Chores

- Update dependencies to latest versions (`u7v8w9x`)
- Refactor database connection pool (`y1z2a3b`)

๐Ÿ—๏ธ Architecture

  • Entry point: src/index.ts

  • Transport: Stdio (JSON-RPC over stdin/stdout)

  • Validation: Zod schemas for type-safe input/output

  • Git operations: simple-git library

  • Error handling: All diagnostics written to stderr to preserve the JSON-RPC stream


๐Ÿงช Development

# Install dependencies
npm install

# Build the project
npm run build

# Run the server
npm start

# Build and run in one command
npm run dev

๐Ÿ“‹ Requirements

  • Node.js 18 or higher

  • TypeScript 7+

  • A local git repository to inspect


๐Ÿค Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'feat: add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request


๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.



๐ŸŒŸ Show Your Support

If this project helped you, please consider giving it a โญ on GitHub!


Made with โค๏ธ by kslmisel

Available Tools

1 tool
git_get_recent_commitsGet recent git commitsA

Fetch the most recent commits from a local git repository. Returns structured commit objects that can be passed directly to git_generate_markdown_changelog.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of commits to fetch (default 20, max 500)
repoPathYesAbsolute or relative path to the local git repository

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
commitsYes
repoPathYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the full burden. It indicates a read-only fetch operation, but does not disclose any additional behavioral traits such as authentication or rate limits. The behavior is simple and directly implied, so it is adequate but not enriched.

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 only two sentences long, with no superfluous information. It is front-loaded and directly communicates the tool's function and a key integration hint. It is appropriately concise.

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's simplicity and the presence of an output schema (implied), the description covers the essential context: what the tool does and how the output can be used. It does not detail return fields but references another tool, which is sufficient for a straightforward fetch operation.

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?

The input schema has 100% parameter coverage, so the description adds no significant meaning beyond the schema. The description does not elaborate on parameter usage or format, merely reiterating the tool's purpose. Baseline score of 3 is appropriate.

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?

The description clearly specifies the action ('Fetch the most recent commits') and the resource ('local git repository'). It is specific and unambiguous. No sibling tools exist to distinguish, but the purpose is well-defined.

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 implies a downstream use case by stating the output can be passed to git_generate_markdown_changelog, but it does not explicitly state when to use this tool over alternatives or when not to use it. The usage context is implied but not fully explicit.

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.0.0
    • First observedgit_get_recent_commits

TDQS

B3.4/5.0
Disambiguation5/5

With only one tool, there is no possibility of confusion; the tool's purpose is clearly distinct.

Naming Consistency5/5

The single tool name follows a consistent verb_noun pattern with underscores, which would be consistent if more tools existed.

Tool Count1/5

One tool is too few for a changelog server; it only fetches commits and lacks the essential changelog generation tool, making the server appear incomplete.

Completeness1/5

The server only provides half of the changelog workflow (fetching commits) and is missing the companion tool to generate changelogs, resulting in a dead end.

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

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to automate GitHub repository management, issue tracking, and commits using natural language.
    10
    Apache 2.0

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/kslmisel/git-changelog-mcp'

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