コンテンツにスキップ

セットアップ

インストール

uv pip install zapi-mcp
# または
pip install zapi-mcp

ソースから:

git clone https://github.com/shigechika/zapi-mcp.git
cd zapi-mcp
uv sync          # または: pip install -e .

Zabbix アカウント

API ユーザーには照会対象のホストグループへの読み取り権限が必要です。 acknowledge_problem を使う場合は acknowledge 権限も要ります。それ以外は不要で、 スーパー管理者ロールも設定への書き込み権限も必要ありません。

個人のアカウントを流用せず API 専用ユーザーを作ると、監査ログが読みやすくなり、 その人が異動・退職しても動き続けます。

環境変数

変数 説明 既定
ZABBIX_URL Zabbix のベース URL(例 https://zabbix.example.com)。/api_jsonrpc.php は無ければ補われる 必須
ZABBIX_USER Zabbix API ユーザー 必須
ZABBIX_PASSWORD Zabbix API パスワード 必須
ZABBIX_CATEGORIES_INI daily_brief 用カテゴリ INI のパス
ZABBIX_BRIEF_RECENT_HOURS daily_brief の「直近」ウィンドウ(時間)。これより古い問題は件数に畳まれる 24
ZABBIX_BRIEF_PROBLEM_LIMIT daily_brief が1回に取得するアクティブ問題の上限。超過分は件数として数える 1000

何かに組み込む前に確認する

zapi-mcp --check
exit 0 なら環境変数が揃っていて認証も成功しています。1 は設定エラー、 2 は認証・接続エラーです。一度これを走らせておけば、「ツールが何も返さない」 が既に答えの出ている問いになります。

MCP クライアントへの登録

Claude Code

.mcp.json:

{
  "mcpServers": {
    "zapi-mcp": {
      "type": "stdio",
      "command": "zapi-mcp",
      "env": {
        "ZABBIX_URL": "https://zabbix.example.com",
        "ZABBIX_USER": "api-user",
        "ZABBIX_PASSWORD": "",
        "ZABBIX_CATEGORIES_INI": "/path/to/categories.ini"
      }
    }
  }
}

Claude Desktop

claude_desktop_config.json:

{
  "mcpServers": {
    "zapi-mcp": {
      "command": "zapi-mcp",
      "env": {
        "ZABBIX_URL": "https://zabbix.example.com",
        "ZABBIX_USER": "api-user",
        "ZABBIX_PASSWORD": ""
      }
    }
  }
}

直接実行

export ZABBIX_URL=https://zabbix.example.com
export ZABBIX_USER=api-user
export ZABBIX_PASSWORD=your-password
zapi-mcp

Zabbix のバージョン互換

認証はバージョンに追随します。クライアントが API バージョンを検出し、6.0 LTS には userauth フィールド、6.4 / 7.0 には usernameAuthorization: Bearer を送ります。これを選ぶ設定項目はありません。Zabbix サーバーをアップグレードしても こちら側の変更は不要です。

health_check は検出したバージョンを zabbix_api_version に返すので、サーバーが 実際に何で応答したかを確認する最短手段になります。

次に

朝のレポートにサイト固有のセクションを追加します: daily_brief のカテゴリ設定