mcpField
K
Kibana MCP Server

Kibana MCP Server

ローカル
github.comデータ・分析852 週間前に更新

Kibana MCP Server について

Kibana MCP Server は、MCP 互換クライアントが自然言語やプログラムからのリクエストで Kibana インスタンスを検索・管理できるようにする MCP サーバーです。コミュニティが保守しており、Elastic や MCP の公式製品ではありません。Elasticsearch MCP Server と組み合わせて使用できます。

主な機能

  1. 01Stdio と HTTP の2つのトランスポートモード
  2. 02API Key、Basic 認証、Cookie 認証
  3. 03保存オブジェクトの CRUD と一括操作
  4. 04依存関係分析とダッシュボードのヘルスチェック
  5. 05search_elasticsearch による読み取り専用の Query DSL 検索

活用シーン

  1. 01自然言語による Kibana のステータスやスペースの確認
  2. 02ダッシュボードや可視化オブジェクトの一括更新と整理
  3. 03変更前のダッシュボード健全性確認と削除影響の分析
  4. 04ログやトレースからエラーと関連イベントを検索

MCP 対応

このプロジェクトは MCP サーバーであり、保存オブジェクト管理、API エンドポイントの検索、Elasticsearch データ検索などの Kibana 向けツールとリソースを MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"kibana": {
"command": "npx",
"args": [
"-y",
"@tocharianou/mcp-server-kibana"
],
"env": {
"KIBANA_URL": "<KIBANA_URL>",
"KIBANA_API_KEY": "<KIBANA_API_KEY>",
"KIBANA_USERNAME": "<KIBANA_USERNAME>",
"KIBANA_PASSWORD": "<KIBANA_PASSWORD>",
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"MCP_HTTP_PORT": "<MCP_HTTP_PORT>",
"MCP_BEARER_TOKEN": "<MCP_BEARER_TOKEN>"
}
}
}
}
起動コマンドnpx -y @tocharianou/mcp-server-kibana
設定が必要な環境変数
KIBANA_URLYour Kibana instance URL (e.g., http://localhost:5601)
KIBANA_API_KEYシークレットKibana API key for authentication
KIBANA_USERNAMEKibana username for basic authentication
KIBANA_PASSWORDシークレットKibana password for basic authentication
MCP_TRANSPORTTransport mode selection
MCP_HTTP_PORTHTTP server port
MCP_BEARER_TOKENシークレットBearer token required on /mcp requests (recommended for any non-localhost bind)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@tocharianou/mcp-server-kibana0.11.1

ツール

16

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
spacestringいいえ対象の Kibana スペース(任意。デフォルトでは設定済みのスペースを使用します)

詳細

MseeP.ai セキュリティ評価バッジ

Kibana MCP サーバー

npm バージョン ダウンロード数 DeepWiki に質問

MCP 互換クライアント(Claude Desktop など)が、自然言語またはプログラムによるリクエストを通じて Kibana インスタンスにアクセスできるようにする、Kibana MCP サーバーの実装です。

このプロジェクトは、Elastic の公式 Kibana API ドキュメントに基づいており、Elastic Stack 8.x の OpenAPI YAML 仕様を使用しています。詳細については、Kibana API ドキュメントをご覧ください。

このプロジェクトはコミュニティによって保守されており、Elastic または MCP の公式製品ではありません。

💡 関連プロジェクト: Elastic Stack を完全に統合するには、Elasticsearch MCP サーバーを組み合わせて、Elasticsearch のデータを直接操作してください。


🚀 インストール

# Global installation (recommended)
npm install -g @tocharianou/mcp-server-kibana

# Or use directly with npx
npx @tocharianou/mcp-server-kibana
ソースから
git clone https://github.com/TocharianOU/mcp-server-kibana.git
cd mcp-server-kibana
npm install && npm run build

🎯 クイックスタート

Claude Desktop との統合(推奨)

Claude Desktop の設定ファイルに追加します。

  • MacOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "kibana": {
      "command": "npx",
      "args": ["@tocharianou/mcp-server-kibana"],
      "env": {
        "KIBANA_URL": "http://your-kibana-server:5601",
        "KIBANA_API_KEY": "your-api-key",
        "KIBANA_DEFAULT_SPACE": "default"
      }
    }
  }
}
CLI を直接使用
# Using API Key (recommended)
KIBANA_URL=http://localhost:5601 \
KIBANA_API_KEY=your-api-key \
npx @tocharianou/mcp-server-kibana

