一个全面的模型上下文协议(MCP)服务器,用于通过 FastMCP 和 python-zabbix-utils 集成 Zabbix。此服务器通过兼容 MCP 的工具提供了对 Zabbix API 功能的完全访问。
<a href="https://glama.ai/mcp/servers/@mpeirone/zabbix-mcp-server"> <img width="380" height="200" src="https://gips3.baidu.com/it/u=3588777768,898081203&fm=3081&app=3081&f=PNG?w=760&h=400" alt="zabbix-mcp-server MCP 服务器" /> </a>host_get - 使用高级过滤器检索主机host_create - 创建带有接口和模板的新主机host_update - 更新现有主机配置host_delete - 从监控中移除主机hostgroup_get - 检索主机组hostgroup_create - 创建新的主机组hostgroup_update - 修改现有的主机组hostgroup_delete - 移除主机组item_get - 使用过滤器检索监控项item_create - 创建新的监控项item_update - 更新现有的监控项item_delete - 移除监控项trigger_get - 检索触发器和警报trigger_create - 创建新的触发器trigger_update - 修改现有的触发器trigger_delete - 移除触发器template_get - 检索监控模板template_create - 创建新的模板template_update - 更新现有的模板template_delete - 移除模板problem_get - 检索当前的问题和问题event_get - 获取历史事件event_acknowledge - 确认事件和问题history_get - 访问历史监控数据trend_get - 检索趋势数据和统计信息user_get - 检索用户账户user_create - 创建新用户user_update - 更新用户信息user_delete - 移除用户账户proxy_get - 使用过滤器检索 Zabbix 代理proxy_create - 创建新的代理proxy_update - 更新现有的代理proxy_delete - 移除代理maintenance_get - 检索维护时段maintenance_create - 安排维护窗口maintenance_update - 修改维护时段maintenance_delete - 移除维护计划graph_get - 检索图形配置discoveryrule_get - 获取发现规则itemprototype_get - 检索项目原型configuration_export - 导出 Zabbix 配置configuration_import - 导入配置apiinfo_version - 获取 API 版本信息克隆仓库:
git clone https://github.com/mpeirone/zabbix-mcp-server.git
cd zabbix-mcp-server
安装依赖:
uv sync
配置环境变量:
cp config/.env.example .env
# 编辑 .env 文件,填写您的 Zabbix 服务器详情
测试安装:
uv run python scripts/test_server.py
ZABBIX_URL - 您的 Zabbix 服务器 API 端点(例如,https://zabbix.example.com)方法 1:API Token(推荐)
ZABBIX_TOKEN - 您的 Zabbix API Token方法 2:用户名/密码
ZABBIX_USER - 您的 Zabbix 用户名ZABBIX_PASSWORD - 您的 Zabbix 密码READ_ONLY - 设置为 true、1 或 yes 启用只读模式(仅允许 GET 操作)VERIFY_SSL - 启用或禁用 SSL 证书验证(默认:true)ZABBIX_MCP_TRANSPORT - 传输类型:stdio(默认)或 streamable-httpHTTP 传输配置(仅在 ZABBIX_MCP_TRANSPORT=streamable-http 时使用):
ZABBIX_MCP_HOST - 服务器主机(默认:127.0.0.1)ZABBIX_MCP_PORT - 服务器端口(默认:8000)ZABBIX_MCP_STATELESS_HTTP - 无状态模式(默认:false)AUTH_TYPE - 必须设置为 no-auth 以使用 streamable-http 传输使用启动脚本(推荐):
uv run python scripts/start_server.py
直接执行:
uv run python src/zabbix_mcp_server.py
服务器支持两种传输方式:
标准输入/输出传输,适用于像 Claude Desktop 这样的 MCP 客户端:
# 在 .env 或环境中设置
ZABBIX_MCP_TRANSPORT=stdio
基于 HTTP 的传输,适用于 Web 集成:
# 在 .env 或环境中设置
ZABBIX_MCP_TRANSPORT=streamable-http
ZABBIX_MCP_HOST=127.0.0.1
ZABBIX_MCP_PORT=8000
ZABBIX_MCP_STATELESS_HTTP=false
AUTH_TYPE=no-auth
注意: 当使用 streamable-http 传输时,必须将 AUTH_TYPE 设置为 no-auth。
运行测试套件:
uv run python scripts/test_server.py
当 READ_ONLY=true 时,服务器将仅暴露 GET 操作(检索数据),并阻止所有创建、更新和删除操作。这适用于:
获取所有主机:
host_get()
获取特定组中的主机:
host_get(groupids=["1"])
创建新主机:
host_create(
host="server-01",
groups=[{"groupid": "1"}],
interfaces=[{
"type": 1,
"main": 1,
"useip": 1,
"ip": "192.168.1.100",
"dns": "",
"port": "10050"
}]
)
获取最近的问题:
problem_get(recent=True, limit=10)
获取历史数据:
history_get(
itemids=["12345"],
time_from=1640995200,
limit=100
)
获取所有代理:
proxy_get()
创建新的主动代理:
proxy_create(
host="proxy-01",
status=5,
description="主要数据中心代理"
)
此服务器旨在与兼容 MCP 的客户端(如 Claude Desktop)一起工作。请参阅 MCP_SETUP.md 以获取详细的集成说明。
配置环境:
cp config/.env.example .env
# 编辑 .env 文件,填写您的设置
使用 Docker Compose 运行:
docker compose up -d
docker build -t zabbix-mcp-server .
zabbix-mcp-server/
├── src/
│ └── zabbix_mcp_server.py # 主服务器实现
├── scripts/
│ ├── start_server.py # 带有验证的启动脚本
│ └── test_server.py # 测试脚本
├── config/
│ ├── .env.example # 环境配置模板
│ └── mcp.json # MCP 客户端配置示例
├── pyproject.toml # Python 项目配置
├── requirements.txt # 依赖项
├── Dockerfile # Docker 配置
├── docker-compose.yml # Docker Compose 设置
├── README.md # 此文件
├── MCP_SETUP.md # MCP 集成指南
├── CONTRIBUTING.md # 贡献指南
├── CHANGELOG.md # 版本历史
└── LICENSE # MIT 许可证
git checkout -b feature/amazing-feature)git commit -m '添加惊人的功能')git push origin feature/amazing-feature)# 测试服务器功能
uv run python scripts/test_server.py
# 使用 Docker 测试
docker-compose exec zabbix-mcp python scripts/test_server.py
服务器包括全面的错误处理:
连接失败:
ZABBIX_URL 是否正确且可访问权限被拒绝:
未找到工具:
uv sync设置环境变量以启用详细日志记录:
export DEBUG=1
uv run python scripts/start_server.py
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。
为 Zabbix 和 MCP 社区制作 ❤️