Zabbix MCP Server
MCP server for the complete Zabbix API — 220 tools, multi-server support, bearer auth, systemd ready. Works with ChatGPT, Claude, VS Code, Codex, JetBrains and any MCP client.
Install / Use
/learn @initMAX/Zabbix MCP ServerQuality Score
Category
Development & EngineeringSupported Platforms
README
<div align="center"> <h1> Zabbix MCP Server </h1> <h4> Complete Zabbix API coverage for any MCP-compatible AI assistant (225 tools) </h4> <br> <a href="https://github.com/initMAX/zabbix-mcp-server/releases"><img alt="Version" src="https://img.shields.io/github/v/release/initMAX/zabbix-mcp-server?color=%231f65f4&label=version"></a> <a href="LICENSE"><img alt="License" src="https://img.shields.io/badge/license-AGPL--3.0-blue"></a> <img alt="Python" src="https://img.shields.io/badge/python-3.10%2B-blue"> <img alt="Tools" src="https://img.shields.io/badge/tools-225-green"> <img alt="Zabbix" src="https://img.shields.io/badge/zabbix-5.0%E2%80%948.0-red"> <a href="https://safeskill.dev/scan/initmax-zabbix-mcp-server"><img alt="SafeSkill" src="https://img.shields.io/badge/SafeSkill-100%2F100_Verified%20Safe-brightgreen"></a> </div> <br> <br>
What is this?
MCP (Model Context Protocol) is an open standard that lets AI assistants (ChatGPT, Claude, VS Code Copilot, JetBrains AI, Codex, and others) use external tools. This server exposes the entire Zabbix API as MCP tools — allowing any compatible AI assistant to query hosts, check problems, manage templates, acknowledge events, and perform any other Zabbix operation.
The server runs as a standalone HTTP service. AI clients connect to it over the network.
Features
- Complete API coverage - All 58 Zabbix API groups (225 tools): hosts, problems, triggers, templates, users, dashboards, and more
- Multi-server support - Connect to multiple Zabbix instances (production, staging, ...) with separate tokens
- HTTP + SSE transports - Streamable HTTP (recommended) and SSE for clients like n8n that lack session management
- Tool filtering - Limit exposed tools by category (
monitoring,alerts,users, etc.) to stay under LLM tool limits - Compact output mode - Get methods return only key fields by default, reducing token usage; LLM can request
extendfor full details - LLM-friendly normalizations - Symbolic enum names, auto-fill defaults, preprocessing cleanup, timestamp conversion
- Single config file - One TOML file, no scattered environment variables
- Read-only mode - Per-server write protection to prevent accidental changes
- Rate limiting - Per-client call budget (300/min default) to protect Zabbix from flooding
- Auto-reconnect - Transparent re-authentication on session expiry
- Production-ready - systemd service, logrotate, security hardening
- Generic fallback -
zabbix_raw_api_calltool for any API method not explicitly defined
Quick Start
git clone https://github.com/initMAX/zabbix-mcp-server.git
cd zabbix-mcp-server
sudo ./deploy/install.sh
sudo nano /etc/zabbix-mcp/config.toml # fill in your Zabbix URL + API token
sudo systemctl start zabbix-mcp-server
sudo systemctl enable zabbix-mcp-server
Done. The server is running on http://127.0.0.1:8080/mcp.
Installation
Detailed guide: See
INSTALL.mdfor step-by-step instructions for both on-prem (systemd) and Docker deployments, including uninstall, security checklist, and TLS setup.
Requirements
- Linux server with Python 3.10+
- Network access to your Zabbix server(s)
- Zabbix API token (User settings > API tokens)
Install
git clone https://github.com/initMAX/zabbix-mcp-server.git
cd zabbix-mcp-server
sudo ./deploy/install.sh
The install script will:
- Create a dedicated system user
zabbix-mcp(no login shell) - Create a Python virtual environment in
/opt/zabbix-mcp/venv - Install the server and all dependencies
- Copy the example config to
/etc/zabbix-mcp/config.toml - Install a systemd service unit (
zabbix-mcp-server) - Set up logrotate for
/var/log/zabbix-mcp/*.log(daily, 30 days retention) - Verify file permissions and offer to fix any issues
Upgrade
cd zabbix-mcp-server
git fetch origin && git reset --hard origin/main
sudo ./deploy/install.sh update
The git fetch + reset ensures a clean sync with upstream regardless of local state or history rewrites. The update command will then upgrade the package, refresh the systemd unit and logrotate config, check file permissions (and offer to fix any issues), and restart the service if it is running.
Note: From v1.15+,
sudo ./deploy/install.sh updatehandles git sync automatically — the explicitgit fetch + resetis only needed when upgrading from older versions.
Configure
Edit the config file with your Zabbix server details:
sudo nano /etc/zabbix-mcp/config.toml
Minimal configuration - just fill in your Zabbix URL and API token:
[server]
transport = "http"
host = "127.0.0.1"
port = 8080
[zabbix.production]
url = "https://zabbix.e
