mcpField
K
kibana-mcp

kibana-mcp

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

kibana-mcp について

Claude などの MCP 対応エージェントから Kibana と Elasticsearch を照会する、読み取り専用の MCP サーバーです。設定時は Elasticsearch REST API を直接使い、未設定の場合は Kibana Console プロキシにフォールバックし、JSON と Markdown を返します。

主な機能

  1. 01時間や並び順を指定したログ検索
  2. 02フィールドや指標によるログ集計
  3. 03インデックスと詳細の確認
  4. 04ダッシュボードの一覧と取得
  5. 05API キー、Basic、匿名認証に対応
  6. 06JSON と Markdown で結果を返却

活用シーン

  1. 01インシデント中のエラー調査
  2. 02サービス別のログ件数や指標の比較
  3. 03関連イベントを含むインデックスの特定
  4. 04ダッシュボードのパネル確認

MCP 対応

MCP クライアント向けに、インデックス検索、ログ検索、集計、ダッシュボード閲覧の読み取り専用ツールを提供します。Elasticsearch リクエストには設定済みの直接接続先を使い、未設定時は Kibana Console プロキシにフォールバックします。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"mshegolev-kibana": {
"command": "uvx",
"args": [
"kibana-mcp"
],
"env": {
"KIBANA_URL": "<KIBANA_URL>",
"ELASTICSEARCH_URL": "<ELASTICSEARCH_URL>",
"KIBANA_API_KEY": "<KIBANA_API_KEY>",
"KIBANA_USERNAME": "<KIBANA_USERNAME>",
"KIBANA_PASSWORD": "<KIBANA_PASSWORD>",
"KIBANA_SSL_VERIFY": "<KIBANA_SSL_VERIFY>"
}
}
}
}
起動コマンドuvx kibana-mcp
設定が必要な環境変数
KIBANA_URLKibana base URL (e.g. https://kibana.example.com)
ELASTICSEARCH_URLDirect Elasticsearch URL. If unset, ES requests route through the Kibana Console proxy.
KIBANA_API_KEYシークレットElasticsearch API key (ApiKey base64(id:api_key) format). Takes priority over Basic auth.
KIBANA_USERNAMEHTTP Basic auth username. Used only when KIBANA_API_KEY is not set.
KIBANA_PASSWORDシークレットHTTP Basic auth password.
KIBANA_SSL_VERIFYVerify SSL certificates (true/false). Set to 'false' for self-signed certs.

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

パッケージ
pypikibana-mcp0.1.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

kibana-mcp

PyPI version Python 3.10+ License: MIT Tests

Kibana / Elasticsearch 用の MCP サーバーです。Claude や MCP 対応の任意のエージェントから、ログ検索、集計、インデックスの検出、ダッシュボードの閲覧ができます。

なぜ別の Kibana MCP が必要なのですか?

既存の統合では、ブラウザーレベルの認証情報を使って Kibana インスタンスを起動しておく必要があり、多くの場合、安定した REST API ではなく Kibana UI をラップしています。このサーバーには次の特長があります。

  • ログクエリには Elasticsearch REST API に直接アクセスします(高速で、Kibana UI の変更に左右されません)
  • Elasticsearch の URL が直接設定されていない場合は、Kibana Console プロキシにフォールバックします(追加のファイアウォールルールは不要です)
  • ApiKey 認証(エージェントに最適)に加えて、Basic 認証と匿名アクセスに対応しています
  • 構造化 JSON(outputSchema)と Markdown テキストの両方を返すため、あらゆる MCP クライアントで利用できます
  • 読み取り専用です。すべてのツールに readOnlyHint: true が設定されており、データは変更されません

ツール

ツールAPI説明
kibana_list_indicesGET ES/_cat/indicesヘルス、ドキュメント数、サイズとともに利用可能なインデックスを検出します
kibana_search_logsPOST ES/{index}/_search時間範囲、ソート、サイズを指定した全文ログ検索
kibana_aggregate_logsPOST ES/{index}/_search件数、平均、合計、最小値、最大値の指標による用語グループ化
kibana_list_dashboardsGET Kibana/api/saved_objects/_find検索とページネーションを使って保存済みダッシュボードを一覧表示します
kibana_get_dashboardGET Kibana/api/saved_objects/dashboard/{id}パネルの内訳とともに1つのダッシュボードを取得します

インストール

pip install kibana-mcp

または、uvx を使って直接実行します。

uvx kibana-mcp

設定

環境変数
変数必須説明
KIBANA_URLはいKibana のベース URL(例:https://kibana.example.com)
ELASTICSEARCH_URLいいえElasticsearch の直接接続先。未設定の場合、Elasticsearch へのリクエストは Kibana Console プロキシ経由で送信されます
KIBANA_API_KEYいいえElasticsearch の API キー(ApiKey base64(id:api_key) 形式)。エージェントでの使用を推奨します
KIBANA_USERNAMEいいえHTTP Basic 認証のユーザー名(API キーが未設定の場合に使用)
KIBANA_PASSWORDいいえHTTP Basic 認証のパスワード
KIBANA_SSL_VERIFYいいえtrue(デフォルト)または、自己署名証明書の場合は false

認証の優先順位:ApiKey > Basic > 匿名。

.env.example を .env にコピーし、値を入力してください。

MCP クライアントの設定(Claude Desktop / claude.app)
{
  "mcpServers": {
    "kibana": {
      "command": "uvx",
      "args": ["kibana-mcp"],
      "env": {
        "KIBANA_URL": "https://kibana.example.com",
        "KIBANA_API_KEY": "your-api-key-here"
      }
    }
  }
}

パフォーマンスを高めるために Elasticsearch に直接アクセスする場合:

{
  "mcpServers": {
    "kibana": {
      "command": "uvx",
      "args": ["kibana-mcp"],
      "env": {
        "KIBANA_URL": "https://kibana.example.com",
        "ELASTICSEARCH_URL": "https://es.example.com:9200",
        "KIBANA_API_KEY": "your-api-key-here"
      }
    }
  }
}
Docker
docker run --rm -i \
  -e KIBANA_URL=https://kibana.example.com \
  -e KIBANA_API_KEY=your-key \
  ghcr.io/mshegolev/kibana-mcp

使用例

ログ検索
Find the last 50 ERROR logs from the API service in the last hour

→ kibana_search_logs(index="logs-*", query="level:ERROR AND service:api", size=50, time_from="2026-04-18T09:00:00Z")

Show 500 HTTP errors sorted oldest first for incident replay

→ kibana_search_logs(index="nginx-*", query="status:500", sort_order="asc", size=100)

集計
How many logs per log level in the last hour?

→ kibana_aggregate_logs(index="logs-*", group_by="level", time_from="2026-04-18T09:00:00Z")

What is the average response time per service?

→ kibana_aggregate_logs(index="logs-*", group_by="service.keyword", metric="avg", metric_field="response_time_ms")

インデックスの検出
What log indices are available?

→ kibana_list_indices()

Show me all filebeat indices

→ kibana_list_indices(pattern="filebeat-*")

ダッシュボード
Find the infrastructure dashboard

→ kibana_list_dashboards(search="infrastructure")

What panels does dashboard X have?

→ kibana_get_dashboard(dashboard_id="<id from list_dashboards>")

パフォーマンス特性

  • ログ検索(kibana_search_logs):ES の URL に直接接続する場合は通常 50~500ms です。Kibana Console プロキシ経由の場合は、さらに 100~200ms かかります。
  • 集計(kibana_aggregate_logs):size:0 クエリではヒットを転送しないため、通常 10~100ms です。
  • インデックス一覧の取得:単一の _cat/indices 呼び出しで、レスポンスのサイズは O(index_count) です。通常 100ms 未満です。
  • ダッシュボード API:Kibana Saved Objects API を使用します。通常 50~200ms で、レイテンシーはネットワークではなく Kibana 側で発生します。
  • エージェントが頻繁にログ検索を行う場合は、ELASTICSEARCH_URL を直接設定してください。プロキシによるオーバーヘッドを解消できます。

開発

git clone https://github.com/mshegolev/kibana-mcp
cd kibana-mcp
pip install -e '.[dev]'
pytest tests/ -v
ruff check src tests
ruff format src tests

ライセンス

MIT — LICENSE を参照してください。

コメント

MCP は初めてですか?

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

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