MongoDB MCP 서버 find 및 aggregate와 같은 도구를 실행할 때 쿼리 결과를 클라이언트 에 반환하기 전에 메모리에 일시적으로 보관해야 합니다. 이러한 작업은 사용 가능한 것보다 더 많은 메모리를 사용할 수 있으며 다음과 같은 경우 메모리 부족 충돌 또는 서버 성능 저하의 위험이 있습니다.
너무 많은 문서를 가져옵니다.
매우 큰 문서를 가져옵니다.
여러 개의 동시 도구 호출을 처리하는 서버 에서 실행합니다.
이러한 문제를 완화하기 위해 MCP 서버 다음을 사용합니다.
쿼리 또는 집계 에서 사용하고 반환하는 메모리에 대한 구성 가능한 고정 상한입니다.
MongoDB 에서 읽을 때 문서 수와 메모리 사용량을 추적하고 구성된 제한을 초과하기 전에 읽기를 중지하는 전용 커서 반복기입니다.
이러한 보호 기능은 단일 도구 호출로 인해 서버 메모리가 고갈되는 것을 방지하고 LLM이 컨텍스트 창 내에서 실제로 사용할 수 있는 데이터만 반환하는 패턴을 권장합니다.
구성
MCP 서버 단일 도구 호출이 메모리에 조회 하고 보유할 수 있는 데이터의 양을 제어하는 구성 지점을 제공합니다. 이는 두 그룹으로 나뉩니다.
서버 제한: 서버 에서 처리하는 모든 도구 호출에 적용됩니다.
도구 호출 제한: 클라이언트 또는 에이전트 의 도구 호출별로 설정합니다.
서버 제한
MCP 서버 에 구성된 서버 제한은 모든 find 및 aggregate 호출에 대한 메모리 사용의 상한으로 사용됩니다. 다음 표에서는 메모리 사용을 제한하는 데 사용할 수 있는 서버 구성에 대해 설명합니다.
CLI 옵션 이름 | OS 환경 변수 이름 | 기본값 | 설명 |
|---|---|---|---|
|
|
| 찾기 또는 애그리게이션 도구 호출 결과의 최대 크기(바이트)입니다. |
|
|
| 찾기 또는 애그리게이션 도구 호출에서 반환할 수 있는 최대 문서 수입니다. 찾기 도구의 경우 유효 한도는 이 값과 도구의 한도 중 더 작은 값이 됩니다. |
도구 호출 제한
개별 도구 호출을 통해 요청된 데이터의 양을 제어할 수도 있습니다. 다음 표에서는 메모리 사용을 제한하는 데 사용할 수 있는 도구 호출 매개변수에 대해 설명합니다.
Parameter | 도구 | 기본값 | 설명 |
|---|---|---|---|
|
|
|
|
|
|
| 찾기 또는 애그리게이션 도구 호출이 반환할 수 있는 최대 페이로드입니다.
|
메모리 오버플로 동작
커서 MongoDB 에서 문서를 읽는 동안 구성된 제한 중 하나라도 도달하면 MongoDB MCP 서버 추가 문서 가져오기를 중지하고 수집된 부분 결과 설정하다 반환합니다.
모든 문서를 가져오기 전에 구성된 메모리 또는 문서 제한에 도달하면 요청한 것보다 더 적은 문서를 수신할 수 있습니다. 다음을 수행해야 할 수도 있습니다.
조정된 매개변수를 사용하여 후속 호출을 실행합니다.
LLM으로 반환되는 데이터의 양을 줄입니다. 예시 를 들어, 집계 단계를 사용합니다.