# Using Basic Auth
KIBANA_URL=http://localhost:5601 \
KIBANA_USERNAME=your-username \
KIBANA_PASSWORD=your-password \
npx @tocharianou/mcp-server-kibana

# Using Cookie Auth
KIBANA_URL=http://localhost:5601 \
KIBANA_COOKIES="sid=xxx; security-session=yyy" \
npx @tocharianou/mcp-server-kibana
HTTP モード(リモートアクセス)
MCP_TRANSPORT=http \
MCP_HTTP_PORT=3000 \
KIBANA_URL=http://localhost:5601 \
KIBANA_API_KEY=your-api-key \
npx @tocharianou/mcp-server-kibana

アクセス先:http://localhost:3000/mcp
ヘルスチェック:http://localhost:3000/health

HTTP モードのセキュリティ保護。 /mcp 上のすべてのセッションは、サーバーの起動時に設定された Kibana 認証情報を使用するため、このエンドポイントは慎重に扱ってください。

  • デフォルトでは、サーバーは localhost のみでリッスンし、Host ヘッダーがループバック名ではないリクエストを拒否します(DNS リバインディング対策)。
  • リモートクライアントからのアクセスを許可するには、MCP_BEARER_TOKEN を設定します。その場合、クライアントはすべての /mcp リクエストに Authorization: Bearer <token> を含める必要があります。/health は引き続き認証なしでアクセスできます。
  • MCP_BEARER_TOKEN を設定せずに、ループバック以外のアドレス(MCP_HTTP_HOST=0.0.0.0)にバインドすると、起動時に警告がログに記録されます。このポートにアクセスできる人は誰でも、Kibana の認証情報を使用できます。
  • パブリックな Host ヘッダーを localhost にバインドされたサーバーに転送するリバースプロキシの背後で使用する場合は、そのホスト名を MCP_ALLOWED_HOSTS に指定してください。
MCP_TRANSPORT=http \
MCP_HTTP_HOST=0.0.0.0 \
MCP_BEARER_TOKEN="$(openssl rand -hex 32)" \
KIBANA_URL=http://localhost:5601 \
KIBANA_API_KEY=your-api-key \
npx @tocharianou/mcp-server-kibana

✨ 特長

主な機能
  • 2 種類のトランスポートモード:stdio(ローカル)と HTTP(リモートアクセス)
  • 複数の認証方式:API キー、Basic 認証、Cookie ベース
  • 複数スペースのサポート:エンタープライズに対応した Kibana スペース管理
  • SSL/TLS のサポート:カスタム CA 証明書の設定
  • セッション管理:HTTP モードで UUID を自動生成
  • 動的な API 検出:公式 Kibana OpenAPI 仕様に基づく
保存済みオブジェクトの管理
  • すべての Kibana 保存済みオブジェクトタイプに対する完全な CRUD 操作
  • ページネーションに対応したインテリジェントな検索
  • 効率的な一括更新のためのバルク操作
  • 楽観的同時実行制御によるバージョン管理
  • オブジェクト間の関係を管理する参照管理

🔧 設定

