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+.
- Complete API Coverage - Access every Zabbix API method (100+) through a unified interface
- Lightweight Context - Only 3 tools instead of 50+ individual tools, keeping LLM context minimal
- Always Up-to-Date - Works with current and future Zabbix API methods automatically
- Zabbix 6.0+ Compatible - Supports Zabbix 6.0, 6.4, 7.0, and newer versions
| 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-mcpgit 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.pyuv run python scripts/test_server.pygit 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 onlySet READ_ONLY=true to block all write operations:
export READ_ONLY=trueOnly 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"
}
}
}
}- Verify
ZABBIX_URLis accessible - Check authentication credentials
- Ensure Zabbix API is enabled
- Verify Zabbix user permissions
- Check if
READ_ONLYmode is enabled
If you see "Method is not in whitelist" or "Method is blacklisted":
- Review
ZABBIX_API_WHITELISTandZABBIX_API_BLACKLISTpatterns - Ensure your regex patterns match the full method name (e.g.,
host.get)
export DEBUG=true
uv run python scripts/start_server.pySee CONTRIBUTING.md for development guidelines.
GPLv3 License - see LICENSE for details.
- Zabbix - Monitoring platform
- Model Context Protocol - Integration standard
- FastMCP - MCP framework
- python-zabbix-utils - Official Zabbix Python library