Public
Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md
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 |
|---|---|
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
关于 About
🔌 Complete MCP server for Zabbix integration — Connect AI assistants to Zabbix monitoring with a single unified tool covering 100% of Zabbix APIs. Includes read-only mode and documentation tools for seamless exploration of hosts, items, triggers, templates, problems, and more.
语言 Languages
Python97.8%
Dockerfile2.2%
提交活跃度 Commit Activity
代码提交热力图
过去 52 周的开发活跃度33
Total Commits峰值: 12次/周
LessMore