翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
OpenSearch MCP サーバー
OpenSearch MCP サーバーopensearch-mcp-server-py) は、OpenSearch の Model Context Protocol
サーバーは、マネージド OpenSearch Service ドメインと OpenSearch Serverless コレクションの両方で動作します。コーディング IDEs (Kiro、Claude Code、Cursor)、デスクトップ AI アシスタント (Claude Desktop)、エージェントフレームワーク (Strands Agents、LangGraph) に接続できます。
前提条件
-
Python 3.10 以降。
-
uv(推奨) または pip。 -
到達可能な OpenSearch エンドポイント: OpenSearch Service ドメイン、OpenSearch Serverless コレクション、またはセルフマネージド OpenSearch クラスター。
-
公開する OpenSearch APIs を呼び出すアクセス許可を持つ認証情報。OpenSearch Service ドメインの IAM ポリシーについては、「」を参照してくださいアイデンティティベースのポリシー。OpenSearch Serverless データアクセスポリシーについては、「」を参照してくださいAmazon OpenSearch Serverless のデータアクセスコントロール。
インストール
でサーバーを実行するuvxか (インストール不要)、ローカルにインストールします。
# Run directly with uvx (recommended – no install step) uvx opensearch-mcp-server-py # Or install with pip pip install opensearch-mcp-server-py
ほとんどのユーザーは、サーバーを自動的に起動するように IDE または AI アシスタントを設定します。例エージェントフレームワークで を使用するについては、コーディング IDE で を設定する「」と「」を参照してください
認証
環境変数 (単一クラスターモード) または YAML 設定ファイル (マルチクラスターモード) のクラスターごとに認証を設定します。サーバーは認証方法を、認証なし、ヘッダーベース、IAM ロール、基本認証、 AWS アクセスキーの優先順位で適用します。
- IAM ロール (SigV4) – OpenSearch Service ドメインに推奨
-
export OPENSEARCH_URL="https://your-domain-endpoint" export AWS_IAM_ARN="arn:aws:iam::123456789012:role/YourOpenSearchRole" export AWS_REGION="us-east-1"ロールには、サーバーが使用する OpenSearch APIs を呼び出すアクセス許可が必要です。サンプルポリシー追加のサンプルポリシーについては、「」を参照してください。
- AWS 認証情報またはプロファイル
-
export OPENSEARCH_URL="https://your-domain-endpoint" export AWS_REGION="us-east-1" export AWS_PROFILE="your-aws-profile" - OpenSearch Serverless コレクション
-
サーバーが ではなく
aossサービス名でリクエストに署名AWS_OPENSEARCH_SERVERLESS=trueするように を設定しますes。プリンシパルに、コレクションのデータアクセスポリシーを通じてアクセス権が付与されていることを確認します (「」を参照Amazon OpenSearch Serverless のデータアクセスコントロール)。export OPENSEARCH_URL="https://collection-id.us-east-1.aoss.amazonaws.com" export AWS_OPENSEARCH_SERVERLESS="true" export AWS_REGION="us-east-1" export AWS_PROFILE="your-aws-profile" - 基本認証
-
export OPENSEARCH_URL="https://your-domain-endpoint" export OPENSEARCH_USERNAME="username" export OPENSEARCH_PASSWORD="password"重要
ソース管理にチェックインできる設定ファイルにパスワードを埋め込まないでください。オペレーティングシステムのシークレットマネージャーまたはシェル環境を使用して、認証情報を提供します。
セキュリティに関する考慮事項
MCP サーバーは、指定した認証情報で実行されます。これらの認証情報が許可されていると、AI アシスタントがユーザーに代わってトリガーする可能性があります。以下のプラクティスに従います。
-
最小特権の認証情報を使用します。エージェントが必要とするインデックスとアクションをスコープとする専用の IAM ロールまたは OpenSearch ユーザーを作成します。管理者認証情報の再利用は避けてください。
-
開発と本番を分離します。探索する非本番稼働用クラスターにサーバーを向けます。本番稼働用アクセスが必要な場合は、明示的なクラスター名でマルチモードを使用します。
-
フィルターツール。ワークフローで不要なツールカテゴリを無効にします。デフォルト設定を無効にする
OPENSEARCH_DISABLED_CATEGORIES=core_toolsように を設定するか、OPENSEARCH_ENABLED_CATEGORIESを使用して特定のカテゴリのみを有効にします。 -
認証情報を保護します。静的アクセスキーよりもプロファイルと IAM ロールを優先 AWS します。ソースコントロールの設定ファイルにシークレットをコミットしないでください。
-
ツールの出力を確認します。MCP ツールのレスポンスは、コンテキストとして言語モデルにフィードバックされます。AI プロバイダーに公開したくない機密データを含むインデックスに対してサーバーを実行しないでください。
トラブルシューティング
- アシスタントに OpenSearch ツールが表示されない
-
設定ファイルが有効な JSON であることを確認し、クライアントを完全に再起動します。ほとんどのクライアントは、起動時にのみ MCP サーバーをロードします。
- ツール呼び出しは 403 Forbidden を返します
-
認証情報に、ツールが呼び出す API に対するアクセス許可がありません。OpenSearch Service ドメインの場合は、ロールにアタッチされているドメインアクセスポリシーと IAM ポリシーを確認します。OpenSearch Serverless の場合は、コレクションのデータアクセスポリシーを確認します。
- OpenSearch Serverless の署名不一致エラー
-
AWS_OPENSEARCH_SERVERLESS=trueが設定されていることを確認します (またはマルチモードis_serverless: true)。これがないと、サーバーは ではなくesサービス名で署名しますaoss。 - 必要なツールが利用できない
-
デフォルト以外のカテゴリにあるかどうかを確認し、YAML 設定
enabled_categoriesでOPENSEARCH_ENABLED_CATEGORIESまたは で有効にします。
詳細については、opensearch-mcp-server-py リポジトリ
その他のリソース
-
GitHub の opensearch-mcp-server-py
– ソース、問題、リリースノート。 -
ユーザーガイド
– ストリーミングトランスポートと Kubernetes デプロイを含む完全な設定リファレンス。 -
Strands Agents
– 組み込み MCP サポートを備えた AWSネイティブエージェント SDK。 -
LangGraph
– ステートフルエージェント向けの低レベルのオーケストレーションフレームワーク。 -
OpenSearch エージェントスキル – タスクに焦点を当てたワークフローのコンパニオンスキルコレクション。