About Zabbix Mcp
Zabbix MCP Server is a lightweight MCP server that gives AI assistants access to the full Zabbix API through three tools. It is aimed at users who want AI-assisted monitoring queries and management, and it supports Zabbix 6.0 and later. Read-only mode and method filtering are built in.
Key features
- 01Three tools cover the entire Zabbix API
- 02Documentation lookup for any API method
- 03Read-only mode limits operations to read calls
- 04Regex whitelist and blacklist for API methods
- 05Supports stdio and streamable-http transports
Use cases
- 01Asking an AI assistant about hosts, items and current problems
- 02Analyzing Zabbix data in a read-only setup
- 03Deploying the server with Docker for MCP client connections
MCP support
This is an MCP server that exposes the zabbix_api, zabbix_api_docs and zabbix_api_list tools to MCP clients for calling the Zabbix API.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEZabbix 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+.
Why Zabbix MCP Server?
- 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
The 3 Tools
| 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 |
Quick Start
Option 1: Claude Code Integration
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
Option 2: Run with uv
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
Test Connection
uv run python scripts/test_server.py
Option 3: Run with docker
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
Environment Variables
Required
| Variable | Description | Example |
|---|---|---|
ZABBIX_URL | Zabbix server URL | https://your-zabbix-server.com |
Authentication (choose one)
| Variable | Description |
|---|---|
ZABBIX_TOKEN | API token (recommended) |
ZABBIX_USER + ZABBIX_PASSWORD | Username and password |
Security
| 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 |
Transport
| 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) |
Debug
| Variable | Default | Description |
|---|---|---|
DEBUG | false | Set to true for verbose logging |
Usage Examples
Get Hosts
zabbix_api(method='host.get', params={'output': ['hostid', 'name']})
Get Problems
zabbix_api(method='problem.get', params={'output': 'extend', 'recent': True})
Create Host
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'}]
})
Get Method Documentation
zabbix_api_docs(method='host.create')
List Available Methods
zabbix_api_list() # All objects and methods
zabbix_api_list(object='host') # Host methods only
Security Features
Read-Only Mode
Set READ_ONLY=true to block all write operations:
export READ_ONLY=true
Only get, version, check, and export operations will be allowed.
API Method Filtering
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.
MCP Client Configuration
Claude Desktop
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"
}
}
}
}
Troubleshooting
Connection Issues
- Verify
ZABBIX_URLis accessible - Check authentication credentials
- Ensure Zabbix API is enabled
Permission Errors
- Verify Zabbix user permissions
- Check if
READ_ONLYmode is enabled
Method Blocked
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)
Debug Mode
export DEBUG=true
uv run python scripts/start_server.py
Contributing
See CONTRIBUTING.md for development guidelines.
License
GPLv3 License - see LICENSE for details.
Acknowledgments
- Zabbix - Monitoring platform
- Model Context Protocol - Integration standard
- FastMCP - MCP framework
- python-zabbix-utils - Official Zabbix Python library
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.