Docs Menu
Docs Home
/ /

MongoDB MCP サーバーのメモリ オーバーフロー

MongoDB MCPサーバーがfindaggregate などのツールを実行する場合、クライアントに返す前にクエリ結果をメモリに一時的に保持する必要があります。これらの操作は、利用可能な よりも多くのメモリを消費する可能性があり、メモリ不足のクラッシュやサーバーのパフォーマンスの低下につながる恐れがあります。

  • 取得するドキュメントが多すぎる。

  • 非常に大きなドキュメントを取得します。

  • 複数の同時ツール呼び出しを処理するサーバーで を実行します。

これらの問題を軽減するために、MCPサーバーは次の使用を使用します。

  • クエリ または集計によって使用され、返されるメモリのハードウェアで、構成可能な上限。

  • MongoDBからの読み取り時にドキュメント数とメモリ使用量を追跡し、設定された制限を超える前に読み取りを停止する専用のカーソル イテレータ。

これらの保護は組み合わせることで、単一のツール呼び出しがサーバーのメモリを枯渇するのを防ぎ、LVM が コンテキストウィンドウ内で実際に使用できるデータのみを返すパターンを推奨するように設計されています。

MCPサーバーは、1 つのツール呼び出しで検索してメモリに保持できるデータ量を制御する構成ポイントを提供します。これらは 2 つのグループに分類されます。

  • サーバーの制限:サーバーによって処理されるすべてのツール呼び出しに適用されます。

  • ツール呼び出しの制限:クライアントまたはエージェントによるツール呼び出しごとに設定します。

MCPサーバー上で設定されているサーバー制限は、すべての find および aggregate 呼び出しのメモリ使用量の上限として使用されます。次の表では、メモリ使用量を制限するために使用できるサーバー構成について説明しています。

CLI オプション名
OS 環境変数名
default
説明

maxBytesPerQuery

MDB_MCP_MAX_BYTES_PER_QUERY

16777216

検索または集計ツール呼び出しからの結果の最大サイズ(バイト単位)。 MDB_MCP_MAX_BYTES_PER_QUERY は、findaggregateresponseBytesLimit パラメータの上限として機能します。

maxDocumentsPerQuery

MDB_MCP_MAX_DOCUMENTS_PER_QUERY

100

検索または集計ツール呼び出しによって返されるドキュメントの最大数。検索ツールの場合、有効な制限はこの値と ツールの制限のいずれか小さい方になります。

個別のツール呼び出しで、リクエストされるデータ量を制御することもできます。次の表では、メモリ使用を制限するために使用できるツール呼び出しパラメーターについて説明しています。

Parameter
ツール
default
説明

limit

find

10

find 呼び出しが返すことができるドキュメントの最大数。

find.limit はサーバー全体の制限 maxDocumentsPerQueryfindと組み合わせられ、 応答の有効なドキュメント制限は 2 つの値のうち小さい方になります。

responseBytesLimit

find および aggregate

1 MB

検索または集計ツール呼び出しが返すことができる最大ペイロード。

responseBytesLimit はサーバー全体の制限 maxBytesPerQueryと組み合わせて、ツール呼び出し応答の有効な制限は 2 つの値のうち小さい方になります。

カーソルがMongoDBからドキュメントを読み取り中に設定された制限のいずれかに達した場合、 MongoDB MCPサーバーは追加のドキュメントの取得を停止し、収集された部分的な結果セットを返します。

すべてのドキュメントが取得される前に構成されたメモリまたはドキュメントの制限に達すると、リクエストよりも受信されるドキュメントが少なくなる可能性があります。次の操作が必要になる場合があります。

  • 調整されたパラメーターで追跡呼び出しを発行します。

  • LM に返されるデータの量を減らします。例、集計ステージを使用した場合は になります。

戻る

スタンドアロン サービス

項目一覧