Zabbix MCP Server
Zabbix API와 연결하여 현재 발생 중인 문제(Problems)와 트리거(Triggers) 정보를 조회하는 MCP(Model Context Protocol) 서버입니다.
기능
- list_problems: 현재 발생 중인 Zabbix 문제 목록 조회
- list_triggers: 현재 활성화된 Zabbix 트리거 목록 조회
- zabbix_health: Zabbix API 연결 상태(버전) 확인
프로젝트 구조
설치 및 설정
1. 의존성 설치
프로젝트를 클론한 후 의존성을 설치하세요:
필요한 의존성:
mcp[cli]>=1.13.1
: MCP 서버 프레임워크requests>=2.31.0
: HTTP 요청 라이브러리
2. MCP 클라이언트 등록 (공통 가이드)
아래 JSON 예시는 다양한 MCP 클라이언트에서 공통으로 사용하는 형식입니다. 실제 설정 파일 위치와 키 이름은 클라이언트마다 다를 수 있으니, 사용 중인 MCP 클라이언트 문서를 참고해 동일한 구조로 등록하세요.
API 토큰 사용 (권장):
사용자명/비밀번호 사용:
참고: 일부 클라이언트는 설정 파일이 JSON이 아닌 다른 포맷이거나, mcpServers
대신 별도의 섹션명을 사용할 수 있습니다. 이 경우에도 위 필드(command
, args
, cwd
, env
)를 동일하게 매핑해 등록하면 됩니다.
uvx를 사용한 등록 (패키지 배포 후)
3. 서버 테스트 (선택 사항)
로컬에서 직접 실행하여 테스트할 수 있습니다:
중요한 실행 방법:
- 반드시
src
디렉터리 내에서 실행해야 합니다 - 프로젝트 루트에서
python src/server.py
로 실행하면 import 오류가 발생할 수 있습니다
주의 사항:
- MCP 서버는 STDIO 기반으로 동작하므로 직접 실행 시 입출력이 제한됩니다
- 실제 테스트는 사용 중인 MCP 클라이언트를 통해 진행하는 것을 권장합니다
환경 변수 설정
MCP 설정의 env
섹션에서 다음 환경 변수를 설정해야 합니다:
필수 환경 변수
ZABBIX_URL
: Zabbix 서버의 JSON-RPC API URL
인증 방법 (둘 중 하나 선택)
방법 1: API 토큰 (권장)
ZABBIX_API_TOKEN
: Zabbix API 토큰
방법 2: 사용자명/비밀번호
ZABBIX_USER
: Zabbix 사용자명ZABBIX_PASSWORD
: Zabbix 비밀번호
선택 환경 변수
ZABBIX_VERIFY_SSL
: Zabbix API 인증서 검증 여부 (true
/false
, 기본값true
). 자체 서명 인증서일 경우false
로 설정.ZABBIX_TIMEOUT
: Zabbix API 요청 타임아웃(초). 기본값30
.
사용법
문제 목록 조회
트리거 목록 조회
헬스 체크
API 응답 형식
Problems 응답
Triggers 응답
심각도 레벨
- 0: Not classified
- 1: Information
- 2: Warning
- 3: Average
- 4: High
- 5: Disaster
문제 해결
의존성 오류
Import 오류 (No such file or directory)
환경 변수 오류
- MCP 설정의
env
섹션에 필수 환경 변수가 모두 설정되었는지 확인하세요 ZABBIX_URL
이 올바른 JSON-RPC API 엔드포인트인지 확인하세요 (보통/api_jsonrpc.php
로 끝남)
인증 오류
- API 토큰이 유효한지 확인하세요
- 사용자명/비밀번호가 정확한지 확인하세요
- Zabbix 서버 URL이 올바른지 확인하세요
연결 오류
- Zabbix 서버가 실행 중인지 확인하세요
- 네트워크 연결을 확인하세요
- 방화벽 설정을 확인하세요
권한 오류
- 사용자가 문제와 트리거를 조회할 권한이 있는지 확인하세요
- API 토큰에 적절한 권한이 부여되었는지 확인하세요
MCP 서버 연결 확인
사용 중인 MCP 클라이언트의 서버/도구 패널 또는 로그 뷰어에서 상태를 확인하세요:
- MCP 클라이언트의 서버 목록에서 "zabbix" 확인
- 연결 실패 시 클라이언트 로그/콘솔 출력 확인
- 환경 변수와 실행 경로(
cwd
)가 올바른지 재점검
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Enables users to monitor and query Zabbix infrastructure through natural language by providing access to current problems, active triggers, and system health status via the Zabbix API.