generate_commit_messageLABSCO SUMMARY
One tool, and it does not touch your repository.
The scope is exactly one job, and the tool returns the message rather than making the commit — so the worst case is a message you reject. The thing to be aware of before pointing it at a private repository is where the diff goes: the content is sent to DeepSeek or Groq for generation, so the provider you choose is the provider that sees your code.
What it is
A single-purpose MCP server that generates commit messages in the Conventional Commits style. It reads your current git diff, sends it to whichever LLM provider you configured, and returns a formatted message for review. Works with Claude, Cursor, Gemini CLI and other MCP clients.
What you get
One tool, generate_commit_message, which analyses the current git diff and returns a conventional commit message — a typed subject line plus a body of bullet points and any issue reference. You review it before it is used; the server returns text rather than committing anything. Two providers are supported and switchable, DeepSeek and Groq.
Requirements
An API key for whichever provider you pick: DEEPSEEK_API_KEY if using DeepSeek, GROQ_API_KEY if using Groq, with LLM_PROVIDER selecting between them (deepseek by default). Python 3.10 or newer and the uv package manager. Clone, uv venv, copy .env.example to .env, then run it with uv run mcp-server-git-cz, which installs the project from pyproject.toml. STDIO is the recommended transport; --transport sse --port 8000 runs it over SSE instead. Claude Code registers it in one line with claude mcp add git-cz -s project. MIT licensed.
Setup effort
Build from source — git clone https://github.com/FradSer/mcp-server-git-cz.git
USE CASES
Writing a commit message for what you just changed
Ask in plain language; the diff is read for you and a typed, conventional message comes back for review.
Keeping a team's history consistent
Register it at project scope so everyone gets the same Conventional Commits shape without agreeing on a template.
Switching providers when one is down or slow
Change one environment variable to move between DeepSeek and Groq; both keys can be present.
1 tool
Listed in project docs. Your client may show a different list.
BEFORE YOU INSTALL
What to know first
Tools you get
1 tool named in the project's documentation.
Requires
- Python 3.10+
- uv
- An API key for the provider you pick: DEEPSEEK_API_KEY for DeepSeek (the default), or GROQ_API_KEY with LLM_PROVIDER=groq
Where it runs
All 3 documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/FradSer/mcp-server-git-cz.git
cd mcp-server-git-cz
uv venv
cp .env.example .env # then edit .env with your API keys
uv run mcp-server-git-cz # first run installs the project into .venv; stop it with Ctrl+CMCP Clients
Claude Code
claude mcp add git-cz -s project -- uv run --python <YOUR_PATH_TO_MCP_SERVER_GIT_CZ>/.venv/bin/python -m mcp_server_git_czCursor
{
"mcpServers": {
"git-cz": {
"command": "uv",
"args": [
"run",
"--python",
"<YOUR_PATH_TO_MCP_SERVER_GIT_CZ>/.venv/bin/python",
"-m",
"mcp_server_git_cz"
],
"env": {},
"transport": "stdio"
}
}
}The configuration on this page does not set your provider key — DEEPSEEK_API_KEY for DeepSeek (the default), or GROQ_API_KEY with LLM_PROVIDER=groq. This project documents supplying it in a .env file, outside the block.
Gemini CLI
{
"mcpServers": {
"git-cz": {
"command": "uv",
"args": [
"run",
"--python",
"<YOUR_PATH_TO_MCP_SERVER_GIT_CZ>/.venv/bin/python",
"-m",
"mcp_server_git_cz"
],
"env": {}
}
}
}The configuration on this page does not set your provider key — DEEPSEEK_API_KEY for DeepSeek (the default), or GROQ_API_KEY with LLM_PROVIDER=groq. This project documents supplying it in a .env file, outside the block.