Model Context Protocol (MCP) server implementation for Zabbix 7.0 LTS
Features •
Prerequisites •
Quick Start •
Configuration •
Tools
A. 模型上下文协议(MCP) 服务器实现 Zabbix 7.0 LTS。提供与Zabbix的全面集成,用于管理主机、项目、触发器、模板、维护、问题、事件、用户宏、LLD规则、代理、用户管理等。
🐳 推荐:我们建议通过Docker运行,因为这是测试最多的部署方法。
安全说明: MCP服务器仅供本地使用。如果使用HTTP传输,请配置 MCP_ALLOWED_ORIGINS 限制对可信来源的访问。
🚀 特性
- 79 MCP工具 涵盖整个Zabbix API
- 主机、项目、触发器和模板管理
- 主机组、模板组和代理组
- 问题和事件管理与确认
- 用户、用户组和用户角色管理
- 用户宏管理(主机和全局)
- 低级发现(LLD)规则和原型
- 代理管理
- 审核日志访问
- 内置Zabbix API文档搜索
- Stdio和HTTP传输
- 基于会话的Zabbix客户端,具有结构化日志记录功能
📋 先决条件
- Docker(推荐)
- 转到1.24+(如果从源代码构建)
- Zabbix 7.0 LTS服务器
- 有效的Zabbix API代币
⚡ 快速开始
构建Docker镜像
docker build -t zabbix-mcp:latest .
在HTTP模式下运行
docker run -p 8080:8080 --rm \
-e ZABBIX_URL='http://your-zabbix-server/api_jsonrpc.php' \
-e ZABBIX_TOKEN='your-api-token' \
-e TRANSPORT_MODE='http' \
zabbix-mcp:latest
在标准模式下运行
docker run -i --rm \
-e ZABBIX_URL='http://your-zabbix-server/api_jsonrpc.php' \
-e ZABBIX_TOKEN='your-api-token' \
zabbix-mcp:latest
⚙️ 配置
MCP客户端配置
存储库中为流行的MCP客户端提供了配置示例:
克劳德代码(claude.json)
{
"mcpServers": {
"Zabbix": {
"type": "http",
"url": "YOUR-ZABBIX-MCP-SERVER-URL/mcp",
"headers": {
"X-Zabbix-URL": "YOUR-ZABBIX-URL",
"X-Zabbix-Token": "YOUR-ZABBIX-TOKEN"
}
}
}
}
GitHub副本(github_copilot.json)
{
"servers": {
"Zabbix MCP Server": {
"type": "http",
"url": "YOUR-ZABBIX-MCP-SERVER-URL/mcp",
"headers": {
"X-Zabbix-URL": "YOUR-ZABBIX-URL/api_jsonrpc.php",
"X-Zabbix-Token": "YOUR-ZABBIX-TOKEN"
}
}
}
}
谷歌双子座(gemini.json)
{
"name": "zabbix-mcp-server",
"version": "1.0.0",
"description": "Zabbix MCP Server for managing Zabbix 7.0 LTS",
"publisher": "vfcastr",
"mcp": {
"command": "./zabbix-mcp-server",
"args": ["stdio"],
"env": {
"ZABBIX_URL": "${ZABBIX_URL}",
"ZABBIX_TOKEN": "${ZABBIX_TOKEN}"
}
}
}
环境变量
| 变量 |
描述 |
默认值 |
ZABBIX_URL |
Zabbix API网址 |
http://127.0.0.1/api_jsonrpc.php |
ZABBIX_TOKEN |
Zabbix API代币 |
(必需) |
ZABBIX_SKIP_VERIFY |
跳过TLS验证 |
false |
TRANSPORT_MODE |
运输方式(http 或 stdio) |
stdio |
TRANSPORT_PORT |
HTTP端口 |
8080 |
LOG_LEVEL |
日志级别 |
info |
🛠️ 工具
总计:包括79个工具
🖥️ 主机管理
| 工具 |
说明 |
get_hosts |
列出带有筛选器的主机 |
create_host |
创建新主机 |
update_host |
更新主机属性 |
delete_host |
删除主机 |
📂 主机组管理
| 工具 |
说明 |
zabbix_get_host_groups |
列出主机组 |
zabbix_create_host_group |
创建主机组 |
zabbix_update_host_group |
更新主机组 |
zabbix_delete_host_group |
删除主机组 |
📊 项目管理
| 工具 |
说明 |
get_items |
列出监控项目 |
create_item |
创建项目 |
update_item |
更新项目 |
delete_item |
删除项目 |
get_history |
获取历史项目值 |
⚡ 触发器管理
| 工具 |
说明 |
get_triggers |
列表触发器 |
create_trigger |
创建触发器 |
update_trigger |
更新触发器 |
delete_trigger |
删除触发器 |
📋 模板管理
| 工具 |
说明 |
get_templates |
列出模板 |
create_template |
创建模板 |
update_template |
更新模板 |
delete_template |
删除模板 |
link_template |
将模板链接到主机 |
unlink_template |
从主机取消链接模板 |
📁 模板组管理
| 工具 |
说明 |
zabbix_get_template_groups |
列出模板组 |
zabbix_create_template_group |
创建模板组 |
zabbix_update_template_group |
更新模板组 |
zabbix_delete_template_group |
删除模板组 |
🛠️ 维护管理
| 工具 |
说明 |
get_maintenance |
列出维护窗口 |
create_maintenance |
创建维护窗口 |
update_maintenance |
更新维护窗口 |
delete_maintenance |
删除维护窗口 |
🚨 问题与事件管理
| 工具 |
说明 |
get_problems |
获取当前问题 |
get_events |
获取活动 |
acknowledge_event |
确认/更新事件 |
get_trends |
获取趋势数据 |
get_alerts |
获取警报 |
👥 用户管理
| 工具 |
说明 |
get_users |
列出用户 |
create_user |
创建用户 |
update_user |
更新用户 |
delete_user |
删除用户 |
👥 用户组管理
| 工具 |
说明 |
get_user_groups |
列出用户组 |
create_user_group |
创建用户组 |
update_user_group |
更新用户组 |
delete_user_group |
删除用户组 |
🎭 用户角色管理
| 工具 |
说明 |
get_user_roles |
列出用户角色 |
create_user_role |
创建用户角色 |
update_user_role |
更新用户角色 |
delete_user_role |
删除用户角色 |
🔢 宏观管理
全局宏
| 工具 |
说明 |
get_global_macros |
获取全局宏 |
create_global_macro |
创建全局宏 |
update_global_macro |
更新全局宏 |
delete_global_macro |
删除全局宏 |
主机用户宏
| 工具 |
说明 |
get_user_macros |
获取主机宏 |
create_user_macro |
创建主机宏 |
update_user_macro |
更新主机宏 |
delete_user_macro |
删除主机宏 |
🌐 代理管理
| 工具 |
说明 |
zabbix_get_proxies |
列出代理 |
zabbix_create_proxy |
创建代理 |
zabbix_update_proxy |
更新代理 |
zabbix_delete_proxies |
删除代理 |
🌐 代理组管理
| 工具 |
说明 |
zabbix_get_proxy_groups |
列出代理组 |
zabbix_create_proxy_group |
创建代理组 |
zabbix_update_proxy_group |
更新代理组 |
zabbix_delete_proxy_groups |
删除代理组 |
🔍 LLD(低级发现)
| 工具 |
说明 |
get_lld_rules |
获取发现规则 |
create_lld_rule |
创建LLD规则 |
update_lld_rule |
更新LLD规则 |
delete_lld_rule |
删除LLD规则 |
copy_lld_rule |
将LLD规则复制到主机 |
🧩 原型
项目原型
| 工具 |
说明 |
get_item_prototypes |
获取物品原型 |
create_item_prototype |
创建项目原型 |
update_item_prototype |
更新商品原型 |
delete_item_prototype |
删除项目原型 |
触发器原型
| 工具 |
说明 |
get_trigger_prototypes |
获取触发器原型 |
create_trigger_prototype |
创建触发器原型 |
update_trigger_prototype |
更新触发器原型 |
delete_trigger_prototype |
删除触发器原型 |
📜 审计和文件
| 工具 |
说明 |
get_audit_log |
获取审核日志条目 |
get_zabbix_docs |
搜索Zabbix API文档 |
🏗️ 从源头构建
git clone https://github.com/vfcastr/Zabbix-MCP.git
cd Zabbix-MCP
go build -ldflags="-X github.com/vfcastr/Zabbix-MCP/version.Version=1.0.0" -o zabbix-mcp-server ./cmd/zabbix-mcp-server
📂 项目结构
Zabbix-MCP/
├── cmd/zabbix-mcp-server/ # Entry point
├── pkg/
│ ├── client/ # Zabbix API client
│ └── tools/ # MCP tools (79 tools)
│ ├── hosts/ # Host management
│ ├── hostgroups/ # Host group management
│ ├── items/ # Item management
│ ├── triggers/ # Trigger management
│ ├── templates/ # Template management
│ ├── templategroups/ # Template group management
│ ├── maintenance/ # Maintenance windows
│ ├── problems/ # Problem management
│ ├── events/ # Event management
│ ├── trends/ # Trend data
│ ├── alerts/ # Alert management
│ ├── users/ # User management
│ ├── usergroups/ # User group management
│ ├── userroles/ # User role management
│ ├── macros/ # User macros (host & global)
│ ├── proxies/ # Proxy management
│ ├── proxygroups/ # Proxy group management
│ ├── lld/ # LLD rules
│ ├── itemprototypes/ # Item prototypes
│ ├── triggerprototypes/ # Trigger prototypes
│ ├── auditlog/ # Audit log
│ └── docs/ # Documentation tool
├── version/ # Version info
├── claude.json # Claude Code config example
├── github_copilot.json # GitHub Copilot config example
├── gemini.json # Google Gemini config example
├── zabbix_documentation.md # Zabbix API docs
├── Dockerfile
├── go.mod
└── README.md
📝 许可证
MPL-2.0
👤 作者
由...创建 vfcaster