The Bugzilla MCP Server requires HTTP headers for authentication. You need to configure your MCP client with:
api_key (Required) - Your Bugzilla API keybugzilla_url (Required) - The base URL of your Bugzilla instance (Bugzilla 5.0+). https:// is added if you leave off the scheme, and a trailing slash is ignoredhttps://your-bugzilla-instance.com/userprefs.cgi?tab=apikey
https://bugzilla.fastmcp.app/mcphttp://127.0.0.1:8000/mcpThe server starts in read-only mode: only tools that read from Bugzilla are offered, and tools that change data (update_bug, create_bug, add_comment, upload_attachment, tag_comment) are hidden and refused. You can try it against a production Bugzilla without risk.
To enable write tools:
read_only: false. With Claude Code:
claude mcp add --transport http bugzilla https://bugzilla.fastmcp.app/mcp --scope user \
--header "api_key: your-api-key-here" \
--header "bugzilla_url: https://bugzilla.example.com" \
--header "read_only: false"
mcp-remote (Claude Desktop), add "--header", "read_only:false" to args. In url/headers configs (Cursor, VS Code), add "read_only": "false" to headers.server_local.py): set BUGZILLA_READ_ONLY=false in the environment or .env.If you run your own HTTP server, BUGZILLA_READ_ONLY=false changes its default; clients can still send read_only: true or false per connection.
Set BUGZILLA_DISABLED_TOOLS to a comma-separated list of tool names, e.g. BUGZILLA_DISABLED_TOOLS=update_bug,create_bug. Those tools are not registered at all. This applies to servers you run yourself (local stdio or your own HTTP server).
Add the server with the Claude Code CLI:
claude mcp add --transport http bugzilla https://bugzilla.fastmcp.app/mcp \
--scope user \
--header "api_key: your-api-key-here" \
--header "bugzilla_url: https://bugzilla.example.com"
--scope user makes the server available in all your projects and stores the key in your user config (~/.claude.json), not in the repository.
Verify it is connected:
claude mcp list
Then start a new Claude Code session so the tools load.
To check the configuration into a repository, create a .mcp.json at the project root and reference environment variables instead of hardcoding the key:
{
"mcpServers": {
"bugzilla": {
"type": "http",
"url": "https://bugzilla.fastmcp.app/mcp",
"headers": {
"api_key": "${BUGZILLA_API_KEY}",
"bugzilla_url": "${BUGZILLA_URL}"
}
}
}
}
Each developer exports BUGZILLA_API_KEY and BUGZILLA_URL in their shell before starting Claude Code.
http://127.0.0.1:8000/mcpClaude Desktop's claude_desktop_config.json only supports local (stdio) servers, so remote servers with custom headers must be connected through the mcp-remote bridge. This requires Node.js.
The location of this file depends on your operating system:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.json{
"mcpServers": {
"bugzilla": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://bugzilla.fastmcp.app/mcp",
"--header",
"api_key:your-api-key-here",
"--header",
"bugzilla_url:https://bugzilla.example.com"
]
}
}
}
Restart Claude Desktop after saving.
http://127.0.0.1:8000/mcpAdd this configuration to your .cursor/mcp.json:
{
"mcpServers": {
"bugzilla": {
"url": "https://bugzilla.fastmcp.app/mcp",
"headers": {
"api_key": "your-api-key-here",
"bugzilla_url": "https://bugzilla.example.com"
}
}
}
}
http://127.0.0.1:8000/mcpAdd this configuration to your mcp.json:
{
"servers": {
"bugzilla": {
"type": "http",
"url": "https://bugzilla.fastmcp.app/mcp",
"headers": {
"api_key": "your-api-key-here",
"bugzilla_url": "https://bugzilla.example.com"
}
}
}
}
http://127.0.0.1:8000/mcp{
"mcpServers": {
"bugzilla": {
"url": "https://bugzilla.fastmcp.app/mcp",
"headers": {
"api_key": "YOUR_MOZILLA_API_KEY",
"bugzilla_url": "https://bugzilla.mozilla.org"
}
}
}
}
{
"mcpServers": {
"bugzilla": {
"url": "https://bugzilla.fastmcp.app/mcp",
"headers": {
"api_key": "YOUR_CUSTOM_API_KEY",
"bugzilla_url": "https://bugs.yourcompany.com"
}
}
}
}
After configuring your MCP client:
If tool calls fail with `api_key` header is required or `bugzilla_url` header is required, your client isn't sending that header. Check the header names: they must be exactly api_key and bugzilla_url. For Claude Code, run claude mcp get bugzilla to see the configured headers.
python server.py)http://127.0.0.1:8000/mcp