Elasticsearch MCP Server について
Elasticsearch MCP Server は、Elasticsearch クラスターを操作する Python サーバーです。検索やインデックス確認のツールに加え、インデックスとマッピングの詳細をリソースとして提供します。
主な機能
- 01クラスターのインデックス一覧
- 02インデックスマッピングの確認
- 03クエリ DSL による検索
- 04クエリ文字列による検索
- 05インデックス統計の確認
活用シーン
- 01クエリ DSL でドキュメントを検索
- 02簡単なクエリ文字列で検索
- 03インデックスマッピングとフィールド型の確認
- 04インデックス容量とドキュメント数の確認
MCP 対応
MCP クライアントに Elasticsearch の検索・インデックス確認ツールと、インデックス一覧、詳細、マッピングのリソースを提供します。クラスター認証情報は環境変数で設定します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Elasticsearch MCP サーバー
このプロジェクトは、Elasticsearch クラスターと連携するためのツールとリソースを提供する、Elasticsearch 用の MCP(Model Context Protocol)サーバーを実装しています。
機能
ツール
list_indices:Elasticsearch クラスター内のすべてのインデックスを一覧表示しますget_mappings:特定のインデックスのマッピングを取得しますsearch:指定されたクエリ DSL で Elasticsearch 検索を実行しますsearch_with_query_string:シンプルなクエリ文字列で検索を実行しますget_index_stats:特定のインデックスの統計情報を取得します
リソース
elasticsearch://indices:すべての Elasticsearch インデックスを一覧表示しますelasticsearch://index/{index_name}:特定のインデックスの詳細情報を取得しますelasticsearch://mapping/{index_name}:特定のインデックスのマッピング情報を取得します
前提条件
- Python 3.7+
- Elasticsearch Python クライアント
- MCP SDK
- Elasticsearch クラスターの認証情報(Cloud ID と API Key)
セットアップ
-
リポジトリをクローンします:
git clone https://github.com/yourusername/elasticsearch-mcp-server.git cd elasticsearch-mcp-server -
必要な依存関係をインストールします:
pip install -r requirements.txt -
環境変数を設定します:
- サンプル環境ファイルをコピーします:
cp .env.example .env .envファイルを編集し、Elasticsearch の認証情報を追加します
または、シェルで直接設定します:
export ES_CLOUD_ID=your_elasticsearch_cloud_id export ES_API_KEY=your_elasticsearch_api_key - サンプル環境ファイルをコピーします:
Claude 用 MCP サーバーの設定
configure_mcp_server.py スクリプトは、Claude の MCP 設定ファイルで Elasticsearch MCP サーバーをセットアップするのに役立ちます。これにより、Claude は MCP サーバーを介して Elasticsearch クラスターに接続できるようになります。
python configure_mcp_server.py your_cloud_id your_api_key
このスクリプトは、次の処理を行います:
- Elasticsearch の Cloud ID と API Key をコマンドライン引数として受け取ります
- Claude の MCP 設定ファイルを検索するか、新規作成します
- Elasticsearch MCP サーバーの設定を追加または更新します
- サーバーが Elasticsearch クラスターに接続するために必要な環境変数を設定します
このスクリプトの実行後、変更を適用するために VS Code を再起動してください。その後、Claude は Elasticsearch MCP サーバーを使用して Elasticsearch クラスターと連携できるようになります。
MCP リソースのテスト
オプション 1:テストスクリプトを使用する
MCP サーバーを起動し、テスト方法を案内するテストスクリプトを用意しています:
# Make the script executable if needed
chmod +x test_es_mcp.sh
# Run the test script
ES_CLOUD_ID=your_cloud_id ES_API_KEY=your_api_key ./test_es_mcp.sh
このスクリプトは、次の処理を行います:
- MCP サーバーをバックグラウンドで起動します
- リソースのテスト方法を案内します
- Ctrl+C を押すまでサーバーを実行し続けます
オプション 2:手動でテストする
-
MCP サーバーを起動します:
ES_CLOUD_ID=your_cloud_id ES_API_KEY=your_api_key python es_mcp_server.py -
Claude で
access_mcp_resourceツールを使用してリソースにアクセスします:a. すべてのインデックスを一覧表示します:
<access_mcp_resource> <server_name>elasticsearch-mcp-server</server_name> <uri>elasticsearch://indices</uri> </access_mcp_resource>b. 特定のインデックスの情報を取得します:
<access_mcp_resource> <server_name>elasticsearch-mcp-server</server_name> <uri>elasticsearch://index/your_index_name</uri> </access_mcp_resource>c. 特定のインデックスのマッピングを取得します:
<access_mcp_resource> <server_name>elasticsearch-mcp-server</server_name> <uri>elasticsearch://mapping/your_index_name</uri> </access_mcp_resource>
オプション 3:Python テストスクリプトを使用する
リソースへのアクセス方法を示す Python テストスクリプトも用意しています:
ES_CLOUD_ID=your_cloud_id ES_API_KEY=your_api_key python test_es_resources.py
リソースの詳細
elasticsearch://indices
Elasticsearch クラスター内のすべてのインデックスを含む JSON 配列を返します。内容は次のとおりです:
- インデックス名
- ヘルスステータス
- ステータス
- ドキュメント数
- サイズ
elasticsearch://index/{index_name}
特定のインデックスの詳細情報を返します。内容は次のとおりです:
- インデックス名
- 設定
- 統計情報(ドキュメント数、バイトおよび MB 単位のサイズ)
elasticsearch://mapping/{index_name}
特定のインデックスのマッピング情報を返します。内容は次のとおりです:
- 完全なマッピング定義
- フィールド数
- フィールド型の内訳
エラー処理
すべてのリソースには、適切なエラー処理と検証が含まれています:
- インデックスが存在しない場合、リソースは適切なエラーメッセージを返します
- Elasticsearch への接続に問題がある場合、リソースはエラーメッセージを返します
- すべての例外を捕捉し、読みやすいエラーメッセージとして返します
貢献
貢献を歓迎します!以下の方法で貢献できます。
- リポジトリをフォークします
- 機能ブランチを作成します:
git checkout -b feature/your-feature-name - 変更をコミットします:
git commit -am 'Add some feature' - ブランチにプッシュします:
git push origin feature/your-feature-name - プルリクエストを送信します
ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細はLICENSEファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。