An intelligent MCP server that automatically generates Conventional Commits style commit messages using LLM providers like DeepSeek and Groq.
- AI-Powered: Leverages LLM providers (DeepSeek, Groq) for intelligent commit message generation
- Conventional Commits: Follows industry-standard commit message conventions
- Multi-Provider: Supports multiple LLM providers with easy switching
- MCP Compatible: Works seamlessly with Claude, Cursor, Gemini CLI, and other MCP clients
- Easy Setup: Simple configuration via environment variables
-
Clone and install:
git clone https://github.com/FradSer/mcp-server-git-cz.git cd mcp-server-git-cz uv venv && uv pip install -r requirements.txt
-
Configure environment:
cp .env.example .env # Edit .env with your API keys -
Run the server:
uv run mcp-server-git-cz
- Python 3.10+
- uv package manager
-
Clone the repository:
git clone https://github.com/FradSer/mcp-server-git-cz.git cd mcp-server-git-cz -
Create virtual environment and install dependencies:
uv venv uv pip install -r requirements.txt
-
Set up environment variables:
cp .env.example .env
Edit
.envfile:DEEPSEEK_API_KEY=your_deepseek_api_key GROQ_API_KEY=your_groq_api_key LLM_PROVIDER=deepseek # or groq
| Variable | Description | Default | Required |
|---|---|---|---|
DEEPSEEK_API_KEY |
DeepSeek API key | - | Yes (if using DeepSeek) |
GROQ_API_KEY |
Groq API key | - | Yes (if using Groq) |
LLM_PROVIDER |
LLM provider to use | deepseek |
No |
The server supports multiple transport methods:
# STDIO transport (recommended)
uv run mcp-server-git-cz
# SSE transport
uv run mcp-server-git-cz --transport sse --port 8000The server exposes a single tool: generate_commit_message that analyzes your git diff and generates conventional commit messages.
import asyncio
from mcp.client.session import ClientSession
from mcp.client.stdio import StdioServerParameters, stdio_client
async def main():
async with stdio_client(
StdioServerParameters(command="uv", args=["run", "mcp-server-git-cz"])
) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
# Generate commit message
result = await session.call_tool("generate_commit_message", {})
print(result)
asyncio.run(main())Note: Replace
/path/to/mcp-server-git-czwith your actual project directory path in all configurations below.
# Project scope (recommended for teams)
claude mcp add git-cz -s project -- uv run --python /path/to/mcp-server-git-cz/.venv/bin/python -m mcp_server_git_cz
# User scope (personal use)
claude mcp add git-cz -s user -- uv run --python /path/to/mcp-server-git-cz/.venv/bin/python -m mcp_server_git_czAdd to Cursor settings:
{
"mcpServers": {
"git-cz": {
"command": "uv",
"args": ["run", "--python", "/path/to/mcp-server-git-cz/.venv/bin/python", "-m", "mcp_server_git_cz"],
"env": {},
"transport": "stdio"
}
}
}Add to ~/.gemini/settings.json:
{
"mcpServers": {
"git-cz": {
"command": "uv",
"args": ["run", "--python", "/path/to/mcp-server-git-cz/.venv/bin/python", "-m", "mcp_server_git_cz"],
"env": {}
}
}
}Detailed Setup Instructions
-
Get virtual environment path:
cd mcp-server-git-cz uv venv which python # Copy this path
-
Get project directory:
pwd # Copy this path
-
Update configurations with your actual paths
{
"mcpServers": {
"git-cz": {
"command": "uv",
"args": ["run", "--python", "/path/to/mcp-server-git-cz/.venv/bin/python", "-m", "mcp_server_git_cz"],
"env": {
"DEEPSEEK_API_KEY": "your_key_here",
"LLM_PROVIDER": "deepseek"
}
}
}
}{
"mcpServers": {
"git-cz": {
"command": "uv",
"args": ["run", "--python", "/path/to/mcp-server-git-cz/.venv/bin/python", "-m", "mcp_server_git_cz"],
"cwd": "/path/to/mcp-server-git-cz",
"env": {}
}
}
}Once configured, you can interact with the tool using natural language:
- "Generate a commit message for my current changes"
- "Create a conventional commit message based on my git diff"
- "Help me write a commit message following conventional commits"
The server will:
- Analyze your current git diff
- Generate a conventional commit message using AI
- Return the formatted message for review
feat(auth): add OAuth2 integration with GitHub
- Implement OAuth2 authentication flow
- Add GitHub provider configuration
- Update user model to support external auth
- Add tests for authentication endpoints
Closes #123
We welcome contributions! Please follow these guidelines:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Run tests:
make test - Commit using conventional commits:
git commit -m 'feat: add amazing feature' - Push to your branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow PEP 8 for Python code
- Use Black for code formatting
- Add type hints where appropriate
- Write tests for new features
Found a bug? Have a feature request? Please open an issue with:
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Environment details
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: Full documentation
- Bug Reports: GitHub Issues
- Feature Requests: GitHub Discussions
- Email: fradser@gmail.com
- Conventional Commits specification
- Model Context Protocol framework
- DeepSeek and Groq for AI capabilities
- All contributors who help improve this project
⭐ Star this repo if you find it useful!