MackerelのMCPサーバーに触れてみた

こんにちは、SCSKの嶋谷です。

監視ツール(ZabbixやDatadogなど)では、それぞれの管理コンソールから監視対象で発生しているアラートや監視データを閲覧することができます。
Mackerelでもコンソールからアラートや監視データの閲覧が可能で、発生日時やアラート内容などが記載されています。
監視対象で発生している障害を復旧するためには、アラート内容を分析して対応方法を考える必要があります。
近年ではChatGPTやCopilotを利用して、AIに助言をもらうことが多くなっています。

しかし、ChatGPTやCopilotでは一般的な回答しか得られません。Mackerelで検知したアラートに対する助言を得るためには、プロンプトに発生日時やアラート内容を記載する必要があります。Mackerel専用のAIチャットボットを作りたいと思っていたところ、株式会社はてな様がMackerel MCPサーバーの提供を開始されました。
MackerelとAIでシステム専任の担当者を作る ―― Mackerel MCPサーバーで始めるアラート対応【前編】

これによりMackerel専用のチャットボットが作成できると考え、Mackerel MCPサーバーに触れてみたので紹介します。

MCPとは

MCP(Model Context Protocol)は、AIモデル(特に大規模言語モデル:LLM)と外部ツールやデータソースを統一された方法で接続するためのオープンソースプロトコルです。2024年11月にAnthropic社が発表しました。
MCPの仕様に準拠して構築されたサーバーをMCPサーバーと呼び、AIからのリクエストを受け取り、外部のツールやデータソースと連携して必要な処理を実行して結果を返すことが可能となります。

これまで外部ツールと接続する場合は、個別にAPIやプログラムを作成する必要がありました。
MCPサーバーを利用すれば、個別に作成する必要が無くなり、同じ方法で多様な外部ツールに接続することが可能になります。
MCPについて
ZabbixやDatadogなどもMCPサーバーに対応し始めています。

Mackerel MCPサーバーに触れる

ここからMackerelのMCPサーバーのセットアップからチャットボットと対話までの流れを説明していきたいと思います。

構成

Mackerel MCPサーバーの構成図を下記に示します。
今回はユーザ自身のPCで動作するローカルMCPサーバーで環境を構築しました。
PCにClaude Desktopをインストールして、Mackerel MCPサーバーとの接続設定を行うことで簡単に環境を構築することができます。

環境構築手順

ここから実際の環境構築の手順について説明していきます。

Claude Desktopのインストール

下記リンクからユーザPCにClade Desktopをインストールします。
Download Claude
インストール後アカウント登録を行います。(Googleアカウントでの登録も可能です。)
Claudeにはいくつかのプランがありますが、今回は無料(Free)プランを選択しました。

Node.jsのインストール

下記リンクからユーザPCにNode.jsをインストールします。
Node.js — どこでもJavaScriptを使おう
インストール後にバージョン確認と、npxコマンドが実行可能であることを確認します。

Node.jsバージョン確認

% node -v
V22.20.0

npxコマンド実行可否確認

% npx -v
10.9.3

上記のような結果となればインストールが完了し、npxコマンドが実行可能であることを確認できます。
npxコマンドはNode.jsのインストールと同時にインストールされ、個別にインストールする必要はありませんでした。

MCPサーバーの設定

Claude DesktopとMackerel MCPサーバーを連携します。

①Claude Desktopの設定を選択

②設定画面の「開発者」メニューを選択して、ローカルMCPサーバー内の「設定を編集」を選択
掲載画像はすでに設定後の画面となっているため、表示位置などは初期状態とは異なっています。

「設定の編集」を選択するとClaude Desktopの設定ファイルが保存されているフォルダが自動で開きます。

③設定ファイルを編集
Claude Desktopの設定ファイルが保存されているフォルダの「claude_desktop_config.json」に設定を記載します。
設定内容は下記のとおりです。

