Elasticsearch MCP Server について
Elasticsearch MCP Server は、Elasticsearch クラスターに接続する MCP サーバーで、MCP クライアントから自然言語でインデックスのデータを照会・管理できます。クラスターの状態、インデックス、マッピング、検索、テンプレートを扱い、AI クライアントから Elasticsearch を利用したい場合に適しています。
主な機能
- 01クラスターの状態確認
- 02インデックスの一覧表示、作成、リインデックス
- 03フィールドマッピングの取得と作成
- 04クエリ DSL による検索の実行
- 05インデックスへのバルク書き込み
- 06インデックステンプレートの管理
活用シーン
- 01自然言語による Elasticsearch データの照会
- 02クラスターとインデックスの状態確認
- 03インデックステンプレートの作成やフィールドマッピングの更新
MCP 対応
本プロジェクトは MCP サーバーであり、elasticsearch_health、search、bulk、create_index などのツールを MCP クライアントに提供して Elasticsearch クラスターを操作します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
11掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| pattern | string | いいえ | インデックス名で絞り込むための任意の正規表現パターン |
詳細
Elasticsearch MCP Server
Claude Desktop、Cursor などの任意の MCP クライアントから Elasticsearch クラスターに直接接続するための MCP サーバーです。
このサーバーは、Model Context Protocol を使用してエージェントを Elasticsearch のデータに接続します。自然言語での会話を通じて、Elasticsearch のインデックスを操作できます。
デモ
機能の概要
利用可能な機能
クラスター管理
elasticsearch_health:Elasticsearch クラスターのヘルスステータスを取得します。必要に応じてインデックスレベルの詳細も含められます。
インデックス操作
list_indices:利用可能な Elasticsearch インデックスを一覧表示します。正規表現に対応しています。create_index:必要に応じて設定とマッピングを指定して、Elasticsearch インデックスを作成します。reindex:必要に応じてクエリとスクリプトを指定して、ソースインデックスからターゲットインデックスにデータを再インデックスします。
マッピング管理
get_mappings:指定した Elasticsearch インデックスのフィールドマッピングを取得します。create_mapping:Elasticsearch インデックスのマッピング構造を作成または更新します。
検索とデータ操作
search:指定したクエリ DSL で Elasticsearch の検索を実行します。bulk:Elasticsearch インデックスにデータを一括登録します。
テンプレート管理
create_index_template:インデックステンプレートを作成または更新します。get_index_template:インデックステンプレートの情報を取得します。delete_index_template:インデックステンプレートを削除します。
仕組み
- MCP クライアントがリクエストを分析し、必要な Elasticsearch 操作を判断します。
- MCP サーバーがこれらの操作(インデックスの一覧表示、マッピングの取得、検索の実行など)を行います。
- MCP クライアントが結果を処理し、わかりやすい形式で表示します。
はじめに
前提条件
- Elasticsearch インスタンス
- Elasticsearch の認証情報(API キーまたはユーザー名とパスワード)
- MCP クライアント(例:Claude Desktop、Cursor)
インストールとセットアップ
公開済みの NPM パッケージを使用する
ヒント
Elasticsearch MCP Server を使用する最も簡単な方法は、公開済みの npm パッケージを利用することです。
-
MCP クライアントを設定する
- MCP クライアントを開きます。MCP クライアントの一覧を参照してください。ここでは Claude Desktop を設定します。
- Settings > Developer > MCP Servers に移動します。
Edit Configをクリックし、以下の設定で新しい MCP サーバーを追加します。
{ "mcpServers": { "elasticsearch-mcp": { "command": "npx", "args": [ "-y", "@awesome-ai/elasticsearch-mcp" ], "env": { "ES_HOST": "your-elasticsearch-host", "ES_API_KEY": "your-api-key" } } } } -
会話を開始する
- MCP クライアントで新しい会話を開きます。
- MCP サーバーが自動的に接続されます。
- Elasticsearch のデータについて質問できるようになります。
設定オプション
Elasticsearch MCP Server は、Elasticsearch への接続に使用する設定オプションに対応しています。
メモ
認証には API キーを指定するか、ユーザー名とパスワードの両方を指定する必要があります。
| 環境変数 | 説明 | 必須 |
|---|---|---|
ES_HOST | Elasticsearch インスタンスの URL。単一の URL またはカンマ区切りの複数 URL に対応しています(従来の HOST にも対応)。 | はい |
ES_API_KEY | 認証用の Elasticsearch API キー(従来の API_KEY にも対応)。 | いいえ |
ES_USERNAME | 基本認証用の Elasticsearch ユーザー名(従来の USERNAME にも対応)。 | いいえ |
ES_PASSWORD | 基本認証用の Elasticsearch パスワード(従来の PASSWORD にも対応)。 | いいえ |
ES_CA_CERT | Elasticsearch の SSL/TLS 用カスタム CA 証明書のパス(従来の CA_CERT にも対応)。 | いいえ |
複数 URL の設定
高可用性と負荷分散のため、複数の Elasticsearch ノードを設定できます。
{
"mcpServers": {
"elasticsearch-mcp": {
"command": "npx",
"args": [
"-y",
"@awesome-ai/elasticsearch-mcp"
],
"env": {
"ES_HOST": "https://es-node1:9200,https://es-node2:9200,https://es-node3:9200",
"ES_API_KEY": "your-api-key"
}
}
}
}
クライアントは、設定されたノード間のフェイルオーバーと負荷分散を自動的に処理します。
ローカル開発
メモ
MCP サーバーを変更または拡張する場合は、以下のローカル開発手順に従ってください。
-
適切な Node.js バージョンを使用する
nvm use -
依存関係をインストールする
npm install -
プロジェクトをビルドする
npm run build -
Claude Desktop App でローカル実行する
- Claude Desktop App を開きます
- Settings > Developer > MCP Servers に移動します
Edit Configをクリックし、以下の設定で新しい MCP サーバーを追加します:
{ "mcpServers": { "elasticsearch-mcp": { "command": "node", "args": [ "/path/to/your/project/dist/index.js" ], "env": { "ES_HOST": "your-elasticsearch-host", "ES_API_KEY": "your-api-key" } } } } -
Cursor Editor でローカル実行する
- Cursor Editor を開きます
- Cursor Settings > MCP に移動します
Add new global MCP Serverをクリックし、以下の設定で新しい MCP サーバーを追加します:
{ "mcpServers": { "elasticsearch-mcp": { "command": "node", "args": [ "/path/to/your/project/dist/index.js" ], "env": { "ES_HOST": "your-elasticsearch-host", "ES_API_KEY": "your-api-key" } } } } -
MCP Inspector でデバッグする
ES_HOST=your-elasticsearch-url ES_API_KEY=your-api-key npm run inspectorこれにより MCP Inspector が起動し、リクエストをデバッグして分析できます。次のように表示されます:
Starting MCP inspector... ⚙️ Proxy server listening on port 6277 🔍 MCP Inspector is up and running at http://127.0.0.1:6274 🚀
クエリの例
ヒント
MCP クライアントで試せる自然言語のクエリをいくつか紹介します。
クラスター管理
- 「Elasticsearch クラスターのヘルスステータスはどうなっていますか?」
- 「クラスターにはアクティブなノードがいくつありますか?」
インデックス操作
- 「Elasticsearch クラスターにはどのインデックスがありますか?」
- 「シャード数 3、レプリカ数 1 で、
usersという新しいインデックスを作成してください。」 - 「
old_indexからnew_indexにデータを再インデックスしてください。」
マッピング管理
- 「
productsインデックスのフィールドマッピングを表示してください。」 - 「
productsインデックスに、tagsというキーワード型のフィールドを追加してください。」
検索とデータ操作
- 「先月の 500 ドルを超える注文をすべて検索してください。」
- 「最も多くの 5 つ星レビューを受けた商品はどれですか?」
- 「これらの顧客レコードを
customersインデックスに一括インポートしてください。」
テンプレート管理
- 「パターン
logs-*を使って、ログ用のインデックステンプレートを作成してください。」 - 「すべてのインデックステンプレートを表示してください。」
- 「
outdated_templateインデックステンプレートを削除してください。」
問題が発生した場合は、GitHub リポジトリでお気軽に issue を作成してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
