mcpField
E
Elasticsearch MCP Server

Elasticsearch MCP Server

ローカル
github.com/sajitsasiデータベース362 週間前に更新

Elasticsearch MCP Server について

Elasticsearch MCP Server は、Elasticsearch クラスターを操作する Python サーバーです。検索やインデックス確認のツールに加え、インデックスとマッピングの詳細をリソースとして提供します。

主な機能

  1. 01クラスターのインデックス一覧
  2. 02インデックスマッピングの確認
  3. 03クエリ DSL による検索
  4. 04クエリ文字列による検索
  5. 05インデックス統計の確認

活用シーン

  1. 01クエリ DSL でドキュメントを検索
  2. 02簡単なクエリ文字列で検索
  3. 03インデックスマッピングとフィールド型の確認
  4. 04インデックス容量とドキュメント数の確認

MCP 対応

MCP クライアントに Elasticsearch の検索・インデックス確認ツールと、インデックス一覧、詳細、マッピングのリソースを提供します。クラスター認証情報は環境変数で設定します。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

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

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

詳細

Elasticsearch MCP サーバー

このプロジェクトは、Elasticsearch クラスターと連携するためのツールとリソースを提供する、Elasticsearch 用の MCP(Model Context Protocol)サーバーを実装しています。

ライセンス:MIT

機能

ツール
  • 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)

セットアップ

  1. リポジトリをクローンします:

    git clone https://github.com/yourusername/elasticsearch-mcp-server.git
    cd elasticsearch-mcp-server
    
  2. 必要な依存関係をインストールします:

    pip install -r requirements.txt
    
  3. 環境変数を設定します:

    • サンプル環境ファイルをコピーします: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

このスクリプトは、次の処理を行います:

  1. Elasticsearch の Cloud ID と API Key をコマンドライン引数として受け取ります
  2. Claude の MCP 設定ファイルを検索するか、新規作成します
  3. Elasticsearch MCP サーバーの設定を追加または更新します
  4. サーバーが 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

このスクリプトは、次の処理を行います:

  1. MCP サーバーをバックグラウンドで起動します
  2. リソースのテスト方法を案内します
  3. Ctrl+C を押すまでサーバーを実行し続けます
オプション 2:手動でテストする
  1. MCP サーバーを起動します:

    ES_CLOUD_ID=your_cloud_id ES_API_KEY=your_api_key python es_mcp_server.py
    
  2. 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 への接続に問題がある場合、リソースはエラーメッセージを返します
  • すべての例外を捕捉し、読みやすいエラーメッセージとして返します

貢献

貢献を歓迎します!以下の方法で貢献できます。

  1. リポジトリをフォークします
  2. 機能ブランチを作成します:git checkout -b feature/your-feature-name
  3. 変更をコミットします:git commit -am 'Add some feature'
  4. ブランチにプッシュします:git push origin feature/your-feature-name
  5. プルリクエストを送信します

ライセンス

このプロジェクトはMITライセンスの下でライセンスされています。詳細はLICENSEファイルをご覧ください。

コメント

MCP は初めてですか?

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

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