

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

# OpenSearch MCP サーバー
<a name="opensearch-mcp-server"></a>

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

サーバーは、マネージド OpenSearch Service ドメインと OpenSearch Serverless コレクションの両方で動作します。コーディング IDEs (Kiro、Claude Code、Cursor)、デスクトップ AI アシスタント (Claude Desktop)、エージェントフレームワーク (Strands Agents、LangGraph) に接続できます。

## 前提条件
<a name="mcp-server-prerequisites"></a>
+ Python 3.10 以降。
+ [https://docs.astral.sh/uv/getting-started/installation/](https://docs.astral.sh/uv/getting-started/installation/) (推奨) または `pip`。
+ 到達可能な OpenSearch エンドポイント: OpenSearch Service ドメイン、OpenSearch Serverless コレクション、またはセルフマネージド OpenSearch クラスター。
+ 公開する OpenSearch APIs を呼び出すアクセス許可を持つ認証情報。OpenSearch Service ドメインの IAM ポリシーについては、「」を参照してください[アイデンティティベースのポリシー](ac.md#ac-types-identity)。OpenSearch Serverless データアクセスポリシーについては、「」を参照してください[Amazon OpenSearch Serverless のデータアクセスコントロール](serverless-data-access.md)。

## インストール
<a name="mcp-server-install"></a>

でサーバーを実行する`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 アシスタントを設定します。例[エージェントフレームワークで を使用する](mcp-server-configure-frameworks.md)については、[コーディング IDE で を設定する](mcp-server-configure-ide.md)「」と「」を参照してください

## 認証
<a name="mcp-server-authentication"></a>

環境変数 (単一クラスターモード) または 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 を呼び出すアクセス許可が必要です。サンプルポリシー[追加のサンプルポリシー](ac.md#ac-samples)については、「」を参照してください。

**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 のデータアクセスコントロール](serverless-data-access.md))。  

```
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}}"
```
ソース管理にチェックインできる設定ファイルにパスワードを埋め込まないでください。オペレーティングシステムのシークレットマネージャーまたはシェル環境を使用して、認証情報を提供します。

## セキュリティに関する考慮事項
<a name="mcp-server-security"></a>

MCP サーバーは、指定した認証情報で実行されます。これらの認証情報が許可されていると、AI アシスタントがユーザーに代わってトリガーする可能性があります。以下のプラクティスに従います。
+ **最小特権の認証情報を使用します。**エージェントが必要とするインデックスとアクションをスコープとする専用の IAM ロールまたは OpenSearch ユーザーを作成します。管理者認証情報の再利用は避けてください。
+ **開発と本番を分離します。**探索する非本番稼働用クラスターにサーバーを向けます。本番稼働用アクセスが必要な場合は、明示的なクラスター名でマルチモードを使用します。
+ **フィルターツール。**ワークフローで不要なツールカテゴリを無効にします。デフォルト設定を無効にする`OPENSEARCH_DISABLED_CATEGORIES=core_tools`ように を設定するか、 `OPENSEARCH_ENABLED_CATEGORIES` を使用して特定のカテゴリのみを有効にします。
+ **認証情報を保護します。**静的アクセスキーよりもプロファイルと IAM ロールを優先 AWS します。ソースコントロールの設定ファイルにシークレットをコミットしないでください。
+ **ツールの出力を確認します。**MCP ツールのレスポンスは、コンテキストとして言語モデルにフィードバックされます。AI プロバイダーに公開したくない機密データを含むインデックスに対してサーバーを実行しないでください。

## トラブルシューティング
<a name="mcp-server-troubleshooting"></a>

**アシスタントに 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 リポジトリ](https://github.com/opensearch-project/opensearch-mcp-server-py/issues)で問題を開きます。

## その他のリソース
<a name="mcp-server-more-information"></a>
+ GitHub の [opensearch-mcp-server-py](https://github.com/opensearch-project/opensearch-mcp-server-py) – ソース、問題、リリースノート。
+ [ユーザーガイド](https://github.com/opensearch-project/opensearch-mcp-server-py/blob/main/USER_GUIDE.md) – ストリーミングトランスポートと Kubernetes デプロイを含む完全な設定リファレンス。
+ [Strands Agents](https://strandsagents.com) – 組み込み MCP サポートを備えた AWSネイティブエージェント SDK。
+ [LangGraph](https://github.com/langchain-ai/langgraph) – ステートフルエージェント向けの低レベルのオーケストレーションフレームワーク。
+ [OpenSearch エージェントスキル](opensearch-agent-skills.md) – タスクに焦点を当てたワークフローのコンパニオンスキルコレクション。