Zabbix integration for hosts, items, triggers, templates, problems, data and more.
Add to Claude Desktop config.json
{
"mcpServers": {
"mpeirone-zabbix-mcp-server": {
"command": "python",
"args": [
"-m",
"zabbix_mcp_server"
]
}
}
} Get the source and run locally
git clone https://github.com/mpeirone/zabbix-mcp-server.git ~/.mcp/zabbix-mcp-server
cd ~/.mcp/zabbix-mcp-server A lightweight Model Context Protocol (MCP) server that provides complete access to the entire Zabbix API through just 3 tools. Compatible with Zabbix 6.0+.
| Tool | Purpose |
|---|---|
zabbix_api | Execute any Zabbix API method |
zabbix_api_docs | Get documentation for any API method |
zabbix_api_list | Discover available API objects and methods |
Add to your Claude Code MCP configuration:
claude mcp add zabbix \
--env ZABBIX_URL=https://your-zabbix-server.com \
--env ZABBIX_TOKEN=your_api_token \
-- uvx --from git+https://github.com/mpeirone/zabbix-mcp-server@main zabbix-mcp
git clone https://github.com/mpeirone/zabbix-mcp-server.git
cd zabbix-mcp-server
uv sync
# Configure environment
export ZABBIX_URL=https://your-zabbix-server.com
export ZABBIX_TOKEN=your_api_token
# Start the server
uv run python scripts/start_server.py
uv run python scripts/test_server.py
git clone https://github.com/mpeirone/zabbix-mcp-server.git
cd zabbix-mcp-server
# Using docker-compose
docker compose up -d
# Or build manually
docker build -t zabbix-mcp-server .
docker run -e ZABBIX_URL=https://zabbix.example.com -e ZABBIX_TOKEN=your_token zabbix-mcp-server
| Variable | Description | Example |
|---|---|---|
ZABBIX_URL | Zabbix server URL | https://your-zabbix-server.com |
| Variable | Description |
|---|---|
ZABBIX_TOKEN | API token (recommended) |
ZABBIX_USER + ZABBIX_PASSWORD | Username and password |
| Variable | Default | Description |
|---|---|---|
READ_ONLY | false | Set to true to allow only read operations |
VERIFY_SSL | true | Enable/disable SSL verification |
ZABBIX_API_WHITELIST | .* | Comma-separated regex patterns for allowed API methods |
ZABBIX_API_BLACKLIST | (empty) | Comma-separated regex patterns for blocked API methods |
ZABBIX_SKIP_VERSION_CHECK | false | Skip Zabbix version compatibility check |
ZABBIX_API_TIMEOUT | 30 | API request timeout in seconds |
| Variable | Default | Description |
|---|---|---|
ZABBIX_MCP_TRANSPORT | stdio | Transport type: stdio or streamable-http |
ZABBIX_MCP_HOST | 127.0.0.1 | HTTP server host (when using streamable-http) |
ZABBIX_MCP_PORT | 8000 | HTTP server port (when using streamable-http) |
ZABBIX_MCP_STATELESS_HTTP | false | Stateless HTTP mode |
AUTH_TYPE | - | Must be no-auth for HTTP transport (when using streamable-http) |
| Variable | Default | Description |
|---|---|---|
DEBUG | false | Set to true for verbose logging |
zabbix_api(method='host.get', params={'output': ['hostid', 'name']})
zabbix_api(method='problem.get', params={'output': 'extend', 'recent': True})
zabbix_api(method='host.create', params={
'host': 'server-01',
'groups': [{'groupid': '1'}],
'interfaces': [{'type': 1, 'main': 1, 'useip': 1, 'ip': '192.168.1.100', 'port': '10050'}]
})
zabbix_api_docs(method='host.create')
zabbix_api_list() # All objects and methods
zabbix_api_list(object='host') # Host methods only
Set READ_ONLY=true to block all write operations:
export READ_ONLY=true
Only get, version, check, and export operations will be allowed.
Control which API methods can be called using whitelist/blacklist patterns:
# Allow only host.* and item.get methods
export ZABBIX_API_WHITELIST="host\..*,item\.get"
# Block all delete and create operations
export ZABBIX_API_BLACKLIST=".*\.delete,.*\.create"
Both support comma-separated regex patterns. Blacklist is checked first.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"zabbix": {
"command": "uvx",
"args": ["--from", "git+https://github.com/mpeirone/zabbix-mcp-server@main", "zabbix-mcp"],
"env": {
"ZABBIX_URL": "https://zabbix.example.com",
"ZABBIX_TOKEN": "your_api_token"
}
}
}
}
ZABBIX_URL is accessibleREAD_ONLY mode is enabledIf you see “Method is not in whitelist” or “Method is blacklisted”:
ZABBIX_API_WHITELIST and ZABBIX_API_BLACKLIST patternshost.get)export DEBUG=true
uv run python scripts/start_server.py
See CONTRIBUTING.md for development guidelines.
GPLv3 License - see LICENSE for details.
Discovery, exploration, reporting and root cause analysis using all observability data, including metrics, logs, systems, containers, processes, and network connections.
Search dashboards, investigate incidents and query datasources in your Grafana instance
Sentry.io integration for error tracking and performance monitoring
Provides comprehensive integration with your VictoriaMetrics instance APIs and documentation for monitoring, observability, and debugging tasks related to your VictoriaMetrics instances
Provides access to OpenTelemetry traces and metrics through Logfire
Enhance AI-generated code quality through intelligent, prompt-based analysis across 10 critical dimensions from complexity to security vulnerabilities