必須の変数
変数説明例
KIBANA_URLKibana サーバーのアドレスhttp://localhost:5601
認証(いずれかの方式を選択)
変数説明優先度
KIBANA_API_KEYAPI キー(Base64 エンコード済み)1 番目
KIBANA_USERNAME + KIBANA_PASSWORDBasic 認証2 番目
KIBANA_COOKIESセッションクッキー3 番目
オプションの変数
変数説明デフォルト
KIBANA_DEFAULT_SPACEデフォルトの Kibana スペースdefault
KIBANA_CA_CERTCA 証明書のパス-
KIBANA_TIMEOUTリクエストのタイムアウト(ms)60000
MCP_TRANSPORTトランスポートモードstdio
MCP_HTTP_PORTHTTP サーバーのポート3000
MCP_HTTP_HOSTHTTP サーバーのホストlocalhost
MCP_BEARER_TOKENHTTP モード:/mcp で Authorization: Bearer <token> を必須にする-
MCP_ALLOWED_HOSTSHTTP モード:Host ヘッダーで受け入れる追加のホスト名(カンマ区切り)-
NODE_TLS_REJECT_UNAUTHORIZEDSSL 検証を無効にする1

🛠️ 利用可能なツール

基本ツール
  • get_status - Kibana サーバーのステータスを取得
  • execute_kb_api - カスタム Kibana API リクエストを実行
  • search_elasticsearch - ユーザーの Elasticsearch インデックス権限の範囲内で、Kibana の検索 API を通じて Elasticsearch のドキュメントやログを検索
  • get_available_spaces - 利用可能な Kibana スペースを一覧表示
  • search_kibana_api_paths - API エンドポイントを検索
  • list_all_kibana_api_paths - すべての API エンドポイントを一覧表示
  • get_kibana_api_detail - API エンドポイントの詳細を取得
保存済みオブジェクトのツール
  • vl_search_saved_objects - 保存済みオブジェクトを検索(汎用)
  • vl_get_saved_object - 単一の保存済みオブジェクトを取得
  • vl_create_saved_object - 新しい保存済みオブジェクトを作成
  • vl_update_saved_object - 単一の保存済みオブジェクトを更新
  • vl_bulk_update_saved_objects - 一括更新操作
  • vl_bulk_delete_saved_objects - 一括削除操作

サポート対象のオブジェクトタイプ: dashboard、visualization、index-pattern、search、config、lens、map、tag、canvas-workpad、canvas-element

分析ツール(v0.6.0+)
  • analyze_object_dependencies - 保存済みオブジェクトの依存関係を分析
  • analyze_deletion_impact - 削除前に影響を確認
  • check_dashboard_health - ダッシュボードの健全性を確認
  • scan_all_dashboards_health - ダッシュボードの健全性を一括スキャン
Elasticsearch データ検索

Elasticsearch でドキュメント、アプリケーションログ、トレース、または集計を検索する必要がある場合は、search_elasticsearch を使用してください。このツールは Dev Tools Console のプロキシではなく、Kibana の /internal/search/es ルートを通じて Query DSL を送信します。

このツールは読み取り専用で、データへのアクセス範囲を広げません。Elasticsearch は各検索で、設定されたユーザーのインデックス権限を適用します。これは Discover やダッシュボードの場合と同じです。ユーザーが読み取れないインデックスからは結果が返されません。

Dev Tools Console のプロキシ(/api/console/proxy)には別個の Kibana 権限が必要です。Console からは書き込みや管理者向けのエンドポイントを含め、あらゆる Elasticsearch API を呼び出せるためです。このツールが用意されているのはそのためです。対象インデックスを読み取れるものの Dev Tools 権限を持たないユーザーは、Console プロキシから 403 を受け取ります。このツールを使えば、そのユーザーは検索を行えますが、それ以上の操作はできません。Kibana 管理者がアカウントから Dev Tools 権限を取り上げることでアドホッククエリを禁止している場合、このツールを使うと Query DSL 検索が可能になることにご注意ください。

範囲を限定したログ検索に使うツール引数の例:

