zabbix-mcp-server
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+.
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 |
| Execute any Zabbix API method |
| Get documentation for any API method |
| 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-mcpOption 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.pyTest Connection
uv run python scripts/test_server.pyOption 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-serverEnvironment Variables
Required
Variable | Description | Example |
| Zabbix server URL |
|
Authentication (choose one)
Variable | Description |
| API token (recommended) |
| Username and password |
Security
Variable | Default | Description |
|
| Set to |
|
| Enable/disable SSL verification |
|
| Comma-separated regex patterns for allowed API methods |
| (empty) | Comma-separated regex patterns for blocked API methods |
|
| Skip Zabbix version compatibility check |
|
| API request timeout in seconds |
Transport
Variable | Default | Description |
|
| Transport type: |
|
| HTTP server host (when using |
|
| HTTP server port (when using |
|
| Stateless HTTP mode |
| - | Must be |
Debug
Variable | Default | Description |
|
| Set to |
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 onlySecurity Features
Read-Only Mode
Set READ_ONLY=true to block all write operations:
export READ_ONLY=trueOnly 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 accessibleCheck 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_BLACKLISTpatternsEnsure your regex patterns match the full method name (e.g.,
host.get)
Debug Mode
export DEBUG=true
uv run python scripts/start_server.pyContributing
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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mpeirone/zabbix-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server