AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

MCP クライアントのメモリへの接続

句読点コードやコーデックなどの任意の MCP(モデル コンテキスト プロトコル)クライアント は、 Agentic プラットフォーム メモリ SDK を使用せずにメモリに直接接続できます。この MCP 接続を使用して、SDK に対してPythonコードを自分で記述する代わりに、そのクライアントにメモリを付与します。このガイドでは、MCPクライアントをメモリに接続し、交流回数をレコードて呼び出す方法を学習できます。

Tip

メモリの詳細については、 エージェントへのメモリの追加ガイドの「 メモリの仕組み 」を参照してください。

MCPサーバーは3 つのツールを公開します。

  • record_turn: 1 つの短時間の交信のタームを記録します。これは、3 つのツールのうち唯一の書込み操作です。

  • build_context: クエリに関連するメモリを検索し、それをコンテキストとしてフォーマットします。

  • search_memories: 長期メモリを型で検索します。

バックグラウンド プロセスは、記録されたタームから長期メモリを非同期に抽出します。抽出を待つ代わりに、長期メモリを直接作成するには、「 スタンドアロン メモリ サービスの使用 」で説明されている SDKagentic-platform-memory を使用します。

開始する前に、次の前提条件があることを確認してください。

  • Atlas Agent Engine 上のプロジェクト。プロジェクトIDを見つけるには、「 プロジェクトを表示 」を参照してください。

  • そのプロジェクトで有効になっているメモリ。これには次のコンポーネントが必要です。

    • プロジェクトシークレットとしてアップロードされた MONGODB_URI、VOYAGE_API_KEY と LM APIキー(ANTHROPIC_API_KEYなど)。

    • 実行中のメモリ ランタイム。ランタイムがない場合は、agentengine memory apply --wait コマンドを実行してランタイムをプロビジョニングします。ランタイムが準備完了と報告するまで待ってから続行します。

    これらの前提条件を構成する方法については、「 メモリの構成 」を参照してください。

  • PROJECT_OWNER ロールを持つプロジェクトサービス アカウント。次のコマンドを実行して 1 を作成し、<name> をサービス アカウントの名前に置き換えます。

    agentengine service-account create <name> --role PROJECT_OWNER

    重要

    コマンドによって返されたクライアントIDとクライアントシークレットを保存します。 Atlas Agent Engine はクライアントシークレットを 1 回だけ表示します。

アクセス トークンを取得するには、次のコマンドを実行して、<client-id> をサービス アカウントのクライアントIDに置き換えます。

read -r -p "Client ID: " CLIENT_ID
curl --fail-with-body --silent --show-error --user "$CLIENT_ID" \
--data grant_type=client_credentials \
https://agentengine.mongodb.com/api/v1/oauth/token

curl は、ターミナルにエラーを発生させずにクライアントシークレットの入力を要求します。次のセクションで使用するために、返されたJSONオブジェクトから access_token フィールドの値をコピーします。

重要

アクセス トークンは 1 時間後に期限切れになります。 MCPクライアント構成でトークンをハードコードすると、有効期限が切れると接続が機能しなくなります。接続を復元するには、前述のコマンドを再実行して新しいトークンを取得し、構成を更新します。

ストリーム可能なHTTPトランスポートをサポートする任意の MCPクライアントは、次のURLを使用してメモリに接続できます。 <project_id>をプロジェクトIDに置き換えます。

https://agentengine.mongodb.com/api/v1/projects/<project_id>/mcp

前のセクションのアクセス トークンを Authorization: Bearer <access-token> ヘッダーとして送信します。

サーバーを追加する 際にアクセス トークンを送信する例については、MCPクライアントに対応するタブを選択してください。

次のコマンドを実行して、 MCPサーバーとしてメモリを追加し、<project_id> と <access-token> をプロジェクトIDとアクセス トークンに置き換えます。 --scope user フラグにより、サーバーはすべてのプロジェクトで使用できるようになります。

claude mcp add --scope user --transport http project-memory \
https://agentengine.mongodb.com/api/v1/projects/<project_id>/mcp \
--header "Authorization: Bearer <access-token>"

または、Clude Code CLI と Clade Code VS Code拡張機能が共有する次の構成を ~/.claude.json に追加します。

{
"mcpServers": {
"project-memory": {
"type": "http",
"url": "https://agentengine.mongodb.com/api/v1/projects/<project_id>/mcp",
"headers": {
"Authorization": "Bearer <access-token>"
}
}
}
}

Codex は、add コマンドの ヘッダーではなく、環境変数からベアラー トークンを送信します。 Codex を起動する環境でアクセス トークンをエクスポートし、次のコマンドを実行して MCPサーバーとしてメモリを追加します。 <project_id> をプロジェクトIDに置き換えます。

export AGENTIC_MEMORY_TOKEN=<access-token>
codex mcp add project-memory \
--url https://agentengine.mongodb.com/api/v1/projects/<project_id>/mcp \
--bearer-token-env-var AGENTIC_MEMORY_TOKEN

または、次の表を ~/.codex/config.toml に追加し、<project_id> をプロジェクトIDに置き換えます。

[mcp_servers.project-memory]
url = "https://agentengine.mongodb.com/api/v1/projects/<project_id>/mcp"
bearer_token_env_var = "AGENTIC_MEMORY_TOKEN"

MCPサーバーを追加した後、MCPクライアントを再起動し、3 つのメモリ ツールがリストされ、記録された参照が検索可能になることを確認します。

1

MCPクライアントを開き、project-memoryサーバーから record_turn、build_context、search_memories の 3 つのツールのみがリストされていることを確認します。

2

それぞれの特権を持ち、user_id、session_id を指定して record_turn を 2 回呼び出します。 user ロールのタームとそれに続く assistant ロールのタームを記録します。次の例では、自宅のフィールドに関する情報を記録しています。

record_turn(user_id="user_1", session_id="session_1", role="user", content="I always fly out of Boston.")
record_turn(user_id="user_1", session_id="session_1", role="assistant", content="Got it, Boston is saved as your home airport.")
3

前のステップで使用したのと同じ user_id と session_id と、記録されたファセットに一致するクエリを使用して build_context を呼び出します。記録されたタームはすぐに表示されます。build_context には最近の短期間のタームが含まれているためです。

build_context(user_id="user_1", session_id="session_1", query="Where should the flight book from?")
4

バックグラウンドの抽出プロセスが記録された を長期メモリに統合するまで数分待ちます。次に、同じ user_id、一致するクエリ、メモリ型を指定して search_memories を呼び出します。

search_memories(user_id="user_1", query="home airport", type="semantic")

ファセットが表示されない場合は、もう一度検索してください。抽出は非同期で実行されるため、タームをレコード後すぐに完了しない可能性があります。