Elasticsearch MCP Server

Official

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Provides access to Elasticsearch indices, allowing users to list indices, inspect field mappings, and execute search queries using full Query DSL capabilities with automatic highlighting.

Elasticsearch MCP サーバー

モデル コンテキスト プロトコル (MCP) を使用して、任意の MCP クライアント (Claude Desktop など) から Elasticsearch データに直接接続します。

このサーバーは、モデルコンテキストプロトコルを使用してエージェントをElasticsearchデータに接続します。これにより、自然言語による会話を通じてElasticsearchインデックスと対話できるようになります。

利用可能なツール

  • list_indices : 利用可能なすべてのElasticsearchインデックスを一覧表示する
  • get_mappings : 特定のElasticsearchインデックスのフィールドマッピングを取得する
  • search : 提供されたクエリDSLを使用してElasticsearch検索を実行する
  • get_shards : すべてまたは特定のインデックスのシャード情報を取得する

前提条件

  • Elasticsearchインスタンス
  • Elasticsearch 認証資格情報 (API キーまたはユーザー名/パスワード)
  • MCP クライアント (例: Claude Desktop)

デモ

https://github.com/user-attachments/assets/5dd292e1-a728-4ca7-8f01-1380d1bebe0c

インストールとセットアップ

公開されたNPMパッケージの使用

[!TIP] Elasticsearch MCP Server を使用する最も簡単な方法は、公開されている npm パッケージを使用することです。

  1. MCPクライアントの設定
    • MCPクライアントを開きます。MCPクライアントのリストを確認し、ここでClaude Desktopを設定します。
    • 設定 > 開発者 > MCP サーバーに移動します
    • Edit Configをクリックし、次の設定で新しい MCP サーバーを追加します。
    { "mcpServers": { "elasticsearch-mcp-server": { "command": "npx", "args": [ "-y", "@elastic/mcp-server-elasticsearch" ], "env": { "ES_URL": "your-elasticsearch-url", "ES_API_KEY": "your-api-key" } } } }
  2. 会話を始める
    • MCPクライアントで新しい会話を開きます
    • MCPサーバーは自動的に接続されます
    • Elasticsearchデータについて質問できるようになりました

設定オプション

Elasticsearch MCP サーバーは、Elasticsearch に接続するための構成オプションをサポートしています。

[!NOTE] 認証には、API キーまたはユーザー名とパスワードの両方を指定する必要があります。

環境変数説明必須
ES_URLElasticsearchインスタンスのURLはい
ES_API_KEY認証用のElasticsearch APIキーいいえ
ES_USERNAME基本認証用のElasticsearchユーザー名いいえ
ES_PASSWORD基本認証用のElasticsearchパスワードいいえ
ES_CA_CERTElasticsearch SSL/TLS のカスタム CA 証明書へのパスいいえ

地域開発

[!NOTE] MCP サーバーを変更または拡張する場合は、次のローカル開発手順に従ってください。

  1. 正しいNode.jsバージョンを使用する
    nvm use
  2. 依存関係をインストールする
    npm install
  3. プロジェクトを構築する
    npm run build
  4. Claudeデスクトップアプリでローカルに実行
    • Claudeデスクトップアプリを開く
    • 設定 > 開発者 > MCP サーバーに移動します
    • Edit Configをクリックし、次の設定で新しい MCP サーバーを追加します。
    { "mcpServers": { "elasticsearch-mcp-server-local": { "command": "node", "args": [ "/path/to/your/project/dist/index.js" ], "env": { "ES_URL": "your-elasticsearch-url", "ES_API_KEY": "your-api-key" } } } }
  5. MCP Inspectorによるデバッグ
    ES_URL=your-elasticsearch-url ES_API_KEY=your-api-key npm run inspector
    MCP Inspectorが起動し、リクエストのデバッグと分析が可能になります。以下の画面が表示されます。
    Starting MCP inspector... Proxy server listening on port 3000 🔍 MCP Inspector is up and running at http://localhost:5173 🚀

貢献

コミュニティからの貢献を歓迎します。貢献方法の詳細については、貢献ガイドラインをご覧ください。

例題

[!TIP] MCP クライアントで試すことができる自然言語クエリをいくつか示します。

  • 「Elasticsearch クラスターにはどのようなインデックスがありますか?」
  • 「「製品」インデックスのフィールド マッピングを表示します。」
  • 「先月の 500 ドルを超えるすべての注文を検索します。」
  • 「5 つ星のレビューを最も多く獲得した製品はどれですか?」

仕組み

  1. MCP クライアントはリクエストを分析し、必要な Elasticsearch 操作を決定します。
  2. MCP サーバーはこれらの操作 (インデックスの一覧表示、マッピングの取得、検索の実行) を実行します。
  3. MCP クライアントは結果を処理し、ユーザーフレンドリーな形式で表示します。

セキュリティのベストプラクティス

[!WARNING] クラスター管理者権限の使用は避けてください。スコープを制限した専用のAPIキーを作成し、インデックスレベルできめ細かなアクセス制御を適用して、不正なデータアクセスを防止してください。

データへのアクセスを制御するために、最小限の権限を持つ専用の Elasticsearch API キーを作成できます。

POST /_security/api_key { "name": "es-mcp-server-access", "role_descriptors": { "mcp_server_role": { "cluster": [ "monitor" ], "indices": [ { "names": [ "index-1", "index-2", "index-pattern-*" ], "privileges": [ "read", "view_index_metadata" ] } ] } } }

ライセンス

このプロジェクトは、Apache License 2.0 に基づいてライセンスされています。

トラブルシューティング

  • MCP 構成が正しいことを確認してください。
  • Elasticsearch URL がマシンからアクセスできることを確認します。
  • 認証資格情報 (API キーまたはユーザー名/パスワード) に必要な権限があることを確認します。
  • カスタム CA で SSL/TLS を使用する場合は、証明書パスが正しいことと、ファイルが読み取り可能であることを確認します。
  • エラー メッセージのターミナル出力を確認します。

問題が発生した場合は、お気軽に GitHub リポジトリで問題を報告してください。

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Claude およびその他の MCP クライアントを Elasticsearch データに接続し、ユーザーが自然言語の会話を通じて Elasticsearch インデックスを操作できるようにします。

  1. Available Tools
    1. Prerequisites
      1. Demo
        1. Installation & Setup
          1. Using the Published NPM Package
          2. Configuration Options
          3. Developing Locally
        2. Contributing
          1. Example Questions
            1. How It Works
              1. Security Best Practices
                1. License
                  1. Troubleshooting
                    ID: jv4tgnn4d2