MongoDB MCPサーバーがfind や aggregate などのツールを実行する場合、クライアントに返す前にクエリ結果をメモリに一時的に保持する必要があります。これらの操作は、利用可能な よりも多くのメモリを消費する可能性があり、メモリ不足のクラッシュやサーバーのパフォーマンスの低下につながる恐れがあります。
取得するドキュメントが多すぎる。
非常に大きなドキュメントを取得します。
複数の同時ツール呼び出しを処理するサーバーで を実行します。
これらの問題を軽減するために、MCPサーバーは次の使用を使用します。
クエリ または集計によって使用され、返されるメモリのハードウェアで、構成可能な上限。
MongoDBからの読み取り時にドキュメント数とメモリ使用量を追跡し、設定された制限を超える前に読み取りを停止する専用のカーソル イテレータ。
これらの保護は組み合わせることで、単一のツール呼び出しがサーバーのメモリを枯渇するのを防ぎ、LVM が コンテキストウィンドウ内で実際に使用できるデータのみを返すパターンを推奨するように設計されています。
構成
MCPサーバーは、1 つのツール呼び出しで検索してメモリに保持できるデータ量を制御する構成ポイントを提供します。これらは 2 つのグループに分類されます。
サーバーの制限:サーバーによって処理されるすべてのツール呼び出しに適用されます。
ツール呼び出しの制限:クライアントまたはエージェントによるツール呼び出しごとに設定します。
サーバーの制限
MCPサーバー上で設定されているサーバー制限は、すべての find および aggregate 呼び出しのメモリ使用量の上限として使用されます。次の表では、メモリ使用量を制限するために使用できるサーバー構成について説明しています。
CLI オプション名 | OS 環境変数名 | default | 説明 |
|---|---|---|---|
|
|
| 検索または集計ツール呼び出しからの結果の最大サイズ(バイト単位)。 |
|
|
| 検索または集計ツール呼び出しによって返されるドキュメントの最大数。検索ツールの場合、有効な制限はこの値と ツールの制限のいずれか小さい方になります。 |
ツール呼び出しの制限
個別のツール呼び出しで、リクエストされるデータ量を制御することもできます。次の表では、メモリ使用を制限するために使用できるツール呼び出しパラメーターについて説明しています。
Parameter | ツール | default | 説明 |
|---|---|---|---|
|
|
| |
|
|
|
メモリ オーバーフロー動作
カーソルがMongoDBからドキュメントを読み取り中に設定された制限のいずれかに達した場合、 MongoDB MCPサーバーは追加のドキュメントの取得を停止し、収集された部分的な結果セットを返します。
すべてのドキュメントが取得される前に構成されたメモリまたはドキュメントの制限に達すると、リクエストよりも受信されるドキュメントが少なくなる可能性があります。次の操作が必要になる場合があります。
調整されたパラメーターで追跡呼び出しを発行します。
LM に返されるデータの量を減らします。例、集計ステージを使用した場合は になります。