Skip to main content
Glama
mpeirone

zabbix-mcp-server

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

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

Related MCP server: Orchestrator MCP

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_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

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

–Maintainers
130dResponse time
2moRelease cycle
4Releases (12mo)
Issues opened vs closed

Latest Blog Posts

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