🚀 Kibana MCP Server
このプロジェクトは、Elasticの公式Kibana APIドキュメントに基づいており、Elastic Stack 8.x (ES8) のOpenAPI YAML仕様を使用して、すべてのKibana APIエンドポイントを動的に取得および管理します。最新の詳細については、Kibana APIドキュメント を参照してください。
Kibana MCPサーバーの実装で、任意のMCP互換クライアント(例: Claude Desktop)が自然言語またはプログラムからのリクエストを通じて、あなたのKibanaインスタンスにアクセスできるようになります。
このプロジェクトはコミュニティによってメンテナンスされており、ElasticやMCPの公式製品ではありません。
🚀 クイックスタート
Kibana MCPサーバーは、MCP互換クライアントからKibana APIにアクセスできるようにするサーバーです。以下の手順でサーバーをセットアップして使用できます。
✨ 主な機能
- ローカルまたはリモートのKibanaインスタンスに接続する
- セキュアな認証(ユーザー名/パスワード)
- SSL/TLSとカスタムCA証明書のサポート
- Kibana APIエンドポイントをツールとリソースの両方として公開する
- MCPクライアントからKibana APIを検索、表示、実行する
- 型安全で拡張可能で、統合が容易
📦 インストール
依存関係のインストール
npm install
サーバーのビルド
npm run build
開発モードでの自動再ビルド
npm run watch
📚 ドキュメント
ディレクトリ構造
├── index.ts # サーバーのエントリポイント
├── src/
│ ├── types.ts # 型定義とスキーマ
│ ├── base-tools.ts # ツールの登録とAPIロジック
│ ├── prompts.ts # プロンプトの登録(エキスパート & リソースヘルパー)
│ └── resources.ts # リソースの登録(APIパス/URI)
├── kibana-openapi-source.yaml # Kibana APIのOpenAPIインデックス
├── README.md # 英語のドキュメント
├── README_zh.md # 中国語のドキュメント
リソース
| リソースURI |
説明 |
kibana-api://paths |
利用可能なすべてのKibana APIエンドポイントを返します(searchパラメータでフィルタリング可能) |
kibana-api://path/{method}/{encoded_path} |
特定のAPIエンドポイントの詳細を返します |
例:
kibana-api://paths?search=saved_objects
kibana-api://path/GET/%2Fapi%2Fstatus
ツール
| ツール名 |
説明 |
入力パラメータ |
get_status |
Kibanaサーバーの現在のステータスを取得する |
なし |
execute_api |
カスタムKibana APIリクエストを実行する |
method (GET/POST/PUT/DELETE), path (文字列), body (オプション), params (オプション) |
search_kibana_api_paths |
キーワードでKibana APIエンドポイントを検索する |
search (文字列) |
list_all_kibana_api_paths |
すべてのKibana APIエンドポイントをリストする |
なし |
get_kibana_api_detail |
特定のKibana APIエンドポイントの詳細を取得する |
method (文字列), path (文字列) |
プロンプト
| プロンプト名 |
説明 |
kibana-tool-expert |
ツールエキスパートモード(Claude Desktopで強く推奨)。ツールを介してKibana APIのインテリジェントな分析、検索、実行、および説明をサポートします。ほとんどのユーザーにおすすめです。 |
kibana-resource-helper |
リソースヘルパーモード。リソースURIを介してKibana API情報にアクセスし、使用する方法を案内します。リソースアクセスのみをサポートするクライアント、または生のAPIメタデータが必要なプログラミングシナリオに適しています。 |
設定
サーバーは環境変数を介して設定します。
| 変数名 |
説明 |
必須 |
KIBANA_URL |
Kibanaサーバーのアドレス(例: http://localhost:5601) |
はい |
KIBANA_USERNAME |
Kibanaのユーザー名 |
はい |
KIBANA_PASSWORD |
Kibanaのパスワード |
はい |
KIBANA_CA_CERT |
CA証明書のパス(オプション、SSL検証用) |
いいえ |
KIBANA_TIMEOUT |
リクエストのタイムアウト時間(ミリ秒、デフォルト30000) |
いいえ |
KIBANA_MAX_RETRIES |
最大リクエスト再試行回数(デフォルト3) |
いいえ |
NODE_TLS_REJECT_UNAUTHORIZED |
0に設定すると、SSL証明書の検証を無効にします(注意して使用) |
いいえ |
💻 使用例
サーバーの起動
KIBANA_URL=http://your-kibana-server:5601 \
KIBANA_USERNAME=your-username \
KIBANA_PASSWORD=your-password \
NODE_TLS_REJECT_UNAUTHORIZED=0 \
npm start
例: MCPクライアントの設定
Claude Desktopの設定ファイル(MacOSのパス: ~/Library/Application Support/Claude/claude_desktop_config.json)に追加します。
{
"mcpServers": {
"kibana-mcp-server": {
"command": "node",
"args": ["/path/to/mcp-server-kibana/dist/index.js"],
"env": {
"KIBANA_URL": "http://your-kibana-server:5601",
"KIBANA_USERNAME": "your-username",
"KIBANA_PASSWORD": "your-password",
"NODE_TLS_REJECT_UNAUTHORIZED": "0"
}
}
}
}
例: クエリ
- "What is the status of my Kibana server?"
- "List all available Kibana API endpoints."
- "Show details for the POST /api/saved_objects/_find endpoint."
- "Execute a custom API request for /api/status."
- "Get a list of all dashboards in Kibana."
- "Query API endpoints related to endpoint events."
- "List all case-related API endpoints."
- "Create a new case in Kibana."
- "Create a new dashboard in Kibana."
Claude Desktopでの2つのプロンプトモード
このサーバーをClaude Desktopとともに使用する場合、2つの異なるプロンプトインタラクションモードがサポートされています。
1. ツールベースのプロンプトモード
- 動作原理: Claude Desktopは、サーバーのツール(
get_status、execute_api、search_kibana_api_pathsなど)を直接呼び出して、質問に答えたり、アクションを実行したりできます。
- 最適なユーザー: 会話形式でガイド付きの体験を望むユーザー。サーバーは自動的にKibana APIを検索、実行、説明します。
- 例: "Show all Kibana API endpoints related to saved objects."
- テストのヒント: Claude Desktopで
kibana-tool-expertプロンプトを選択して統合テストを行い、その後使用を開始します。
2. リソースベースのプロンプトモード
- 動作原理: Claude Desktopは、リソースURI(
kibana-api://pathsやkibana-api://path/GET/%2Fapi%2Fstatusなど)を介してサーバーとやり取りし、サーバーはClaudeが解析するための構造化データを返します。
- 最適なユーザー: 上級ユーザー、リソースアクセスのみをサポートするMCPクライアント、または生のAPIメタデータが必要なプログラミングシナリオ。
- 例: "Get resource kibana-api://paths?search=dashboard"
注意: resourcesの2つのエンドポイント(kibana-api://pathsとkibana-api://path/{method}/{encoded_path})には、対応する基本ツール(list_all_kibana_api_paths、get_kibana_api_detail)があります。この設計により、複数のリソースをインテリジェントに選択できないMCPクライアントとの互換性が確保され、Claude DesktopなどのツールがKibanaとやり取りしやすくなります。
ヒント: ほとんどのユーザーは、より自然で強力な体験を得るためにツールモードを使用することをおすすめします。リソースモードは、上級者や互換性のためのユースケースで最大限の柔軟性を提供します。
🔧 技術詳細
MCPサーバーはstdioを介して通信するため、デバッグが不便な場合があります。MCP Inspectorを使用することをおすすめします。
npm run inspector
起動後、Inspectorはブラウザでアクセス可能なデバッグツールのURLを提供します。
📄 ライセンス
このプロジェクトはApache License 2.0の下でライセンスされています。詳細については、LICENSEファイルを参照してください。
トラブルシューティング
- MCPの設定が正しいか確認する
- Kibanaのアドレスにアクセス可能か確認する
- 認証資格情報に十分な権限があることを確認する
- カスタムCAを使用する場合は、証明書のパスが正しく、読み取り可能であることを確認する
NODE_TLS_REJECT_UNAUTHORIZED=0を使用する場合は、セキュリティリスクに注意する
- ターミナルに出力されるエラーメッセージを確認する