← Discover MCPs and Agents
z
MCPAI & MLGitHub

zabbix-mcp-server

🔌 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.

Links

README

From the repo.

Zabbix MCP Server

License: GPL v3 Python 3.10+ SafeSkill

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+.

zabbix-mcp-server MCP server

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

ToolPurpose
zabbix_apiExecute any Zabbix API method
zabbix_api_docsGet documentation for any API method
zabbix_api_listDiscover 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

VariableDescriptionExample
ZABBIX_URLZabbix server URLhttps://your-zabbix-server.com

Authentication (choose one)

VariableDescription
ZABBIX_TOKENAPI token (recommended)
ZABBIX_USER + ZABBIX_PASSWORDUsername and password

Security

VariableDefaultDescription
READ_ONLYfalseSet to true to allow only read operations
VERIFY_SSLtrueEnable/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_CHECKfalseSkip Zabbix version compatibility check
ZABBIX_API_TIMEOUT30API request timeout in seconds

Transport

VariableDefaultDescription
ZABBIX_MCP_TRANSPORTstdioTransport type: stdio or streamable-http
ZABBIX_MCP_HOST127.0.0.1HTTP server host (when using streamable-http)
ZABBIX_MCP_PORT8000HTTP server port (when using streamable-http)
ZABBIX_MCP_STATELESS_HTTPfalseStateless HTTP mode
AUTH_TYPE-Must be no-auth for HTTP transport (when using streamable-http)

Debug

VariableDefaultDescription
DEBUGfalseSet 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_URL is accessible
  • Check authentication credentials
  • Ensure Zabbix API is enabled

Permission Errors

  • Verify Zabbix user permissions
  • Check if READ_ONLY mode is enabled

Method Blocked

If you see "Method is not in whitelist" or "Method is blacklisted":

  • Review ZABBIX_API_WHITELIST and ZABBIX_API_BLACKLIST patterns
  • 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

Collected info

  • 255 stars
  • 78 forks
  • Language: Python
  • Source updated: 9/18/2026

Config for your environment

Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.

Tool

OS

Config file: ~/.cursor/mcp.json

{
  "mcpServers": {
    "mcp-server": {
      "url": "{MCP_ENDPOINT_URL}"
    }
  }
}

Paste into mcpServers in the config file. Restart Cursor after saving.

If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.