{
  "index": "application-logs-*",
  "body": {
    "size": 20,
    "_source": [
      "@timestamp",
      "message",
      "trace.id",
      "service.name"
    ],
    "sort": [
      { "@timestamp": "desc" }
    ],
    "query": {
      "bool": {
        "filter": [
          {
            "range": {
              "@timestamp": {
                "gte": "2025-01-15T10:00:00Z",
                "lt": "2025-01-15T11:00:00Z"
              }
            }
          },
          {
            "term": {
              "service.name.keyword": "example-service"
            }
          }
        ]
      }
    }
  }
}

大量のログを扱う場合は、短い時間範囲と小さい size から始めてください。トレース ID または相関 ID が見つかったら、広い時間範囲を繰り返しスキャンするのではなく、その値を使って絞り込んだ検索をもう一度行います。_source を使って、現在の調査に必要なフィールドだけを含めてください。

このツールは、*、**、_all などのワイルドカードのみのインデックスセグメント(カンマ区切りのインデックス式に含まれる場合も含む)、空の検索ボディ、および 100 を超える body.size を拒否します。文字列の size 値は数値に変換され、検証されます。このエンドポイントは Kibana の内部 API であるため、Kibana のメジャーアップグレード後には互換性を確認してください。


📖 リソース

リソース URI説明
kibana-api://paths利用可能なすべての API エンドポイントを一覧表示
kibana-api://paths?search=<keyword>キーワードでエンドポイントを検索
kibana-api://path/{method}/{encoded_path}特定のエンドポイントの詳細を取得

💬 クエリの例

基本操作
  • 「Kibana サーバーのステータスを教えてください」
  • 「利用可能な Kibana スペースをすべて一覧表示してください」
  • 「ダッシュボードに関連する API エンドポイントをすべて表示してください」
Elasticsearch とログ
  • 「過去 1 時間にサービス X で発生したエラーについて、本番環境のログを検索してください」
  • 「このトレース ID を検索し、前後のログイベントを時系列順に表示してください」
  • 「この Elasticsearch Query DSL を使って、インデックス application-logs-* を検索してください」
  • 「この期間のサービス別エラー件数を集計してください」
保存済みオブジェクト
  • 「すべてのダッシュボードを検索してください」
  • 「タイトルに『nginx』を含むビジュアライゼーションを検索してください」
  • 「『Sales Overview』という名前の新しいダッシュボードを作成してください」
  • 「ダッシュボード『my-dashboard-123』の説明を更新してください」
  • 「IDを指定して複数のダッシュボードを削除してください」
ヘルスチェックと分析
  • 「ダッシュボード『overview』のヘルス状態を確認してください」
  • 「ビジュアライゼーション『viz-123』の依存関係を分析してください」
  • 「すべてのダッシュボードをスキャンして、ヘルス上の問題を確認してください」

🐛 トラブルシューティング

接続の問題
  • Kibana の URL にアクセスできることを確認してください
  • 認証情報を確認してください
  • SSL の問題がある場合:NODE_TLS_REJECT_UNAUTHORIZED=0(注意して使用してください)
Claude Desktop の問題
  • 設定を変更した後、Claude Desktop を再起動してください
  • JSON 設定の構文を検証してください
  • エラーがないか、コンソールログを確認してください
よくあるエラー
  • 「import: command not found」:最新バージョンに更新してください
  • 認証失敗:認証情報と権限を確認してください
  • SSL エラー:CA 証明書を確認するか、SSL 検証を無効にしてください
  • Elasticsearch の検索中に /api/console/proxy から 403 が返される:search_elasticsearch を使用してください。対象のインデックスを読み取る権限があっても、Console プロキシの使用には Kibana Dev Tools 権限が必要な場合があります。

🔍 デバッグ

デバッグには MCP Inspector を使用してください。

npm run inspector

ブラウザーからアクセスできるデバッグインターフェースが表示されます。


📦 パッケージ情報


🤝 コントリビューション

このプロジェクトはコミュニティによってメンテナンスされています。コントリビューションやフィードバックを歓迎します。

すべてのコミュニケーションにおいて、Elastic コミュニティ行動規範に従ってください。


📄 ライセンス

Apache License 2.0。詳細については LICENSE ファイルを参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。