Zabbix MCP Server 是一个全面的模型上下文协议(MCP)服务器,它借助 FastMCP 和 python - zabbix - utils 实现与 Zabbix 的集成。该服务器通过支持 MCP 的工具,提供对 Zabbix API 功能的完整访问。
克隆仓库:
git clone https://github.com/mpeirone/zabbix-mcp-server.git
cd zabbix-mcp-server
安装依赖:
uv sync
配置环境变量:
cp config/.env.example .env
# 用你的 Zabbix 服务器详细信息编辑 .env
测试安装:
uv run python scripts/test_server.py
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 - 移除用户账户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
# 用你的 Zabbix 服务器详细信息编辑 .env
测试安装:
uv run python scripts/test_server.py
# 获取所有主机
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
)
ZABBIX_URL - 你的 Zabbix 服务器 API 端点(例如,https://zabbix.example.com)方法 1:API 令牌(推荐)
ZABBIX_TOKEN - 你的 Zabbix API 令牌方法 2:用户名/密码
ZABBIX_USER - 你的 Zabbix 用户名ZABBIX_PASSWORD - 你的 Zabbix 密码READ_ONLY - 设置为 true、1 或 yes 以启用只读模式(仅允许 GET 操作)使用启动脚本(推荐):
uv run python scripts/start_server.py
直接执行:
uv run python src/zabbix_mcp_server.py
运行测试套件:
uv run python scripts/test_server.py
当 READ_ONLY=true 时,服务器将仅公开 GET 操作(检索数据),并阻止所有创建、更新和删除操作。这适用于以下场景:
此服务器设计用于与如 Claude Desktop 等支持 MCP 的客户端配合使用。有关详细的集成说明,请参阅 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 'Add amazing feature')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 社区用心打造 ❤️