翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS MCP サーバーのセットアップ
AWS MCP サーバーは、 エージェントツールキットのマネージドモデルコンテキストプロトコルサーバーです AWS。これにより、AI エージェントは、ユーザーに代わって AWS API AWS コールを実行したり、サンドボックス環境でスクリプトを実行したり、オンデマンドで AWS スキル ( を含むamazon-opensearch-service スキル) を提供したりできます。これを使用して、エージェントの OpenSearch Service ドメインと OpenSearch Serverless コレクションを操作します。
注記
AWS MCP サーバーは、パブリック Amazon OpenSearch Service エンドポイントに接続します。VPC にデプロイされたドメインまたはコレクションはサポートされていません。OpenSearch Service ドメインまたは OpenSearch Serverless コレクションが VPC アクセスを使用している場合は、代わりにオープンソースの opensearch-mcp-server-py
前提条件
-
エージェントツールキットをサポートする AI コーディングエージェント AWS (Kiro、Claude Code、Cursor、Codex など)。
-
AWS 認証情報 (CLI AWS プロファイルや環境認証情報など) をローカルに設定し、実行する OpenSearch オペレーションのアクセス許可を付与します。ドメインについては、アイデンティティベースのポリシー「」を参照してください。サーバーレスについては、「」を参照してくださいAmazon OpenSearch Serverless のデータアクセスコントロール。
aws-data-analytics プラグインをインストールする (推奨)
aws-data-analytics プラグインは AWS MCP サーバー設定とamazon-opensearch-serviceスキルを 1 回のインストールでバンドルするため、MCP エンドポイントを設定したり、スキルを個別にインストールしたりする必要はありません。
Claude コード
/plugin install aws-data-analytics@claude-plugins-official /reload-plugins
コーデック
codex plugin marketplace add aws/agent-toolkit-for-aws
次に、Codex を起動し/plugins、 を実行してaws-data-analyticsプラグインを参照およびインストールします。
AWS MCP サーバーを直接設定する
エージェントがプラグインをサポートしていない場合は、 AWS MCP サーバーを直接設定します。「 Agent Toolkit for AWS documentation」の「Setting up the AWS MCP Server」に従い、エージェントに OpenSearch の質問をします。この質問は、サーバーを通じて実行時にamazon-opensearch-serviceスキルを検出します。
スキルなしで AWS MCP サーバーを使用する
amazon-opensearch-service スキルを読み込むことなく AWS MCP サーバーを直接使用できます。このモードでは、エージェントはサーバーの組み込みcall_awsツールを使用して AWS API オペレーションを直接呼び出します。これは、アドホックオペレーションや、エージェントが行う API コールを正確に制御したい場合に役立ちます。
例えば、OpenSearch Serverless コレクションを作成するには:
Create an OpenSearch Serverless search collection named "my-collection" in us-east-1
エージェントは、設定された認証情報を使用して、ユーザーに代わって OpenSearch Serverless CreateCollection API を呼び出します。
{ "name": "my-collection", "type": "SEARCH", "description": "My search collection" }
スキルなしで既存のリソースに対してオペレーションを実行することもできます。例えば、次のようになります。
List all my OpenSearch Service domains in us-east-1 Show the cluster health for my domain named production-domain Create an index called products in my collection endpoint
AWS MCP サーバーは認証を処理し、自然言語リクエストを適切な AWS API または OpenSearch API コールに変換します。
セットアップを確認する
インストール後、エージェントを再起動して新しい設定をロードします。次に、次の質問をします。
What AWS skills do you have available for OpenSearch?
エージェントはamazon-opensearch-serviceスキルを報告する必要があります。OpenSearch Service ドメインを一覧表示する」などのタスクを試す – エージェントは、設定された認証情報を使用して AWS MCP サーバー経由で呼び出しを実行します。
セキュリティに関する考慮事項
AWS MCP サーバーは、指定した認証情報で実行されます。以下のプラクティスに従います。
-
最小特権の認証情報を使用します。専用 IAM プリンシパルを、エージェントが必要とする OpenSearch リソースとアクションにスコープします。管理者の認証情報は避けてください。
-
開発と本番を分離します。探索のために非本番稼働用リソースにサーバーを向け、本番稼働用の変更前に確認する必要があります。
-
認証情報を保護します。静的アクセスキーよりも IAM ロールと AWS CLI プロファイルを優先し、ソース管理の設定ファイルにシークレットをコミットしないでください。
-
ツールの出力を確認します。MCP ツールレスポンスは、コンテキストとしてモデルに返されます。モデルプロバイダーに公開したくない機密データを含むインデックスに対してサーバーを実行しないでください。
トラブルシューティング
-
エージェントに OpenSearch スキルやツールが表示されない – プラグインまたは MCP 設定が有効であることを確認し、エージェントを完全に再起動します。ほとんどのエージェントは、起動時にのみ MCP サーバーをロードします。
-
呼び出しは 403 Forbidden を返します – 認証情報に呼び出される API に対するアクセス許可がありません。ドメインの場合は、ドメインアクセスポリシーとプリンシパルの IAM ポリシーを確認します。Serverless の場合は、コレクションのデータアクセスポリシーを確認します。
エージェントフレームワークで を使用する
AWS MCP サーバーをプログラムワークフロー用の Python エージェントフレームワークに統合できます。次の例は、OpenSearch およびその他の AWS サービスへの認証されたアクセスを提供する AWS MCP サーバーエンドポイントに接続します。
Strands Agents
Strands Agents
from strands import Agent from strands.tools.mcp import MCPClient from mcp_proxy_for_aws.client import aws_iam_streamablehttp_client ENDPOINT = "https://aws-mcp.us-east-1.api.aws/mcp" AWS_REGION = "us-east-1" opensearch_client = MCPClient( lambda: aws_iam_streamablehttp_client( endpoint=ENDPOINT, aws_service="aws-mcp", aws_region=AWS_REGION, ) ) with opensearch_client: agent = Agent(tools=opensearch_client.list_tools_sync()) response = agent("What OpenSearch Service domains do I have?") print(response)
必要なパッケージをインストールします。
pip install strands-agents mcp-proxy-for-aws
LangGraph
LangGraphmcp-proxy-for-aws、 を使用して認証されたトランスポートを提供しlangchain-mcp-adapters、Amazon Bedrock にバックアップされた LangChain エージェントに AWS MCP ツールをロードします。
import asyncio from mcp import ClientSession from mcp_proxy_for_aws.client import aws_iam_streamablehttp_client from langchain_mcp_adapters.tools import load_mcp_tools from langchain_aws import ChatBedrock from langchain.agents import create_agent ENDPOINT = "https://aws-mcp.us-east-1.api.aws/mcp" AWS_REGION = "us-east-1" async def main(): async with aws_iam_streamablehttp_client( endpoint=ENDPOINT, aws_service="aws-mcp", aws_region=AWS_REGION, ) as (read_stream, write_stream, _get_session_id): async with ClientSession(read_stream, write_stream) as session: await session.initialize() tools = await load_mcp_tools(session) model = ChatBedrock( model_id="us.anthropic.claude-opus-4-8", region_name=AWS_REGION, ) agent = create_agent(model, tools) result = await agent.ainvoke( {"messages": [{"role": "user", "content": "What OpenSearch Service domains do I have?"}]} ) print(result["messages"][-1].content) asyncio.run(main())
必要なパッケージをインストールします。
pip install mcp-proxy-for-aws langchain langchain-aws langchain-mcp-adapters langgraph