Skip to main content

zabbix-mcp-server

Complete MCP server for Zabbix integration providing AI assistants access to 100% of Zabbix APIs through 3 unified tools

معلومات المصدر

المستودع
reason-machines/mcp-skills
آخر نشاط في المصدر
٣ يونيو ٢٠٢٦ في ٠١:٥٧
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٧
التفرعات
٣

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
zabbix-mcp-server
description
Complete MCP server for Zabbix integration providing AI assistants access to 100% of Zabbix APIs through 3 unified tools
triggers
["connect to zabbix monitoring","query zabbix hosts and problems","integrate zabbix with AI assistant","access zabbix api through mcp","monitor infrastructure with zabbix","get zabbix metrics and alerts","configure zabbix mcp server","read zabbix monitoring data"]
# Zabbix MCP Server > Skill by [ara.so](https://ara.so) — MCP Skills collection. A lightweight Model Context Protocol (MCP) server that provides complete access to the entire Zabbix API (100+ methods) through just 3 tools. Compatible with Zabbix 6.0+. ## What It Does The Zabbix MCP Server bridges AI assistants with Zabbix monitoring infrastructure, enabling: - Query hosts, items, triggers, templates, problems, and metrics - Create and manage monitoring configurations - Access historical data and analytics - Control Zabbix through natural language - Minimal LLM context usage (3 tools vs 50+ individual endpoints) ## Installation ### Quick Install with uvx (Recommended) ```bash # Install from GitHub uvx --from git+https://github.com/mpeirone/zabbix-mcp-server@main zabbix-mcp ``` ### Clone and Install with uv ```bash git clone https://github.com/mpeirone/zabbix-mcp-server.git cd zabbix-mcp-server uv sync ``` ### Docker Installation ```bash git clone https://github.com/mpeirone/zabbix-mcp-server.git cd zabbix-mcp-server docker compose up -d ``` ## Configuration ### Environment Variables **Required:** ```bash export ZABBIX_URL=https://your-zabbix-server.com ``` **Authentication (choose one):** ```bash # API Token (recommended) export ZABBIX_TOKEN=${ZABBIX_API_TOKEN} # Or username/password export ZABBIX_USER=${ZABBIX_USERNAME} export ZABBIX_PASSWORD=${ZABBIX_PASSWORD} ``` **Security:** ```bash export READ_ONLY=true # Restrict to read operations only export VERIFY_SSL=true # Enable SSL verification export ZABBIX_API_WHITELIST="host\..*,item\.get,problem\..*" # Allow only specific methods export ZABBIX_API_BLACKLIST=".*\.delete,.*\.create" # Block specific methods export ZABBIX_API_TIMEOUT=30 # API request timeout in seconds ``` **Transport:** ```bash export ZABBIX_MCP_TRANSPORT=stdio # or streamable-http export ZABBIX_MCP_HOST=127.0.0.1 # HTTP server host export ZABBIX_MCP_PORT=8000 # HTTP server port ``` **Debug:** ```bash export DEBUG=true # Enable verbose logging ``` ### MCP Client Configuration **Claude Desktop (macOS):** Edit `~/Library/Application Support/Claude/claude_desktop_config.json`: ```json { "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": "${ZABBIX_API_TOKEN}", "READ_ONLY": "true" } } } } ``` **Claude Desktop (Windows):** Edit `%APPDATA%\Claude\claude_desktop_config.json` with the same configuration. **Claude Code Integration:** ```bash claude mcp add zabbix \ --env ZABBIX_URL=https://your-zabbix-server.com \ --env ZABBIX_TOKEN=${ZABBIX_API_TOKEN} \ --env READ_ONLY=true \ -- uvx --from git+https://github.com/mpeirone/zabbix-mcp-server@main zabbix-mcp ``` ## The 3 Core Tools ### 1. zabbix_api - Execute Any Zabbix API Method The main tool for interacting with Zabbix. Supports all 100+ API methods. **Signature:** ```python zabbix_api(method: str, params: dict = {}) -> dict ``` ### 2. zabbix_api_docs - Get API Documentation Retrieve documentation for any Zabbix API method. **Signature:** ```python zabbix_api_docs(method: str) -> str ``` ### 3. zabbix_api_list - Discover Available Methods List all available API objects and their methods. **Signature:** ```python zabbix_api_list(object: str = None) -> list ``` ## Common Usage Patterns ### Querying Hosts **Get all hosts with basic info:** ```python result = zabbix_api( method='host.get', params={ 'output': ['hostid', 'host', 'name', 'status'], 'selectInterfaces': ['interfaceid', 'ip'] } ) ``` **Get hosts in specific group:** ```python result = zabbix_api( method='host.get', params={ 'output': 'extend', 'groupids': '2', 'selectGroups': 'extend' } ) ``` **Search hosts by name:** ```python result = zabbix_api( method='host.get', params={ 'output': ['hostid', 'host', 'name'], 'search': {'name': 'web-server'}, 'searchWildcardsEnabled': True } ) ``` ### Monitoring Problems and Triggers **Get recent problems:** ```python result = zabbix_api( method='problem.get', params={ 'output': 'extend', 'recent': True, 'sortfield': ['eventid'], 'sortorder': 'DESC' } ) ``` **Get active triggers:** ```python result = zabbix_api( method='trigger.get', params={ 'output': 'extend', 'filter': {'value': 1}, # Problem state 'skipDependent': 1, 'monitored': True, 'active': True, 'selectHosts': ['hostid', 'host'] } ) ``` **Get problems for specific host:** ```python result = zabbix_api( method='problem.get', params={ 'output': 'extend', 'hostids': '10084', 'recent': True, 'selectAcknowledges': 'extend' } ) ``` ### Working with Items and Metrics **Get items for a host:** ```python result = zabbix_api( method='item.get', params={ 'output': 'extend', 'hostids': '10084', 'sortfield': 'name' } ) ``` **Get historical data:** ```python result = zabbix_api( method='history.get', params={ 'output': 'extend', 'history': 0, # Float values 'itemids': '23296', 'sortfield': 'clock', 'sortorder': 'DESC', 'limit': 100 } ) ``` **Get latest values:** ```python result = zabbix_api( method='item.get', params={ 'output': ['itemid', 'name', 'lastvalue', 'lastclock'], 'hostids': '10084', 'monitored': True } ) ``` ### Creating and Managing Resources **Create a new host:** ```python result = zabbix_api( method='host.create', params={ 'host': 'server-01.example.com', 'name': 'Production Server 01', 'groups': [{'groupid': '2'}], 'interfaces': [{ 'type': 1, # Agent 'main': 1, 'useip': 1, 'ip': '192.168.1.100', 'dns': '', 'port': '10050' }] } ) ``` **Create a trigger:** ```python result = zabbix_api( method='trigger.create', params={ 'description': 'CPU load too high on {HOST.NAME}', 'expression': 'last(/server-01/system.cpu.load[percpu,avg1])>5', 'priority': 3 # Average } ) ``` **Create an item:** ```python result = zabbix_api( method='item.create', params={ 'name': 'CPU Load', 'key_': 'system.cpu.load[percpu,avg1]', 'hostid': '10084', 'type': 0, # Zabbix agent 'value_type': 0, # Float 'delay': '60s' } ) ``` ### Templates and Groups **Get templates:** ```python result = zabbix_api( method='template.get', params={ 'output': ['templateid', 'name'], 'selectGroups': 'extend' } ) ``` **Link template to host:** ```python result = zabbix_api( method='host.update', params={ 'hostid': '10084', 'templates': [{'templateid': '10001'}] } ) ``` **Get host groups:** ```python result = zabbix_api( method='hostgroup.get', params={ 'output': 'extend', 'selectHosts': ['hostid', 'host'] } ) ``` ### Discovery and Documentation **List all available API objects:** ```python result = zabbix_api_list() # Returns: ['action', 'alert', 'apiinfo', 'application', ...] ``` **List methods for specific object:** ```python result = zabbix_api_list(object='host') # Returns: ['host.create', 'host.delete', 'host.get', 'host.update', ...] ``` **Get documentation for a method:** ```python docs = zabbix_api_docs(method='host.create') # Returns: Detailed documentation with parameters and examples ``` **Get API version:** ```python result = zabbix_api(method='apiinfo.version', params={}) # Returns: {'result': '7.0.0'} ``` ## Security Patterns ### Read-Only Mode For safe exploration and querying without modification risk: ```bash export READ_ONLY=true ``` This allows only: `*.get`, `*.version`, `*.check`, `*.export` methods. ### Method Whitelisting Allow only specific API methods: ```bash # Only allow host and item queries export ZABBIX_API_WHITELIST="host\.get,item\.get,problem\.get" ``` ### Method Blacklisting Block dangerous operations: ```bash # Block all delete and update operations export ZABBIX_API_BLACKLIST=".*\.delete,.*\.update,.*\.create" ``` ### Combined Security ```bash export READ_ONLY=true export ZABBIX_API_WHITELIST="host\..*,item\..*,problem\..*,trigger\..*" export ZABBIX_API_BLACKLIST="host\.delete,item\.delete" export VERIFY_SSL=true ```
عرض على GitHub
ملف SKILL.md هذا كبير جدا، لذلك يعرض SkillsMP القسم الاول فقط هنا. عرض على GitHub