Opensearch Mcp Server Py について
opensearch-mcp-server-py は、AI アシスタントが OpenSearch クラスターを操作できるようにする MCP サーバーです。stdio と SSE、Streamable HTTP による標準化されたインターフェースを提供し、ツール呼び出しごとに接続パラメーターを指定できます。単一または複数のクラスターを扱うエージェントを想定しています。
主な機能
- 01インデックス、マッピング、シャード、ヘルスのコアツール
- 02stdio、SSE、Streamable HTTP のトランスポート対応
- 03呼び出しごとのクラスター接続パラメーター指定
- 04Basic 認証、IAM、ヘッダー認証、mTLS
- 05メモリ、PPL クエリ、検索関連性などの任意機能
活用シーン
- 01AI アシスタントによるクラスターのヘルスとインデックス情報の確認
- 02設定変更なしで複数クラスターを一つのセッションで照会
- 03DSL や PPL クエリによるログとメトリクスの分析
MCP 対応
MCP サーバーとして OpenSearch 関連のツールをクライアントに公開し、モデルがクラスターを直接操作できるようにします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| index | string | いいえ | 情報を取得するインデックスまたはインデックスパターンの名前。 |
| aws_region | any | いいえ | IAM/Serverless 認証に使用する AWS リージョン。 |
| aws_iam_arn | any | いいえ | ロールベース認証に使用する IAM ロール ARN。 |
| aws_profile | any | いいえ | 認証に使用する AWS プロファイル名。 |
| include_detail | boolean | いいえ | 詳細情報を含めるかどうか。False の場合はインデックス名のみを返し、True の場合は完全なメタデータを返します。 |
| opensearch_url | any | はい | OpenSearch エンドポイント URL。 |
| opensearch_no_auth | any | いいえ | true の場合、認証なしで接続します。 |
| opensearch_timeout | any | いいえ | 接続タイムアウト(秒)。 |
| opensearch_password | any | いいえ | ベーシック認証のパスワード。 |
| opensearch_username | any | いいえ | ベーシック認証のユーザー名。 |
| opensearch_ssl_verify | any | いいえ | true に設定すると、SSL 証明書の検証が必須になります。検証を無効にできるのはオペレーターのみであるため、false の値は無視されます。 |
| aws_opensearch_serverless | any | いいえ | true の場合、OpenSearch Serverless サービスを使用します。 |
詳細
- OpenSearch MCP サーバー
- opensearch-mcp-server-py のインストール
- 利用可能なツール
- ユーザーガイド
- エージェントメモリー
- コントリビューション
- 行動規範
- ライセンス
- 著作権
OpenSearch MCP サーバー
opensearch-mcp-server-py は、AI アシスタントが OpenSearch クラスターとやり取りできるようにする、OpenSearch 向けの Model Context Protocol(MCP)サーバーです。インデックスの検索、マッピングの取得、シャードの管理などの操作を、stdio およびストリーミング(SSE/Streamable HTTP)プロトコルを通じて実行できる、標準化されたインターフェースを提供します。
主な機能:
- MCP プロトコルを通じて、AI アシスタントや LLM とシームレスに連携
- stdio およびストリーミングサーバートランスポート(SSE と Streamable HTTP)の両方をサポート
- 一般的な OpenSearch 操作用の組み込みツール
- サーバーの再設定なしで異なるクラスターを対象にできる、呼び出しごとの動的な接続パラメーター
- Claude Desktop および LangChain との簡単な連携
- ベーシック認証、IAM ロール、ヘッダーベース認証、OpenSearch mTLS を使用した安全な認証
Kubernetes へのデプロイや mTLS の設定を含む詳細なセットアップについては、ユーザーガイドをご覧ください。
opensearch-mcp-server-py のインストール
opensearch-mcp-server-py は、pip を使って PyPI からインストールできます。
pip install opensearch-mcp-server-py
設定不要のセットアップ
サーバーは環境変数を一切設定せずに起動できます。エージェントは各ツール呼び出し時に接続情報を動的に指定します。
{
"mcpServers": {
"opensearch": {
"command": "uvx",
"args": ["opensearch-mcp-server-py"]
}
}
}
この設定では、エージェントは任意のツールを呼び出す際に、opensearch_url と認証パラメーターを直接渡します。エージェントがナレッジベース、ランブック、または SOP からエンドポイントを検出する場合や、1 つのエージェントが同一セッション内で複数のクラスターを扱う必要がある場合に便利です。詳しくは動的な接続パラメーターをご覧ください。
利用可能なツール
デフォルトでは、OpenSearch の基本機能を提供するため、コアツールのみが有効になっています。
コアツール(デフォルトで有効)
コアツールは core_tools カテゴリにまとめられており、OPENSEARCH_DISABLED_CATEGORIES=core_tools を使うと一括で無効化できます。この名前のカスタムカテゴリを作成すると、組み込みカテゴリが上書きされるため避けてください。
- ListIndexTool:
docs.count、docs.deleted、store.sizeなどを含む、OpenSearch のすべてのインデックスの詳細情報を一覧表示します。インデックスのパラメーターが指定されている場合は、そのインデックスの詳細情報を返します。 - IndexMappingTool: OpenSearch のインデックスのマッピングと設定情報を取得します。
- SearchIndexTool: OpenSearch で、クエリドメイン固有言語(DSL)で記述されたクエリを使ってインデックスを検索します。
- GetShardsTool: OpenSearch のシャードに関する情報を取得します。
- ClusterHealthTool: クラスターの健全性に関する基本情報を返します。
- CountTool: クエリに一致するドキュメント数を返します。
- ExplainTool: 特定のドキュメントがクエリに一致する(または一致しない)理由に関する情報を返します。
- MsearchTool: 1 つのリクエストで複数の検索操作を実行できます。
- [GenericOpenSearchApiTool]: カスタムのパス、メソッド、クエリパラメーター、リクエストボディを使って、任意の OpenSearch API エンドポイントを呼び出せる柔軟なツールです。すべての OpenSearch API に単一のインターフェイスを提供することで、ツールの増えすぎを抑えます。
追加ツール(デフォルトでは無効)
以下のツールを利用できますが、デフォルトでは無効になっています。有効にする方法については、ユーザーガイドのツールフィルターのセクションをご覧ください。
- GetClusterStateTool: ノード情報、インデックス設定など、クラスターの現在の状態を取得します。
- GetSegmentsTool: メモリ使用量、ドキュメント数、セグメントサイズなど、インデックス内の Lucene セグメントに関する情報を取得します。
- CatNodesTool: CPU 使用率、メモリ、ディスク容量、ノードのロールなどのシステムメトリクスを含む、OpenSearch クラスター内のノードに関する情報を取得します。
- GetNodesTool: ホストシステムの詳細、JVM 情報、プロセッサーの種類、ノード設定、スレッドプール、インストール済みプラグインなどの静的情報を含む、OpenSearch クラスター内のノードに関する詳細情報を取得します。
- GetIndexInfoTool: マッピング、設定、エイリアスなど、インデックスに関する詳細情報を取得します。インデックス名ではワイルドカードを使用できます。
- GetIndexStatsTool: ドキュメント数、ストアサイズ、インデックス作成および検索のパフォーマンス指標など、インデックスの統計情報を取得します。
- GetQueryInsightsTool: /_insights/top_queries エンドポイントからクエリに関するインサイトを取得し、クエリのパターンやパフォーマンスに関する情報を表示します。
- GetNodesHotThreadsTool: /_nodes/hot_threads エンドポイントから、クラスター内のノードのホットスレッドに関する情報を取得します。
- GetAllocationTool: /_cat/allocation エンドポイントから、クラスター内のノード間のシャード割り当てに関する情報を取得します。
- GetLongRunningTasksTool: クラスター内の長時間実行中のタスクに関する情報を、実行時間の降順で取得します。
エージェント型メモリツール(デフォルトでは無効)
以下のツールは、OpenSearch Agentic Memory API を公開します。これは OpenSearch 自体に組み込まれたサーバーサイドのメモリシステムです。OpenSearch クラスターが、メモリーコンテナ、セッション、推論(会話から事実を抽出する LLM ベースの処理)を管理します。これらのツールを使用するには、OpenSearch 3.3.0 以降が必要です。
使用する場面: LLM ベースの推論による生の会話からの事実抽出、構造化されたメモリタイプ(セッション、作業用、長期、履歴)、サーバー管理の名前空間など、メモリのライフサイクル全体を OpenSearch に管理させたい場合に使用します。メモリ管理を一元化し、MCP クライアントに依存させたくない、本番環境のエージェント型パイプラインに最適です。
セットアップ: これらのツールを使用する前に、OpenSearch にメモリーコンテナを作成する必要があります(LLM コネクターと埋め込みモデルの設定が必要な、初回のみの管理者操作です)。Agent Memory Guide の Agentic Memory Tools を参照してください。
OPENSEARCH_ENABLED_CATEGORIES=agentic_memory で有効にします。agentic_memory 設定セクションまたは OPENSEARCH_MEMORY_CONTAINER_ID 環境変数で memory_container_id を設定すると、すべてのツール呼び出しに自動的に事前入力されます。
- CreateAgenticMemorySessionTool: メモリーコンテナ内に新しいセッションを作成します。
- AddAgenticMemoriesTool: 会話データまたは構造化データのメモリをコンテナに追加します。
- GetAgenticMemoryTool: ID とタイプを指定して、特定のメモリを取得します。
- SearchAgenticMemoryTool: OpenSearch Query DSL を使用してメモリを検索します。
- UpdateAgenticMemoryTool: 既存のメモリを更新します(メモリタイプに応じて、特定のフィールドをサポートします)。
- DeleteAgenticMemoryByIDTool: ID を指定して、特定のメモリを削除します。
- DeleteAgenticMemoryByQueryTool: クエリ条件に一致する複数のメモリを削除します。
可観測性ツール(デフォルトでは無効)
可観測性ツールは observability カテゴリーにまとめられており、OPENSEARCH_ENABLED_CATEGORIES=observability を指定するか、設定ファイルに enabled_categories: [observability] を追加すると有効にできます。または、analytics カテゴリーを有効にすると、可観測性ツールとスキルツールの両方をまとめて利用できます。
- PPLQueryTool: OpenSearch に対して PPL(Piped Processing Language)クエリを実行します。PPL はデータをクエリするためのパイプベースの構文(
source=<index> | <command> | <command>)を提供し、フィルタリング、集計、並べ替え、重複排除、フィールド選択をサポートします。jdbc、csv、rawの出力形式をサポートします。
Search Relevance Workbench ツール(デフォルトでは無効)
Search Relevance Workbench ツールは search_relevance カテゴリーにまとめられており、OPENSEARCH_ENABLED_CATEGORIES=search_relevance を指定するか、enabled_categories: [search_relevance] を追加するか、設定ファイルに個別のツールを明示的に追加すると、一括で有効にできます。ツールのフィルタリング方法について詳しくは、User Guide の Tool Filter セクションを参照してください。
- CreateSearchConfigurationTool:名前、クエリ本文(OpenSearch クエリのドメイン固有言語によるクエリ)、対象インデックスで構成される検索設定を作成します。
- GetSearchConfigurationTool:ID を指定して検索設定を取得します。
- DeleteSearchConfigurationTool:ID を指定して検索設定を削除します。
- CreateQuerySetTool:名前、説明、クエリのリストで構成されるクエリセットを作成します。
- SampleQuerySetTool:さまざまな統計的サンプリング手法を用いて、UBI データに基づくクエリセットをサンプリングします。
- GetQuerySetTool:ID を指定してクエリセットを取得します。
- DeleteQuerySetTool:ID を指定してクエリセットを削除します。
- CreateJudgmentListTool:外部プロセスで作成された評価を含む評価リストを作成します。
- CreateLLMJudgmentListTool:LLM を使用して評価リストを作成します。
- CreateUBIJudgmentListTool:暗黙的なフィードバック(User Behavior Insights データ)に基づいて評価リストを作成します。
- GetJudgmentListTool:ID を指定して評価リストを取得します。
- DeleteJudgmentListTool:ID を指定して評価リストを削除します。
- CreateExperimentTool:検索関連性の実験を作成します。PAIRWISE_COMPARISON(2 つの検索設定を比較)、POINTWISE_EVALUATION(1 つの設定を評価リストと照合して評価)、HYBRID_OPTIMIZER(評価リストを使用して 1 つの設定を最適化)をサポートします。
- GetExperimentTool:ID を指定して実験を取得します。
- DeleteExperimentTool:ID を指定して実験を削除します。
- SearchQuerySetsTool:OpenSearch クエリ DSL を使用してクエリセットを検索します。クエリ本文が指定されていない場合は、デフォルトで match_all を使用します。
- SearchSearchConfigurationsTool:OpenSearch クエリ DSL を使用して検索設定を検索します。クエリ本文が指定されていない場合は、デフォルトで match_all を使用します。
- SearchJudgmentsTool:OpenSearch クエリ DSL を使用して評価を検索します。クエリ本文が指定されていない場合は、デフォルトで match_all を使用します。
- SearchExperimentsTool:OpenSearch クエリ DSL を使用して実験を検索します。クエリ本文が指定されていない場合は、デフォルトで match_all を使用します。
スキルツール(デフォルトでは無効)
スキルツールは skills カテゴリにまとめられており、OPENSEARCH_ENABLED_CATEGORIES=skills を使用するか、設定ファイルに enabled_categories: [skills] を追加すると、一括で有効にできます。また、analytics カテゴリを有効にすると、スキルツールとオブザーバビリティツールの両方を一度に利用できます。ツールのフィルタリング方法について詳しくは、ユーザーガイドの「ツールフィルター」セクションをご覧ください。
- DataDistributionTool: OpenSearch インデックス内のデータ分布パターンとフィールド値の頻度を分析します。単一データセットの分析と、2 つの期間を比較して分布の変化を特定する分析に対応しています。
- LogPatternAnalysisTool: ベースライン期間と選択期間を比較分析し、異常なログパターンやシーケンスを検出します。トレース相関を用いたログシーケンス分析、ログパターンの差分分析、エラー検出のためのログインサイト分析に対応しています。
- MetricChangeAnalysisTool: ベースライン期間と選択期間におけるすべての数値フィールドのパーセンタイル分布(P50、P90)を比較し、変化スコアの高い順にフィールドを返します。異常発生期間中にどの数値メトリクスが最も変化したかを特定するのに役立ちます。
メモリツール(オプトイン)
メモリツールを使うと、MCP エージェント自体が OpenSearch を基盤とする永続的なセッション横断メモリを利用できます。エージェントがプレーンテキストの記述として保存する内容を決定し、OpenSearch がそれを保存して意味的にインデックス化します。MEMORY_TOOLS_ENABLED=true で有効にできます。セットアップ手順について詳しくは、エージェントメモリガイドをご覧ください。
使用する場面: Kiro、Claude Code、Cursor など、MCP 互換の IDE で利用できる、軽量でエージェント主導のメモリレイヤーが必要な場合です。何を記憶するかはエージェントが制御するため、OpenSearch 側で LLM コネクターや埋め込みモデルを設定する必要はありません。意味的な自動エンリッチメントには、Amazon OpenSearch Service(マネージドドメイン 2.19 以降または Serverless)が必要です。セットアップ手順について詳しくは、エージェントメモリガイドをご覧ください。
- SaveMemoryTool: 事実、決定事項、設定を、意味的な自動エンリッチメントとともに永続ストレージに保存します。
- SearchMemoryTool: 新しさを考慮したランキングを用いて、自然言語でメモリを検索します。
- DeleteMemoryTool: ドキュメント ID を指定して、古くなったメモリや誤ったメモリを削除します。
ツールパラメーター
すべてのツールは、サーバーの環境変数設定を呼び出しごとに上書きする、以下の任意の接続パラメーターを受け付けます。すべて省略した場合、サーバーは通常どおり、設定済みの環境変数またはクラスター設定を使用します。opensearch_url を指定する場合、認証情報も同じ呼び出しで指定する必要があります。オペレーターが OPENSEARCH_ALLOW_AMBIENT_AWS_FALLBACK=true を設定して AWS 認証情報を共有していない限り、サーバーは呼び出し元が選択した URL に対して自身の認証情報を使用しません。
| パラメーター | 型 | 説明 |
|---|---|---|
opensearch_url | string | OpenSearch エンドポイントの URL です。OPENSEARCH_URL を上書きします。 |
opensearch_username | string | 基本認証のユーザー名です。OPENSEARCH_USERNAME を上書きします。 |
opensearch_password | string | 基本認証のパスワードです。OPENSEARCH_PASSWORD を上書きします。 |
opensearch_no_auth | boolean | 認証なしで接続します。OPENSEARCH_NO_AUTH を上書きします。 |
aws_region | string | AWS リージョンです。AWS_REGION を上書きします。 |
aws_iam_arn | string | IAM ロール ARN です。AWS_IAM_ARN を上書きします。 |
aws_profile | string | AWS プロファイル名です。AWS_PROFILE を上書きします。 |
aws_opensearch_serverless | boolean | OpenSearch Serverless を使用します。AWS_OPENSEARCH_SERVERLESS を上書きします。 |
opensearch_ssl_verify | boolean | SSL 証明書の検証を必須にするには true に設定します。false の値は無視されます。無効化できるのは OPENSEARCH_SSL_VERIFY のみです。 |
opensearch_timeout | integer | 接続タイムアウト(秒)です。OPENSEARCH_TIMEOUT を上書きします。 |
これにより、サーバーを再設定することなく、エージェントはツール呼び出しごとに異なるクラスターを動的に指定できます(シングルモードのみ)。OPENSEARCH_ALLOW_AMBIENT_AWS_FALLBACK=true によって、サーバーが独自の AWS 認証情報を使用して呼び出し元が指定した URL に署名できる場合を除き、認証情報は URL と同じ呼び出しで指定する必要があります。OPENSEARCH_SSRF_GUARD=true を設定すると、呼び出し元が指定した URL は公開 HTTPS アドレスに制限されます。詳細と例については、ユーザーガイドの動的接続パラメーターを参照してください。
上記の共通接続パラメーターに加えて、各ツールはそれぞれ固有のパラメーターを受け取ります。
注: 以下の各ツールの説明に記載されている
opensearch_urlパラメーターは、上記の共通接続パラメーターの一部です。すべての共通接続パラメーター(opensearch_username、opensearch_password、aws_regionなど)はすべてのツールで使用できますが、簡潔にするため、各ツールのパラメーター一覧では繰り返し記載していません。
-
ListIndexTool
opensearch_url(任意):接続する OpenSearch クラスターの URLindex(任意):詳細情報を取得するインデックス名です。指定した場合、すべてのインデックスを一覧表示する代わりに、このインデックスの詳細情報を返します。
-
IndexMappingTool
opensearch_url(任意):接続する OpenSearch クラスターの URLindex(必須):マッピングを取得するインデックス名
-
SearchIndexTool
opensearch_url(任意):接続する OpenSearch クラスターの URLindex(必須):検索対象のインデックス名query_dsl(必須):OpenSearch Query DSL 形式の検索クエリformat(任意):SearchIndexTool のレスポンス形式です。選択肢は csv と json です。size(任意):SearchIndexTool のレスポンスサイズです。デフォルトは 10、最大値は 100(設定可能)です。最大値を変更するには、CLI 引数または設定ファイルでmax_size_limitを設定してください。詳細についてはツールのカスタマイズを参照してください。
-
GetShardsTool
opensearch_url(任意):接続する OpenSearch クラスターの URLindex(必須):シャード情報を取得するインデックス名
-
ClusterHealthTool
opensearch_url(任意):接続する OpenSearch クラスターの URLindex(任意):ヘルスレポートの対象を特定のインデックスに限定します
-
CountTool
opensearch_url(任意):接続する OpenSearch クラスターの URLindex(任意):ドキュメントを数えるインデックス名body(任意):ドキュメントを絞り込むための JSON 形式のクエリ
-
ExplainTool
opensearch_url(任意):接続する OpenSearch クラスターの URLindex(必須):ドキュメントを取得するインデックス名id(必須):説明対象のドキュメント IDbody(必須):ドキュメントに対する説明に使用する JSON 形式のクエリ
-
MsearchTool
opensearch_url(任意):接続先の OpenSearch クラスターの URLindex(任意):検索対象のデフォルトインデックスbody(必須):NDJSON 形式のマルチ検索リクエストボディ
-
GetClusterStateTool
opensearch_url(任意):接続先の OpenSearch クラスターの URLmetric(任意):返される情報を指定したメトリクスに制限します。次のオプションがあります:_all、blocks、metadata、nodes、routing_table、routing_nodes、master_node、versionindex(任意):返される情報を指定したインデックスに制限します
-
GetSegmentsTool
opensearch_url(任意):接続先の OpenSearch クラスターの URLindex(任意):返される情報を指定したインデックスに制限します。指定しない場合、すべてのインデックスのセグメントを返します
-
CatNodesTool
opensearch_url(任意):接続先の OpenSearch クラスターの URLmetrics(任意):表示するメトリクスをカンマ区切りで指定します。利用可能なメトリクスには、id、name、ip、port、role、master、heap.percent、ram.percent、cpu、load_1m、load_5m、load_15m、disk.total、disk.used、disk.avail、disk.used_percent があります
-
GetNodesTool
opensearch_url(任意):接続先の OpenSearch クラスターの URLnode_id(任意):返される情報を制限するノード ID または名前をカンマ区切りで指定します。_local、_master、master:true、data:false などのノードフィルターをサポートします。デフォルトは _all です。metric(任意):レスポンスに含めるメトリクスグループをカンマ区切りで指定します。次のオプションがあります:settings、os、process、jvm、thread_pool、transport、http、plugins、ingest、aggregations、indices。デフォルトでは、すべてのメトリクスが含まれます。
-
GetIndexInfoTool
opensearch_url(任意):接続先の OpenSearch クラスターの URLindex(必須):詳細情報を取得するインデックスの名前。ワイルドカードをサポートします。
-
GetIndexStatsTool
opensearch_url(任意):接続先の OpenSearch クラスターの URLindex(必須):統計情報を取得するインデックスの名前。ワイルドカードをサポートします。metric(任意):返される情報を指定したメトリクスに制限します。次のオプションがあります:_all、completion、docs、fielddata、flush、get、indexing、merge、query_cache、refresh、request_cache、search、segments、store、warmer、bulk
-
GetQueryInsightsTool
opensearch_url(任意):接続先の OpenSearch クラスターの URL
-
GetNodesHotThreadsTool
opensearch_url(任意):接続先の OpenSearch クラスターの URL
-
GetAllocationTool
opensearch_url(任意):接続先の OpenSearch クラスターの URL
-
GetLongRunningTasksTool
opensearch_url(任意):接続先の OpenSearch クラスターの URLlimit(任意):返すタスクの最大数。デフォルトは 10 です。
-
CreateAgenticMemorySessionTool
memory_container_id(自動入力):セッションを作成するメモリーコンテナーの ID。agentic_memory設定またはOPENSEARCH_MEMORY_CONTAINER_ID環境変数を使って設定すると、自動的に設定されます。(パスパラメーター)session_id(任意):カスタムセッション ID。指定しない場合は、ランダムな ID が生成されます。(ボディパラメーター)summary(任意):セッションの要約または説明。(ボディパラメーター)metadata(任意):キーと値のペアで指定する、セッションの追加メタデータ。(ボディパラメーター)namespace(任意):セッションを整理するための名前空間情報。(ボディパラメーター)
-
AddAgenticMemoriesTool
memory_container_id(自動入力):メモリを追加するメモリコンテナの ID です。設定時に自動で指定されます。(パスパラメーター)messages(条件付き):メッセージのリストです。payload_typeがconversationalの場合に必須です。(ボディパラメーター)structured_data(条件付き):構造化データの内容です。payload_typeがdataの場合に必須です。(ボディパラメーター)binary_data(任意):バイナリペイロード用に Base64 文字列としてエンコードされたバイナリデータの内容です。(ボディパラメーター)payload_type(必須):ペイロードの種類です。有効な値はconversationalまたはdataです。ペイロードの種類を参照してください。(ボディパラメーター)namespace(任意):メモリを整理するための名前空間コンテキストです(例:user_id、session_id、agent_id)。namespace フィールドにsession_idが指定されておらず、disable_sessionがfalse(デフォルトはtrue)の場合、新しいセッション ID を持つ新しいセッションが作成されます。(ボディパラメーター)metadata(任意):メモリの追加メタデータです(例:status、branch、カスタムフィールド)。(ボディパラメーター)tags(任意):メモリを分類するためのタグです。(ボディパラメーター)infer(任意):重要な情報の抽出に LLM を使用するかどうかを指定します(デフォルト:false)。trueの場合、LLM は元のテキストから重要な情報を抽出し、メモリとして保存します。推論モードを参照してください。(ボディパラメーター)
-
GetAgenticMemoryTool
memory_container_id(自動入力):メモリを取得するメモリコンテナの ID です。設定時に自動で指定されます。(パスパラメーター)type(必須):メモリの種類です。有効な値はsessions、working、long-term、historyです。(パスパラメーター)id(必須):取得するメモリの ID です。(パスパラメーター)
-
SearchAgenticMemoryTool
memory_container_id(自動入力):メモリコンテナの ID です。設定時に自動で指定されます。(パスパラメーター)type(必須):メモリの種類です。有効な値はsessions、working、long-term、historyです。(パスパラメーター)query(必須):OpenSearch のクエリー DSLを使用した検索クエリーです。(ボディパラメーター)sort(任意):検索結果のソート指定です。(ボディパラメーター)
-
UpdateAgenticMemoryTool
memory_container_id(自動入力):メモリーコンテナの ID です。設定時に自動的に設定されます。(Path Parameter)type(必須):メモリーの種類(sessions、working、long-termのいずれか)です。(Path Parameter)id(必須):更新するメモリーの ID です。(Path Parameter)- セッションメモリーのリクエストフィールド:
summary(任意):セッションの概要です。(Body Parameter)metadata(任意):メモリーに関する追加のメタデータです(例:status、branch、カスタムフィールド)。(Body Parameter)agents(任意):エージェントに関する追加情報です。(Body Parameter)additional_info(任意):セッションに関連付ける追加のメタデータです。(Body Parameter)
- 作業メモリーのリクエストフィールド
messages(任意):更新された会話メッセージです(会話タイプの場合)。(Body Parameter)structured_data(任意):更新された構造化データの内容です(データメモリーペイロードの場合)。(Body Parameter)binary_data(任意):更新されたバイナリデータの内容です(データメモリーペイロードの場合)。(Body Parameter)tags(任意):分類用に更新されたタグです。(Body Parameter)metadata(任意):メモリーに関する追加のメタデータです(例:status、branch、カスタムフィールド)。(Body Parameter)
- 長期メモリーのリクエストフィールド
memory(任意):更新されたメモリーの内容です。(Body Parameter)tags(任意):分類用に更新されたタグです。(Body Parameter)
-
DeleteAgenticMemoryByIDTool
memory_container_id(自動入力):メモリーを削除する対象のメモリーコンテナの ID です。設定時に自動的に設定されます。(Path Parameter)type(必須):削除するメモリーの種類です。有効な値はsessions、working、long-term、historyです。(Path Parameter)id(必須):削除する特定のメモリーの ID です。(Path Parameter)
-
DeleteAgenticMemoryByQueryTool
memory_container_id(自動入力):メモリーを削除する対象のメモリーコンテナの ID です。設定時に自動的に設定されます。(Path Parameter)type(必須):削除するメモリーの種類です。有効な値はsessions、working、long-term、historyです。(Path Parameter)query(必須):削除するメモリーに一致させる OpenSearch の DSL クエリ です。(Body Parameter)
-
DataDistributionTool
index(必須):対象となる OpenSearch インデックス名です。selectionTimeRangeStart(必須):分析対象期間の開始時刻です。selectionTimeRangeEnd(必須):分析対象期間の終了時刻です。timeField(必須):フィルタリングに使用する日付/時刻フィールドです。baselineTimeRangeStart(任意):ベースライン期間の開始時刻です。baselineTimeRangeEnd(任意):ベースライン期間の終了時刻です。size(任意):分析するドキュメントの最大数です。デフォルトは 1000 です。
-
LogPatternAnalysisTool
index(必須):ログデータを含む対象の OpenSearch インデックス名です。logFieldName(必須):分析する未加工のログメッセージを含むフィールドです。selectionTimeRangeStart(必須):分析対象期間の開始時刻です。selectionTimeRangeEnd(必須):分析対象期間の終了時刻です。timeField(必須):時間ベースのフィルタリングに使用する日付/時刻フィールドです。traceFieldName(任意):トレース/相関 ID に使用するフィールドです。baseTimeRangeStart(任意):ベースライン比較期間の開始時刻です。baseTimeRangeEnd(任意):ベースライン比較期間の終了時刻です。
-
MetricChangeAnalysisTool
index(必須):対象となる OpenSearch インデックス名。selectionTimeRangeStart(必須):選択期間(異常期間)の開始時刻。selectionTimeRangeEnd(必須):選択期間(異常期間)の終了時刻。baselineTimeRangeStart(必須):ベースライン期間の開始時刻。baselineTimeRangeEnd(必須):ベースライン期間の終了時刻(selectionTimeRangeStart以前である必要があります)。timeField(必須):フィルタリングに使用する日付/時刻フィールド。topN(任意):変化スコア順に返す上位フィールドの数。デフォルトは10です。size(任意):分析するドキュメントの最大数。デフォルトは1000です。
今後、さらにツールを追加する予定です。こちらをクリック
ユーザーガイド
詳しい使用方法、設定オプション、例については、ユーザーガイドをご覧ください。
エージェントメモリ
OpenSearch MCP サーバーには、2種類の異なるメモリシステムが含まれています。どちらもストレージバックエンドとして OpenSearch を使用しますが、メモリのライフサイクルを誰が制御するか、また必要なインフラストラクチャが異なります。
適切な方法の選択
メモリツール(MEMORY_TOOLS_ENABLED) | エージェント型メモリツール(agentic_memoryカテゴリ) | |
|---|---|---|
| 誰がメモリを保存するか | MCP エージェントが、保存するプレーンテキストの記述を決定します | OpenSearch が生の会話を処理し、LLM 推論によって事実を抽出します |
| セットアップの複雑さ | 低 — 初回使用時にインデックスが自動作成されます | 高 — LLM コネクターと埋め込みモデルを備えたメモリコンテナの作成が必要です |
| OpenSearch のバージョン | Amazon OpenSearch Service 2.19+ または Serverless | OpenSearch 3.3.0+ |
| セマンティック検索 | はい。AWS の自動セマンティックエンリッチメントを使用します | はい。設定済みの埋め込みモデルを使用します |
| メモリの構造 | フラット — 各メモリはプレーンテキストの記述です | 構造化 — セッション、作業用、長期、履歴の各タイプがあります |
| LLM 推論 | いいえ — エージェントが記憶する内容をそのまま書き込みます | 任意(infer: true)— OpenSearch が LLM を使用して会話から事実を抽出します |
| 最適な用途 | 素早いセットアップとセッションをまたいだ継続性が必要な IDE エージェント(Kiro、Claude Code、Cursor) | メモリ管理を一元化し、サーバー側で所有する必要がある、本番環境のエージェント型パイプライン |
あらゆる MCP 互換 IDEですぐに使える、軽量でエージェント主導のメモリレイヤーが必要な場合は、メモリツールを使用してください。記憶する内容はエージェントが制御します。セットアップについては、エージェントメモリガイドをご覧ください。
生の会話からの LLM ベースの事実抽出、構造化されたメモリタイプ、サーバー管理の名前空間など、メモリのライフサイクル全体を OpenSearch に管理させたい場合は、エージェント型メモリツールを使用してください。セットアップについては、エージェントメモリガイドをご覧ください。
コントリビューション
コントリビューションに関心をお持ちですか?以下をご確認ください。
- 開発ガイド - 開発環境をセットアップする
- コントリビューションガイドライン - コントリビューションの方法を確認する
行動規範
このプロジェクトでは、Amazon オープンソース行動規範を採用しています。詳しくは、行動規範に関するよくある質問をご覧いただくか、ご質問やご意見がありましたら[email protected]までお問い合わせください。
ライセンス
このプロジェクトは、Apache v2.0 ライセンスの下でライセンスされています。
著作権
Copyright 2020-2021 Amazon.com, Inc. またはその関連会社。All Rights Reserved.
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。