problem_getLABSCO SUMMARY
Complete coverage, and a tool catalogue you have to budget for.
Exposing every Zabbix API group is the point, and the project is direct about what it costs: with all 237 tools on, it puts the catalogue alone at roughly 100k tokens before your first prompt reaches the model. The fix ships with it — a tools allowlist under [server], either prefixes such as tools = ["host", "hostgroup", "problem", "trigger", "event", "item"] for problem triage, or group names like monitoring, alerts and extensions, with the same filter available per token through [tokens.*].scopes. Set that allowlist before you connect a client rather than after.
What it is
A standalone HTTP service that puts the Zabbix API in front of MCP clients, which connect to it over the network rather than launching it. It ships 237 tools by the README's count — 223 covering all 58 Zabbix API groups, plus 14 extension tools written for this server — and an admin web portal on port 9090 for tokens, users, servers, templates, settings and the audit log. One deployment can front several Zabbix instances: every tool takes an optional server parameter and defaults to the first one configured. AGPL-3.0, from initMAX and community contributors.
What you get
- Monitoring —
problem_getfor what is wrong right now,event_getandevent_acknowledgeto acknowledge, close or comment,history_getandtrend_getfor raw and aggregated metric data,sla_getandsla_getsli, plus thedashboard_*andmap_*families - Data collection —
host_*andhostgroup_*,item_*/trigger_*/graph_*,template_*andtemplategroup_*,maintenance_*to suppress alerts on a schedule,discoveryrule_*with the prototype families, andconfiguration_export/_importin YAML, XML or JSON - Alerts —
action_*andmediatype_*for notification channels,alert_getfor the history of what was actually sent,script_executeto run global scripts on hosts over SSH, IPMI or custom commands - Users and access —
user_*,usergroup_*,role_*, andtoken_*for service-account API tokens - Administration —
proxy_*andproxygroup_*for distributed monitoring,auditlog_getfor the trail of configuration changes and logins,settings_get/_update - Pre-correlated views that fold 3–5 raw API calls into one round-trip —
problem_active_get,host_status_get,hostgroup_overview_get,infrastructure_summary_get,item_history_summary_get - Analysis on top of the raw data —
anomaly_detect(z-score),capacity_forecast(linear regression),item_threshold_search(filter items bylastvaluethresholds),graph_render(PNG export) - PDF reports through
report_generate, rendered server-side from Jinja2 templates so the output is the same every run; built-in types areavailability,capacity_host,capacity_network,backupandshowcase - A two-step approval path for writes —
action_prepare, thenaction_confirm zabbix_raw_api_callfor any method the server does not wrap, andhealth_checkfor its own status and connectivity to every configured Zabbix server
Requirements
A Linux server with Python 3.10 or newer, network access to your Zabbix server, and a Zabbix API token from User settings → API tokens. sudo ./deploy/install.sh creates the zabbix-mcp system user, a virtualenv at /opt/zabbix-mcp/venv, a systemd unit and logrotate; configuration is a single TOML file at /etc/zabbix-mcp/config.toml, where each Zabbix instance gets a section carrying its frontend url and api_token. read_only defaults to true per server, so writes stay off until you turn them on. Transport is http (recommended), sse or stdio, and the default endpoint is http://127.0.0.1:8080/mcp; HTTP and SSE clients authenticate with auth_token, or through the embedded OAuth 2.1 authorization server, which needs [server].public_url set. Zabbix 7.0 LTS, 7.2 and 7.4 are fully supported; on 6.0 LTS, 6.2 and 6.4 the core methods work but newer ones such as proxy groups and MFA may return errors; 5.0 LTS, 5.2 and 5.4 get core monitoring and data collection only; 8.0 is experimental behind skip_version_check = true. PDF reports need weasyprint, jinja2 and the cairo, pango and gdk-pixbuf system libraries; sudo ./deploy/install.sh update --with-reporting adds them to an existing install.
Setup effort
Build from source — git clone https://github.com/initMAX/zabbix-mcp-server.git
USE CASES
Triaging what is broken right now
One pre-correlated call replaces the three or four you would otherwise chain, then acknowledge or comment on the events without opening the frontend.
Answering a capacity question with data instead of a guess
Pull the trends, run the regression forecast, and find every item already past a threshold — all against the same host group.
Handing an availability report to someone who will never open Zabbix
Ask for the report type and the period; the PDF is rendered server-side from a fixed template, so two runs of the same request look the same.
Letting an agent make changes without letting it make them alone
The write goes through a prepare step first and only lands once it is confirmed, and per-server read_only decides whether it is available at all.
Reaching an API method the server does not wrap
Call the Zabbix method directly by name through the escape hatch, and check server-to-Zabbix connectivity first when the call comes back empty.
26 tools
Listed in project docs. Your client may show a different list.
event_getevent_acknowledgehistory_gettrend_getsla_getsla_getsliconfiguration_exportalert_getscript_executeauditlog_getsettings_getgraph_renderanomaly_detectcapacity_forecastitem_threshold_searchreport_generateaction_prepareaction_confirmproblem_active_gethost_status_gethostgroup_overview_getinfrastructure_summary_getitem_history_summary_getzabbix_raw_api_callhealth_checkBEFORE YOU INSTALL
What to know first
Tools you get
26 tools named in the project's documentation.
INSTALLATION
Connect your client
This one is built from source rather than installed with a single command.
Server setup
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 # set your Zabbix URL + API token
sudo systemctl start zabbix-mcp-server
sudo systemctl enable zabbix-mcp-serverMCP Clients
Claude Code
claude mcp add --transport http zabbix http://<YOUR_SERVER>:8080/mcp --header "Authorization: Bearer <YOUR_TOKEN>"VS Code
{
"servers": {
"zabbix": {
"type": "http",
"url": "http://<YOUR_SERVER>:8080/mcp",
"headers": {
"Authorization": "Bearer <YOUR_TOKEN>"
}
}
}
}Codex
[mcp_servers.zabbix]
url = "http://<YOUR_SERVER>:8080/mcp"
[mcp_servers.zabbix.http_headers]
Authorization = "Bearer <YOUR_TOKEN>"