Zabbix Mcp について
Zabbix MCP Server は、3 つのツールを通じて Zabbix API の全メソッドを AI アシスタントから利用できるようにする軽量な MCP サーバーです。AI を使って Zabbix の監視情報を照会・管理したいユーザーを対象とし、Zabbix 6.0 以降に対応しています。読み取り専用モードとメソッドフィルタリングを備えています。
主な機能
- 013 つのツールで Zabbix API 全体をカバー
- 02任意の API メソッドのドキュメント参照
- 03読み取り専用モードによる操作制限
- 04API メソッドの正規表現によるホワイトリストとブラックリスト
- 05stdio と streamable-http のトランスポートに対応
活用シーン
- 01AI アシスタントによるホスト、アイテム、現在の問題の照会
- 02読み取り専用設定での Zabbix データの分析
- 03Docker でサーバーをデプロイし MCP クライアントから接続
MCP 対応
MCP サーバーとして動作し、zabbix_api、zabbix_api_docs、zabbix_api_list の 3 つのツールを MCP クライアントに公開して Zabbix API を呼び出せるようにします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Zabbix MCP サーバー
わずか3つのツールでZabbix API全体に完全にアクセスできる、軽量なModel Context Protocol(MCP)サーバーです。Zabbix 6.0以降に対応しています。
Zabbix MCP サーバーを選ぶ理由
- APIを完全に網羅 - 統一されたインターフェースを通じて、あらゆるZabbix APIメソッド(100以上)にアクセスできます
- 軽量なコンテキスト - 個別のツールを50個以上用意する代わりに、ツールを3つに絞り、LLMのコンテキストを最小限に保ちます
- 常に最新 - 現在および将来のZabbix APIメソッドに自動的に対応します
- Zabbix 6.0以降に対応 - Zabbix 6.0、6.4、7.0以降のバージョンをサポートします
3つのツール
| ツール | 目的 |
|---|---|
zabbix_api | 任意のZabbix APIメソッドを実行します |
zabbix_api_docs | 任意のAPIメソッドのドキュメントを取得します |
zabbix_api_list | 利用可能なAPIオブジェクトとメソッドを確認します |
クイックスタート
オプション1:Claude Codeとの連携
Claude CodeのMCP設定に追加します。
claude mcp add zabbix \
--env ZABBIX_URL=https://your-zabbix-server.com \
--env ZABBIX_TOKEN=your_api_token \
-- uvx --from git+https://github.com/mpeirone/zabbix-mcp-server@main zabbix-mcp
オプション2:uvで実行
git clone https://github.com/mpeirone/zabbix-mcp-server.git
cd zabbix-mcp-server
uv sync
# Configure environment
export ZABBIX_URL=https://your-zabbix-server.com
export ZABBIX_TOKEN=your_api_token
# Start the server
uv run python scripts/start_server.py
接続をテスト
uv run python scripts/test_server.py
オプション3:dockerで実行
git clone https://github.com/mpeirone/zabbix-mcp-server.git
cd zabbix-mcp-server
# Using docker-compose
docker compose up -d
# Or build manually
docker build -t zabbix-mcp-server .
docker run -e ZABBIX_URL=https://zabbix.example.com -e ZABBIX_TOKEN=your_token zabbix-mcp-server
環境変数
必須
| 変数 | 説明 | 例 |
|---|---|---|
ZABBIX_URL | ZabbixサーバーのURL | https://your-zabbix-server.com |
認証(いずれかを選択)
| 変数 | 説明 |
|---|---|
ZABBIX_TOKEN | APIトークン(推奨) |
ZABBIX_USER + ZABBIX_PASSWORD | ユーザー名とパスワード |
セキュリティ
| 変数 | デフォルト | 説明 |
|---|---|---|
READ_ONLY | false | trueに設定すると、読み取り操作のみ許可します |
VERIFY_SSL | true | SSL検証を有効/無効にします |
ZABBIX_API_WHITELIST | .* | 許可するAPIメソッドの正規表現パターン(カンマ区切り) |
ZABBIX_API_BLACKLIST | (empty) | ブロックするAPIメソッドの正規表現パターン(カンマ区切り) |
ZABBIX_SKIP_VERSION_CHECK | false | Zabbixのバージョン互換性チェックをスキップします |
ZABBIX_API_TIMEOUT | 30 | APIリクエストのタイムアウト(秒) |
トランスポート
| 変数 | デフォルト | 説明 |
|---|---|---|
ZABBIX_MCP_TRANSPORT | stdio | トランスポートの種類:stdioまたはstreamable-http |
ZABBIX_MCP_HOST | 127.0.0.1 | HTTPサーバーのホスト(streamable-http使用時) |
ZABBIX_MCP_PORT | 8000 | HTTPサーバーのポート(streamable-http使用時) |
ZABBIX_MCP_STATELESS_HTTP | false | ステートレスHTTPモード |
AUTH_TYPE | - | HTTPトランスポートではno-authにする必要があります(streamable-http使用時) |
デバッグ
| 変数 | デフォルト | 説明 |
|---|---|---|
DEBUG | false | 詳細なログを出力するにはtrueに設定します |
使用例
ホストを取得
zabbix_api(method='host.get', params={'output': ['hostid', 'name']})
問題を取得
zabbix_api(method='problem.get', params={'output': 'extend', 'recent': True})
ホストを作成
zabbix_api(method='host.create', params={
'host': 'server-01',
'groups': [{'groupid': '1'}],
'interfaces': [{'type': 1, 'main': 1, 'useip': 1, 'ip': '192.168.1.100', 'port': '10050'}]
})
メソッドのドキュメントを取得
zabbix_api_docs(method='host.create')
利用可能なメソッドを一覧表示
zabbix_api_list() # All objects and methods
zabbix_api_list(object='host') # Host methods only
セキュリティ機能
読み取り専用モード
READ_ONLY=trueに設定して、すべての書き込み操作をブロックします。
export READ_ONLY=true
get、version、check、export操作のみ許可されます。
APIメソッドのフィルタリング
ホワイトリスト/ブラックリストのパターンを使って、呼び出し可能なAPIメソッドを制御します。
# Allow only host.* and item.get methods
export ZABBIX_API_WHITELIST="host\..*,item\.get"
# Block all delete and create operations
export ZABBIX_API_BLACKLIST=".*\.delete,.*\.create"
どちらもカンマ区切りの正規表現パターンに対応しています。ブラックリストが先にチェックされます。
MCPクライアントの設定
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または%APPDATA%\Claude\claude_desktop_config.json(Windows)に追加します。
{
"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": "your_api_token"
}
}
}
}
トラブルシューティング
接続の問題
ZABBIX_URLにアクセスできることを確認してください- 認証情報を確認してください
- Zabbix API が有効になっていることを確認してください
権限エラー
- Zabbix ユーザーの権限を確認してください
READ_ONLYモードが有効になっているか確認してください
メソッドがブロックされる場合
「Method is not in whitelist」または「Method is blacklisted」と表示される場合:
ZABBIX_API_WHITELISTとZABBIX_API_BLACKLISTのパターンを確認してください- 正規表現のパターンがメソッド名全体(例:
host.get)に一致することを確認してください
デバッグモード
export DEBUG=true
uv run python scripts/start_server.py
コントリビューション
開発ガイドラインについては、CONTRIBUTING.md を参照してください。
ライセンス
GPLv3 ライセンスの詳細については、LICENSE を参照してください。
謝辞
- Zabbix - 監視プラットフォーム
- Model Context Protocol - 統合規格
- FastMCP - MCP フレームワーク
- python-zabbix-utils - Zabbix 公式 Python ライブラリ
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。