View a markdown version of this page

OpenSearch MCP サーバー - Amazon OpenSearch Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

OpenSearch MCP サーバー

OpenSearch MCP サーバー (opensearch-mcp-server-py) は、OpenSearch の Model Context Protocol のオープンソース実装です。OpenSearch API APIs「クラスター内にどのようなインデックスが存在するか」などの質問をすることができます。または「過去 1 時間の最も遅いクエリを表示する」とエージェントがユーザーに代わって API コールを処理します。

サーバーは、マネージド 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_categoriesOPENSEARCH_ENABLED_CATEGORIESまたは で有効にします。

詳細については、opensearch-mcp-server-py リポジトリで問題を開きます。

その他のリソース

  • GitHub の opensearch-mcp-server-py – ソース、問題、リリースノート。

  • ユーザーガイド – ストリーミングトランスポートと Kubernetes デプロイを含む完全な設定リファレンス。

  • Strands Agents – 組み込み MCP サポートを備えた AWSネイティブエージェント SDK。

  • LangGraph – ステートフルエージェント向けの低レベルのオーケストレーションフレームワーク。

  • OpenSearch エージェントスキル – タスクに焦点を当てたワークフローのコンパニオンスキルコレクション。