Start with the local server. Use the hosted one to try things out without installing anything.
| Local (recommended) | Hosted | |
|---|---|---|
| Bugzilla | 5.0 or newer, with the REST API enabled | Same, and reachable from the internet |
| API key | From userprefs.cgi?tab=apikey | Same |
| On your machine | uv or pipx. Claude Desktop's one-click install needs nothing. | Nothing |
| MCP client | Any client that runs stdio servers | Any client that supports HTTP transport with custom headers |
| Where your key goes | Stays on your machine | Passes through bugzilla.fastmcp.app |
| Attachment downloads | Yes | No (the server never touches its disk) |
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.
pipx installs bugzilla-mcp into its own environment and puts the command on your PATH:
brew install pipx && pipx ensurepath # macOS; see pipx docs for Linux/Windows
pipx install bugzilla-mcp
bugzilla-mcp --help
Then use bugzilla-mcp as the command in your client, with no uvx needed:
claude mcp add bugzilla --scope user -e BUGZILLA_URL=https://bugzilla.example.com -e BUGZILLA_API_KEY=your-api-key -- bugzilla-mcp
Desktop apps don't always load your shell's PATH; if one can't find the command, use the full path from which bugzilla-mcp (usually ~/.local/bin/bugzilla-mcp). Upgrade with pipx upgrade bugzilla-mcp.
python3 is 3.9): run pipx install --python python3.12 bugzilla-mcp.bugzilla-mcp --transport http runs it as a multi-user HTTP server instead, taking credentials from each request's headers. See Running your own HTTP server.
Nothing to install: a hosted server runs on FastMCP Cloud at https://bugzilla.fastmcp.app/mcp. With Claude Code:
claude mcp add --transport http bugzilla https://bugzilla.fastmcp.app/mcp --scope user --header "api_key: your-api-key" --header "bugzilla_url: https://bugzilla.example.com"
Configs for Claude Desktop, Cursor and VS Code are under Hosted server. Your key passes through that server, so install locally for day-to-day use.
To work on the server itself:
git clone https://github.com/SanthoshSiddegowda/bugzilla-mcp.git
cd bugzilla-mcp
uv sync --all-extras # creates the virtual environment
uv run pytest tests # run the tests
uv run bugzilla-mcp --help # run your checkout, same flags as the package
To point an MCP client at your checkout instead of the published package, replace uvx bugzilla-mcp with uv run --directory /absolute/path/to/bugzilla-mcp bugzilla-mcp in any config from Configuration. uv run fastmcp inspect server.py:mcp lists every tool with its parameters.