コンテンツにスキップ

zapi-mcp

Zabbix API 用の MCP サーバーです。

ネットワーク運用のために作りました。daily_brief を1回呼べばアクティブな問題と サイト固有のカテゴリ(DHCP プール使用率・SNAT セッション使用率・コアネットワークの 問題など)がまとまり、個別のツールで問題・ホスト・アイテム値を照会できます。

ツール

ツール 説明
health_check サーバーのバージョン・Zabbix への接続と認証・検出した API バージョン・読み込まれている daily_brief カテゴリ。セッション開始時やタイムアウト後に呼ぶ
daily_brief 朝の点検用。アクティブな問題(Warning 以上)と、設定したカテゴリごとのセクション
get_problems 深刻度・タグで絞ったアクティブな問題。新しい順・経過時間つき、eventid を含む
get_hosts role / タグ / グループで絞ったホスト一覧(IP・タグつき)
get_host_items 1ホストの現在のアイテム値
acknowledge_problem 問題を acknowledge してメッセージを追加(クローズはしない)

acknowledge_problem 以外はすべて読み取り専用です。

設計方針

組織固有の知識はコードではなく設定ファイルに置く。 どのホストタグが「DHCP プール」や「コアネットワーク」を意味するか、どのアイテムキーが使用率を持つか、 どの閾値が重要か — すべて ZABBIX_CATEGORIES_INI から読みます。サーバー自身は 特定の環境について何も知らないので、同じパッケージをそのまま他所で使えます。 詳しくは daily_brief のカテゴリ設定

溜まった問題が「今起きたこと」を埋もれさせない。 Zabbix は復旧が確認される まで問題をアクティブなままにするため、どの環境にも何年も「アクティブ」な アラートが溜まります(撤去済みホストの ICMP ping down、誰も再起動していない RDP サービスなど)。daily_brief は問題を新しい順に経過時間つきで並べ、直近ウィンドウ より古いものは … and N older (stale; oldest …) の1行に畳みます。

件数を黙って切り捨てない。 セクション見出しには真の総数が入り、取得が上限に 達した場合は showing N of TOTAL と表示します。上限に達したリストが自分の長さ だけを表示すると「これで全部」と読めてしまう — それを避けるための設計です。

認証はサーバーのバージョンに追随する。 Zabbix 6.0 LTS は userauth フィールド、6.4 / 7.0 は usernameAuthorization: Bearer ヘッダーを要求します。 クライアントが API バージョンを検出して正しい形を使うので、アップグレードを 跨いでも同じパッケージが動きます。

次に読むもの