OpenSearch MCP <> LLM Integration Guide について
このガイドでは、MCPサーバーを介してOpenSearchをAmazon QとAnthropic Claude Desktopに接続する手順を説明します。ローカル環境の構築、クライアント設定、自然言語によるインデックスやドキュメントの操作を扱います。
主な機能
- 01DockerによるローカルOpenSearchの構築
- 02pipxを使ったMCPサーバーの導入
- 03Amazon QとClaude Desktopの設定
- 04インデックスとドキュメントの操作
- 05クラスターの健全性と統計情報
- 06汎用OpenSearch APIリクエスト
活用シーン
- 01ローカルOpenSearch環境の構築
- 02Amazon QとOpenSearchの接続
- 03自然言語によるインデックス管理
- 04Claude Desktopでの文書検索と編集
MCP 対応
Amazon QとClaude Desktop向けにOpenSearch MCPサーバーを設定する手順を示します。インデックス、ドキュメント、エイリアス、クラスター、汎用APIの操作をMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
OpenSearch MCP <> LLM 統合ガイド
このガイドでは、自然言語でやり取りできるよう、MCP サーバーを使用して Amazon Q と Anthropic Claude デスクトップを OpenSearch に統合する手順を説明します。
Anthropic Claude

Amazon Q

前提条件
- Docker と Docker Compose がインストールされていること
- Python 3.x がインストールされていること
- pipx がインストールされていること(
pip install pipx) - Amazon Q CLI
- Anthropic Claude Desktop
1. ローカルの OpenSearch インスタンスのセットアップ
-
プロジェクト用の新しいディレクトリを作成します。
mkdir opensearch-mcp && cd opensearch-mcp -
次の内容で
docker-compose.ymlファイルを作成します。version: '3' services: opensearch: image: opensearchproject/opensearch:latest environment: - discovery.type=single-node - bootstrap.memory_lock=true - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" - "OPENSEARCH_INITIAL_ADMIN_PASSWORD=myStrongPassword123!" - "plugins.security.ssl.http.enabled=true" - "plugins.security.ssl.transport.enabled=true" - "plugins.security.ssl.http.pemcert_filepath=certs/node.pem" - "plugins.security.ssl.http.pemkey_filepath=certs/node-key.pem" - "plugins.security.ssl.http.pemtrustedcas_filepath=certs/root-ca.pem" - "plugins.security.ssl.transport.pemcert_filepath=certs/node.pem" - "plugins.security.ssl.transport.pemkey_filepath=certs/node-key.pem" - "plugins.security.ssl.transport.pemtrustedcas_filepath=certs/root-ca.pem" ulimits: memlock: soft: -1 hard: -1 nofile: soft: 65536 hard: 65536 volumes: - opensearch-data:/usr/share/opensearch/data - ./certs:/usr/share/opensearch/config/certs ports: - 9200:9200 - 9600:9600 networks: - opensearch-net opensearch-dashboards: image: opensearchproject/opensearch-dashboards:latest environment: - 'OPENSEARCH_HOSTS=["https://opensearch:9200"]' - "OPENSEARCH_SSL_VERIFICATIONMODE=none" - "OPENSEARCH_SECURITY_ADMIN_PASSWORD=myStrongPassword123!" - "SERVER_SSL_ENABLED=true" - "SERVER_SSL_CERTIFICATE=/usr/share/opensearch-dashboards/config/certs/node.pem" - "SERVER_SSL_KEY=/usr/share/opensearch-dashboards/config/certs/node-key.pem" ports: - 5601:5601 volumes: - ./certs:/usr/share/opensearch-dashboards/config/certs depends_on: - opensearch networks: - opensearch-net volumes: opensearch-data: networks: opensearch-net: -
コンテナを起動します。
docker compose up -d
2. OpenSearch MCP サーバーのインストール
- pipx を使用して OpenSearch MCP サーバーをインストールします。
pipx install opensearch-mcp-server
3. MCP サーバーの設定を使用した LLM の構成
-
Amazon Q:Amazon Q の設定ディレクトリ(~/.aws/amazonq/mcp.json)にmcp.jsonファイルを作成します。 -
Anthropic Claude:Claude Desktop の設定ディレクトリ(~/Library/Application Support/Claude/claude_desktop_config.json)にclaude_desktop_config.jsonファイルを作成します。{ "mcpServers": { "opensearch-mcp-server": { "command": "/Users/YOUR_USERNAME/.local/bin/opensearch-mcp-server", "args": [], "env": { "OPENSEARCH_URL": "https://localhost:9200", "OPENSEARCH_SSL_VERIFY": "none", "OPENSEARCH_USERNAME": "admin", "OPENSEARCH_PASSWORD": "myStrongPassword123!" } } } }YOUR_USERNAMEをシステムのユーザー名に置き換えるか、opensearch-mcp-server がインストールされている場所を指定します。
4. セットアップの確認
-
OpenSearch が実行中であることを確認します。
curl -XGET -u admin:myStrongPassword123! https://localhost:9200 -
OpenSearch Dashboards を確認します。
- ブラウザーで https://localhost:5601 を開きます。
-
インデックスを確認します。
curl -XGET -u admin:myStrongPassword123! https://localhost:9200/_cat/indices
5. OpenSearch で自然言語を使用する
LLM で試せるコマンドの例を以下に示します。
-
インデックスを作成します。
Create a new index called "books" with title and author fields -
ドキュメントを追加します。
Add a document to the books index with title "The Great Gatsby" and author "F. Scott Fitzgerald" -
ドキュメントを検索します。
Search for books by F. Scott Fitzgerald -
インデックス情報を取得します。
Show me the mapping of the books index
トラブルシューティング
-
MCP サーバーの初期化に失敗する場合:
- OpenSearch が実行中か確認します(
docker ps)。 mcp_config.jsonの認証情報を確認します。- OpenSearch のログを確認します(
docker compose logs opensearch)。
- OpenSearch が実行中か確認します(
-
ツールを利用できない場合:
- LLM を再起動します。
- MCP サーバーのログを確認します。
mcp_config.jsonの構文を確認します。
利用可能な MCP ツール
OpenSearch MCP サーバーには、OpenSearch とやり取りするための複数のツールが用意されています。
list_indices:すべてのインデックスを一覧表示します。get_index:1 つ以上のインデックスに関する情報(マッピング、設定、エイリアス)を返します。引数:index:インデックス名create_index:新しいインデックスを作成します。引数:index:インデックス名 body:マッピングと設定を含む任意のインデックス構成delete_index:インデックスを削除します。引数:index:インデックス名search_documents:ドキュメントを検索します。引数:index:インデックス名 body:検索クエリindex_document:インデックス内のドキュメントを作成または更新します。引数:index:インデックス名 document:ドキュメントデータ id:任意のドキュメント IDget_document:ID を指定してドキュメントを取得します。引数:index:インデックス名 id:ドキュメント IDdelete_document:ID を指定してドキュメントを削除します。引数:index:インデックス名 id:ドキュメント IDdelete_by_query:指定したクエリに一致するドキュメントを削除します。引数:index:インデックス名 body:削除対象のドキュメントに一致させるクエリget_cluster_health:クラスターの健全性に関する基本情報を返します。get_cluster_stats:クラスター統計の概要を返します。list_aliases:すべてのエイリアスを一覧表示します。get_alias:特定のインデックスのエイリアス情報を取得します。引数:index:インデックス名put_alias:特定のインデックスのエイリアスを作成または更新します。引数:index:インデックス名 name:エイリアス名 body:エイリアス構成delete_alias:特定のインデックスのエイリアスを削除します。引数:index:インデックス名 name:エイリアス名general_api_request:一般的な HTTP API リクエストを実行します。専用のツールがない Elasticsearch/OpenSearch API には、このツールを使用してください。引数:method:HTTP メソッド(GET、POST、PUT、DELETE など) path:API エンドポイントのパス params:クエリパラメーター body:リクエスト本文
セキュリティに関する注意事項
- 本番環境では、必ず強力なパスワードを使用してください
- 本番環境では SSL を有効にしてください
- 認証情報は定期的にローテーションしてください
その他のリソース
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。