{
 "mcpServers": {
  "mackerel": {
   "command": "npx",
   "args": ["-y", "@mackerel/mcp-server"],
   "env": {
    "MACKEREL_APIKEY": "${MACKEREL_APIKEY}"
   }
  }
 }
}

④Claude Desktopを再起動

⑤連携できているかの確認
設定の「開発者」メニューを確認すると、「ローカルMCPサーバー」の項目に「mackerel」が出現し、「running(動作中)」と
表示されます。

Claude DesktopとMackerel MCPサーバーの連携は完了になります。

Claude DesktopでMackerel MCPサーバーを利用

提供機能

Mackerel MCPサーバーは以下13の機能を提供しています。
アラートの取得やホストの取得などさまざまな機能を提供しています。

list_alerts アラートの一覧を取得
get_alert 特定のアラートを取得
get_alert_logs 特定のアラートのログを取得
list_dashboards ダッシュボードの一覧を取得
get_dashboard 特定のダッシュボードを取得
update_dashboard 特定のダッシュボードを更新
list_hosts ホストの一覧を取得
get_host_metrics 特定のホストのメトリックを取得
list_services サービスの一覧を取得
get_service_metrics 特定のサービスのメトリックを取得
list_monitors 監視ルールの一覧を取得
get_monitor 特定の監視ルールを取得
get_trace トレースIDからトレースデータを取得

利用例1:アラートの分析や対応方法の相談

Mackerelで発生しているアラートについて、分析と対応方法をClaudeに相談してみました。
Mackerelで発生している特定のアラートについて、下記のようにプロンプトを送信しました。

アラートID「5AABPvnt85U」で発生している問題を分析して、問題の対処法を考えてください。

アラートIDについてはMackerelのコンソールから確認しています。
※Freeプランでのメッセージ回数制限回避のため、アラートIDはMackerelコンソールで確認しています。

プロンプトの回答結果を下記に示します。
プロンプトで指定したアラートIDの原因と対処法を出力してくれました。
設定からアラートの相談まで短時間で完了することができ、こんなにも簡単なんだと感銘を受けました。

利用例2:ダッシュボードの更新

ここでは私の気になった「update_dashboard」機能について触れてみたので紹介します。
Mackerelのダッシュボード機能は監視データを一画面に集約することができ、サーバーの状況を把握することが可能な機能です。
グラフや数値などの情報パーツをドラッグ&ドロップで自由に並べて、自分専用の見やすい画面を作ることが可能です。
今回は、特定ホストのメモリ使用量のグラフ・数値を可視化したダッシュボードを作成しました。
ダッシュボードの作成方法は今回のブログでは省略します。
作成したダッシュボードが下記です。メモリ使用量のグラフ・数値が一目で把握することが可能です。
このダッシュボード更新するために、「検証機ダッシュボードを更新したい」とClaude Desktopに投げました。
回答を以下に示しています。「update_dashboard」機能で実現可能な更新内容が記されています。今回はダッシュボード名の変更とCPUのグラフを追加してみました。
下記のプロンプトをClaude Desktopに入力して送信しました。

ダッシュボード名をブログ用ダッシュボードに変更して、CPUのグラフウィジェットも追加してください。

Claude Desktopから「更新が完了しました。」と返信が来た後、Mackerelコンソールのダッシュボードを確認しました。
下記のようにダッシュボードが更新されていました。ダッシュボード名が変更され、CPU使用量のグラフが追加されていました。

アラート対応の相談とは少し違いますが、AIと対話するだけで更新できるのはとても便利だと感じました。

まとめ

今回はMackerel MCPサーバーでAIにアラートの対応方法を相談してみました。設定方法としてはとても簡単で詰まることなく設定完了することができました。Mackerelの情報をもとにアラートの対応方法などを考えてくれるのでとても便利だなと思いました。現時点では、データ取得機能が多いですが、今後は「upadte_dashboard」のような更新機能も増加するのではないかと心待ちにしています。
最後まで読んでいただきありがとうございました。

タイトルとURLをコピーしました