MCP server exposing Zabbix monitoring as tools for AI agents (stdio + Streamable HTTP)
1.0K
A Model Context Protocol (MCP) server that exposes Zabbix monitoring as callable tools for AI agents and MCP-compatible clients (Claude Desktop, Claude Code, custom agents…).
Source: https://github.com/lordraw77/zabbix-mcp
| Tag | Contents |
|---|---|
latest | Latest release |
v1.2.0 | Streamable HTTP transport; legacy HTTP+SSE kept for backwards compatibility |
v1.1.1 | Previous release (HTTP+SSE only) |
| Transport | Endpoint | Notes |
|---|---|---|
| stdio (default) | stdin/stdout | The MCP client spawns the container |
| Streamable HTTP | POST / GET / DELETE /mcp | Recommended for remote and multi-client setups |
| HTTP+SSE | GET /sse, POST /messages/ | Deprecated (MCP 2024-11-05) — served alongside /mcp so older clients keep working |
GET /health returns a JSON status document in HTTP mode.
HTTP+SSE was superseded by Streamable HTTP in the 2025-03-26 revision of the
MCP specification. Point anything new at /mcp; /sse remains available
until clients have caught up.
Create a .env file:
ZABBIX_URL=https://zabbix.example.com
ZABBIX_TOKEN=your_api_token_here
ZABBIX_VERIFY_SSL=true
docker run --rm -i --env-file .env lordraw/zabbix-mcp:latest
{
"mcpServers": {
"zabbix": {
"command": "docker",
"args": ["run", "--rm", "-i", "--env-file", "/absolute/path/to/.env",
"lordraw/zabbix-mcp:latest"]
}
}
}
docker run -d --name zabbix-mcp \
--env-file .env \
-e MCP_TRANSPORT=http \
-p 8000:8000 \
lordraw/zabbix-mcp:latest
curl -s http://localhost:8000/health
Client URL: http://localhost:8000/mcp
claude mcp add --transport http zabbix http://localhost:8000/mcp
Legacy clients can still use http://localhost:8000/sse against the same
container.
| Variable | Required | Default | Description |
|---|---|---|---|
ZABBIX_URL | yes | — | Full base URL of the Zabbix frontend |
ZABBIX_TOKEN | one of† | — | API token (Zabbix 5.4+, recommended) |
ZABBIX_USER | one of† | — | Username for user/password auth |
ZABBIX_PASSWORD | one of† | — | Password for user/password auth |
ZABBIX_VERIFY_SSL | no | true | Set false to skip TLS verification |
† Either ZABBIX_TOKEN or ZABBIX_USER + ZABBIX_PASSWORD. The token
takes priority if both are present.
| Variable | Default | Description |
|---|---|---|
MCP_TRANSPORT | stdio | stdio, http / streamable-http, or sse (deprecated alias of http) |
MCP_HOST | 0.0.0.0 | Bind address (HTTP mode only) |
MCP_PORT | 8000 | TCP port (HTTP mode only) |
MCP_PATH | /mcp | Path of the Streamable HTTP endpoint |
MCP_JSON_RESPONSE | false | Reply to POSTs with plain JSON instead of an SSE stream |
MCP_STATELESS | false | Fresh transport per request, no session tracking (useful behind a load balancer) |
MCP_LEGACY_SSE | true | Also serve the deprecated /sse + /messages/ endpoints |
Hosts, triggers/problems, items/history, maintenance windows, host groups, events and acknowledgements, graphs, templates, inventory, actions, users and user groups, analytics (flapping triggers, availability reports, trends, problem duration stats) and operational writes (enable/disable host, add or remove a host from a group).
| Property | Value |
|---|---|
| Base image | python:3.12-slim |
| Working dir | /app |
| Entrypoint | python server.py |
| Exposed port | 8000 (HTTP mode; ignored in stdio mode) |
| Credentials | passed at runtime via --env-file — never baked into the image |
License: MIT
Content type
Image
Digest
sha256:36ea6accd…
Size
61 MB
Last updated
14 days ago
docker pull lordraw/zabbix-mcp