Server facts
Zabbix MCP Server by initMAX
Project
- Author
- initMAX
- Repository
- github.com/initMAX/zabbix-mcp-server
- Website
- www.initmax.com
- License
- AGPL-3.0-only
- Category
- Cloud & DevOps
Tech
- Runtime / language
- pythonPython
- Transports
- streamable-httpssestdio
- Remote available
- No
- Authentication
- Not specified
Activity
- GitHub stars
- 244
- Last commit
- Data as of
Tags
- Devops
- Observability
- Python
- Self Hosted
- infrastructure
- monitoring
- zabbix
Overview
initMAX's Zabbix MCP Server runs as a standalone Python service that exposes the Zabbix JSON-RPC API to MCP clients over Streamable HTTP, with SSE as a fallback for clients lacking session management. Scope is the main difference from the separately listed mpeirone zabbix-mcp-server, which routes every API method through three generic tools: this project registers 255 tools, 241 of them mapped to individual methods across 68 API groups plus 14 extensions. Those extensions merge several lookups into pre-correlated views of hosts, host groups, problems and item history, render graphs as PNG images, flag anomalies with z-score analysis, project capacity by linear regression, build PDF reports from templates and split writes into separate prepare and confirm steps.
Configuration lives in one TOML file. Each named Zabbix instance gets its own URL and API token, and every tool takes a server parameter, so production and staging can share one endpoint. Read-only mode applies per instance or per token, and read-only callers never see write tools in the catalog. Bearer tokens carry scopes, IP limits, server binding and expiry; an embedded OAuth 2.1 server is optional. Since the full catalog costs roughly 100k tokens of context, allowlisting tool groups is advised. A separate admin portal manages tokens, servers and report templates. Deployment paths include a systemd installer, a user-mode installer and Docker Compose.
Install & configure
Requirements
- Linux server with Python 3.10 or later
- Network access to the Zabbix server(s)
- A Zabbix API token (Zabbix 5.0 and 5.2 need the legacy password login instead)
git clone https://github.com/initMAX/zabbix-mcp-server.git && cd zabbix-mcp-server && sudo ./deploy/install.shInstall from a checkout with sudo ./deploy/install.sh, set the Zabbix URL and api_token in /etc/zabbix-mcp/config.toml, then start the zabbix-mcp-server systemd service. Clients connect to http://127.0.0.1:8080/mcp, or /sse for SSE. Docker Compose reads MCP_HOST, MCP_PORT and an optional MCP_AUTH_TOKEN from .env.
Examples are translated from the published configuration. Supply your own credentials and verify requirements in the upstream README. Remote connectors are shown only where a supported configuration format is known.
Config file · macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Use Settings → Developer → Edit Config when available. Do not assume a Linux configuration path; check the client documentation for your platform. Remote servers use the app’s connector flow when supported, not the local stdio file shown here. Merge this example with existing settings; do not overwrite unrelated servers.
A supported configuration example is not available for this client and transport. Check the client documentation for its connection flow; do not substitute an undocumented JSON format.
Read the Claude Desktop setup guideConfig file · Project: .cursor/mcp.json
User: ~/.cursor/mcp.json
The project path is relative to the workspace root. The tilde denotes your user home directory. Use Cursor’s MCP settings to confirm which configuration and scope your installed version is reading. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"zabbix-mcp-server-2": {
"url": "http://127.0.0.1:8080/mcp"
}
}
}Config file · Workspace: .vscode/mcp.json
For user scope, use the “MCP: Open User Configuration” command if available. Do not guess a user configuration path across operating systems, profiles, containers, or remote workspaces; check the client documentation. Merge this example with existing settings; do not overwrite unrelated servers.
A supported configuration example is not available for this client and transport. Check the client documentation for its connection flow; do not substitute an undocumented JSON format.
Read the VS Code setup guideConfig file · macOS/Linux: ~/.codeium/windsurf/mcp_config.json
Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json
Open the MCP configuration through Windsurf’s settings when possible to confirm the active file. Paths can differ in managed or future releases; check the client documentation if this location is not present. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"zabbix-mcp-server-2": {
"serverUrl": "http://127.0.0.1:8080/mcp"
}
}
}Config file · Project scope: .mcp.json at the repository root
The project file uses mcpServers. For user scope, use claude mcp add --scope user rather than assuming .mcp.json in your home directory is the user configuration. Check the client documentation for managed settings and storage details. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"zabbix-mcp-server-2": {
"type": "sse",
"url": "http://127.0.0.1:8080/mcp"
}
}
}Examples are translated from the published configuration. Supply your own credentials and verify requirements in the upstream README. Remote connectors are shown only where a supported configuration format is known.
Tools
Source: repository README. Tool descriptions are a documented snapshot, not a live capability check.
| Tool | What it does |
|---|---|
| problem_get | List active problems to see what is currently wrong. |
| event_get | Retrieve events from the Zabbix event log. |
| event_acknowledge | Acknowledge, close or comment on events. |
| history_get | Query raw historical values for items. |
| trend_get | Query aggregated trend data for capacity planning. |
| sla_get | Read configured SLAs. |
| sla_getsli | Retrieve calculated service availability (SLI) data. |
| hostdashboard_get | Return the dashboards a host inherits from its templates (Zabbix 7.0+). |
| configuration_export | Export templates, hosts, groups, maps, images or media types as YAML, XML or JSON. |
| configuration_import | Import exported configuration objects into an instance. |
| alert_get | Query the history of sent notifications and remote commands. |
| script_execute | Run a global script on a host. |
| auditlog_get | Read the audit trail of configuration changes and logins. |
| settings_get | View global Zabbix server settings. |
| settings_update | Modify global Zabbix server settings. |
| apmtrace_get | Query OpenTelemetry traces ingested by a Zabbix 8.0 server. |
| apmspan_get | Query OpenTelemetry spans ingested by a Zabbix 8.0 server. |
| apmlog_get | Query OpenTelemetry log records ingested by a Zabbix 8.0 server. |
| apmmetric_get | Query OpenTelemetry metric data points ingested by a Zabbix 8.0 server. |
| device_get | List mobile app installations paired with users. |
| device_offboard | Revoke a paired mobile app installation. |
| serverinfo_get | Return the last update time of a Zabbix server instance. |
| apiinfo_version | Return the API (frontend) version of a Zabbix server. |
| host_status_get | Pre-correlated status view of a host in one round trip. |
| hostgroup_overview_get | Pre-correlated overview of a host group. |
| infrastructure_summary_get | Summarize overall infrastructure state in one call. |
| item_history_summary_get | Summarize an item's history without fetching every value. |
| problem_active_get | Pre-correlated view of currently active problems. |
| graph_render | Export a graph as a PNG image. |
| anomaly_detect | Flag unusual values with z-score analysis. |
| capacity_forecast | Project future usage with linear regression. |
| item_threshold_search | Filter items by thresholds on their last value. |
| report_generate | Render a PDF report from a built-in or custom template (beta). |
| action_prepare | Stage a write operation for two-step approval. |
| action_confirm | Confirm and execute a previously prepared write. |
| health_check | Report MCP server status and connectivity to each configured Zabbix server. |
| zabbix_raw_api_call | Call any Zabbix API method by name when no dedicated tool exists. |
Use cases
- Triage active problems and acknowledge events across one or more Zabbix instances.
- Summarize host, host group and infrastructure status in a single call.
- Render metric graphs, flag anomalies or forecast capacity from item history.
- Produce availability, capacity or backup PDF reports from monitoring data.
- Export or import templates and other configuration objects between instances.
Strengths
- Dedicated tools for 241 Zabbix API methods plus 14 extension tools.
- Read-only mode per instance or per token, with write tools hidden from read-only callers.
- Scoped bearer tokens, optional OAuth 2.1 and a separate admin portal for operators.
Limitations
- The full catalog costs roughly 100k tokens of context unless tool groups are allowlisted.
- Not published on PyPI; installation runs from a repository checkout or Docker.
- PDF reporting is a beta feature and needs extra dependencies.
Zabbix MCP Server by initMAX setup notes
- Zabbix MCP Server by initMAX's example uses sse, while its catalog transports are streamable-http / sse / stdio; use the example's connection type.