An MCP server that generates beautiful release notes from GitHub repositories. It efficiently fetches commits, organizes them by type, and presents them in a clean, readable format.
Features
- ? Smart commit filtering by date or SHA
- ? Groups commits by type (features, fixes, etc.)
- ? Enriches commits with PR data
- ? Includes detailed statistics
- ? Clean markdown formatting with emojis
- ⚡ Efficient API usage with GitHub's
since
parameter
Installation
npm install
npm run build
Usage
Add this server to your MCP configuration:
{
"mcpServers": {
"release-notes": {
"command": "node",
"args": ["/path/to/release-notes-server/build/index.js"],
"env": {
"GITHUB_TOKEN": "your-github-token"
}
}
}
}
generate_release_notes
Generates release notes for a GitHub repository.
Parameters:
{
"owner": string, // Repository owner
"repo": string, // Repository name
"commitRange": {
"fromCommit"?: string, // Starting commit SHA
"toCommit"?: string // Ending commit SHA
},
"format": {
"type": "markdown", // Output format
"groupBy": "type", // How to group commits
"includeStats": boolean // Include commit statistics
}
}
Example:
const result = await use_mcp_tool({
server_name: "release-notes",
tool_name: "generate_release_notes",
arguments: {
owner: "owner",
repo: "repo",
commitRange: {
fromCommit: "abc123" // Get commits from this SHA
},
format: {
type: "markdown",
groupBy: "type",
includeStats: true
}
}
});
The generated release notes include:
- Header with generation date and statistics
- Sections grouped by commit type:
- ? Features
- ? Fixes
- ? Documentation
- ⚡ Performance
- ♻️ Refactoring
- ? Tests
- ?️ Build
-
? Other
-
Detailed statistics including:
- Total commits
- Breaking changes
- Commits by type
- Commits by author
Environment Variables
GITHUB_TOKEN
: GitHub personal access token with repo access
Implementation Details
The server implements efficient commit fetching by:
- Using GitHub's
since
parameter when possible to reduce API calls
- Falling back to SHA-based filtering when needed
- Properly handling pagination
- Maintaining newest-first ordering for release notes
- Enriching commits with PR data when available
License
MIT