The server runs on your machine, so your Bugzilla API key never leaves it. It starts read-only; see Read-only Mode to enable write tools.
First, get an API key from your Bugzilla: https://your-bugzilla-instance.com/userprefs.cgi?tab=apikey.
No Python or terminal needed.
Install uv, then:
claude mcp add bugzilla --scope user -e BUGZILLA_URL=https://bugzilla.example.com -e BUGZILLA_API_KEY=your-api-key -- uvx bugzilla-mcp
Add --allow-writes after bugzilla-mcp to enable write tools.
{
"mcpServers": {
"bugzilla": {
"command": "uvx",
"args": ["bugzilla-mcp"],
"env": {
"BUGZILLA_URL": "https://bugzilla.example.com",
"BUGZILLA_API_KEY": "your-api-key"
}
}
}
}
If the client can't find uvx, use the full path from which uvx.
pip install bugzilla-mcp
bugzilla-mcp --help
bugzilla-mcp --transport http runs it as a multi-user HTTP server instead, taking credentials from each request's headers.
To try it without installing anything, point your client at https://bugzilla.fastmcp.app/mcp with your API key and Bugzilla URL as headers (see Configuration). Your key passes through that server, so install locally for real use.
To run the server from a checkout (for development or testing):
uv package manager (recommended) or pipUsing uv (recommended):
uv sync
Or with standard Python:
pip install .
Using uv:
uv run python server.py
Or with standard Python:
python server.py
The server will start at http://127.0.0.1:8000/mcp/
For local development, use http://127.0.0.1:8000/mcp as the server URL in your MCP client configuration.
server_local.py runs the server as a process your MCP client starts itself. Credentials come from environment variables (or a .env file), so your API key never goes to a hosted server. It is single-user, and it is the only mode where the tools that read or write files on disk (download_attachment(s), upload_attachment with file_path) are enabled.
cp .env.example .env # then set BUGZILLA_URL and BUGZILLA_API_KEY
Claude Code:
claude mcp add bugzilla-local --scope user -- uv run --directory /absolute/path/to/bugzilla-mcp python server_local.py
Claude Desktop / Cursor (claude_desktop_config.json or .cursor/mcp.json):
{
"mcpServers": {
"bugzilla-local": {
"command": "uv",
"args": ["run", "--directory", "/absolute/path/to/bugzilla-mcp", "python", "server_local.py"],
"env": {
"BUGZILLA_URL": "https://bugzilla.example.com",
"BUGZILLA_API_KEY": "your-api-key-here"
}
}
}
}
For contributing to the project:
git clone https://github.com/SanthoshSiddegowda/bugzilla-mcp.git
cd bugzilla-mcp
uv creates the virtual environment for you:
uv sync --all-extras
uv run pytest tests
You can inspect the MCP server to see available tools:
uv run fastmcp inspect server.py:mcp
This will show you all available tools, their parameters, and descriptions.