몽고DB 렌즈
 
 
 
MongoDB Lens는 LLM을 통해 자연어를 사용하여 MongoDB 데이터베이스에 모든 기능에 액세스할 수 있는 로컬 MCP(Model Context Protocol) 서버로, 쿼리를 수행하고, 집계를 실행하고, 성능을 최적화하는 등의 작업을 수행합니다.
내용물
빠른 시작
- MongoDB 렌즈 설치 
- MongoDB 렌즈 구성 
- MCP 클라이언트 설정 (예: Claude Desktop , Cursor 등) 
- 자연어 쿼리를 사용하여 MongoDB 데이터베이스를 탐색하세요 
특징
도구
- add-connection-alias: 새로운 MongoDB 연결 별칭을 추가합니다.
- aggregate-data: 집계 파이프라인 실행
- analyze-query-patterns: 라이브 쿼리를 분석하고 최적화를 제안합니다.
- analyze-schema: 컬렉션 스키마를 자동으로 추론합니다.
- bulk-operations: 여러 작업을 효율적으로 수행합니다(파괴 작업의 경우 확인이 필요함 )
- clear-cache: 최신 데이터를 보장하기 위해 메모리 캐시를 지웁니다.
- collation-query: 언어별 정렬 규칙이 있는 문서 찾기
- compare-schemas: 두 컬렉션 간의 스키마를 비교합니다.
- connect-mongodb: 다른 MongoDB URI에 연결
- connect-original: 시작 시 사용된 원래 MongoDB URI로 다시 연결합니다.
- count-documents: 지정된 기준과 일치하는 문서 수 계산
- create-collection: 사용자 정의 옵션으로 새 컬렉션을 만듭니다.
- create-database로 전환할 수 있는 옵션을 사용하여 새 데이터베이스를 생성합니다.
- create-index: 성능 최적화를 위한 새로운 인덱스 생성
- create-timeseries: 시간 데이터에 대한 시계열 컬렉션을 생성합니다.
- create-user: 특정 역할을 가진 새로운 데이터베이스 사용자를 생성합니다.
- current-database: 현재 데이터베이스 컨텍스트를 표시합니다.
- delete-document: 지정된 기준과 일치하는 문서를 삭제합니다( 확인 필요 )
- distinct-values: 모든 필드에 대해 고유한 값을 추출합니다.
- drop-collection: 데이터베이스에서 컬렉션을 제거합니다( 확인 필요 )
- drop-database: 데이터베이스 삭제 ( 확인 필요 )
- drop-index: 컬렉션에서 인덱스를 제거합니다( 확인 필요 )
- explain-query: 쿼리 실행 계획 분석
- export-data: 쿼리 결과를 JSON 또는 CSV 형식으로 내보내기
- find-documents: 필터, 프로젝션 및 정렬을 사용하여 쿼리 실행
- generate-schema-validator: JSON 스키마 검증기 생성
- geo-query: 다양한 연산자를 사용하여 지리공간 쿼리를 수행합니다.
- get-stats: 데이터베이스 또는 컬렉션 통계 검색
- gridfs-operation: GridFS 버킷으로 대용량 파일 관리
- insert-document: 컬렉션에 하나 이상의 문서를 삽입합니다.
- list-collections: 현재 데이터베이스의 컬렉션을 탐색합니다.
- list-connections: 사용 가능한 모든 MongoDB 연결 별칭 보기
- list-databases: 접근 가능한 모든 데이터베이스 보기
- rename-collection: 기존 컬렉션의 이름을 바꿉니다(대상을 삭제할 때 확인이 필요합니다 )
- shard-status: 데이터베이스 및 컬렉션에 대한 샤딩 구성 보기
- text-search: 텍스트 인덱스 필드에서 전체 텍스트 검색을 수행합니다.
- transaction: 단일 ACID 트랜잭션에서 여러 작업을 실행합니다.
- update-document: 지정된 기준과 일치하는 문서를 업데이트합니다.
- use-database: 특정 데이터베이스 컨텍스트로 전환
- validate-collection: 데이터 불일치를 확인합니다.
- watch-changes: 컬렉션의 실시간 변경 사항을 모니터링합니다.
자원
- collection-indexes: 컬렉션의 인덱스 정보
- collection-schema: 컬렉션에 대한 스키마 정보
- collection-stats: 컬렉션의 성능 통계
- collection-validation: 컬렉션에 대한 유효성 검사 규칙
- collections: 현재 데이터베이스의 컬렉션 목록
- database-triggers: 데이터베이스 변경 스트림 및 이벤트 트리거 구성
- database-users: 현재 데이터베이스의 데이터베이스 사용자 및 역할
- databases: 접근 가능한 모든 데이터베이스 목록
- performance-metrics: 실시간 성능 지표 및 프로파일링 데이터
- replica-status: 복제본 세트 상태 및 구성
- server-status: 서버 상태 정보
- stored-functions: 현재 데이터베이스에 저장된 JavaScript 함수
프롬프트
- aggregation-builder: 집계 파이프라인의 단계별 생성
- backup-strategy: 맞춤형 백업 및 복구 권장 사항
- data-modeling: 특정 사용 사례를 위한 MongoDB 스키마 설계에 대한 전문가 조언
- database-health-check: 포괄적인 데이터베이스 상태 평가 및 권장 사항
- index-recommendation: 쿼리 패턴을 기반으로 개인화된 인덱스 제안을 받습니다.
- migration-guide: 단계별 MongoDB 버전 마이그레이션 계획
- mongo-shell: 설명과 함께 MongoDB 셸 명령 생성
- multi-tenant-design: MongoDB 멀티 테넌트 데이터베이스 아키텍처 설계
- query-builder: MongoDB 쿼리를 구성하기 위한 대화형 가이드
- query-optimizer: 느린 쿼리에 대한 최적화 권장 사항
- schema-analysis: 권장 사항을 포함한 자세한 컬렉션 스키마 분석
- schema-versioning: MongoDB 애플리케이션에서 스키마 진화 관리
- security-audit: 데이터베이스 보안 분석 및 개선 권장 사항
- sql-to-mongodb: SQL 쿼리를 MongoDB 집계 파이프라인으로 변환
기타 기능
기타 기능: 개요
MongoDB Lens에는 다음과 같은 다양한 기능이 포함되어 있습니다.
- 구성 파일 : - ~/.mongodb-lens.[jsonc|json]통한 사용자 정의 구성
- Env Var Overrides : - process.env.CONFIG_*를 통해 구성 설정을 재정의합니다.
- 확인 시스템 : 파괴적 작업에 대한 2단계 검증 
- 다중 연결 : 명명된 URI 별칭을 정의하고 전환합니다. 
- 구성 요소 비활성화 : 도구, 프롬프트 또는 리소스를 선택적으로 비활성화합니다. 
- 연결 복원력 : 지수 백오프를 통한 자동 재연결 
- 쿼리 보호 : 구성 가능한 제한 및 성능 보호 
- 오류 처리 : 포괄적인 JSONRPC 오류 코드 및 메시지 
- 스키마 추론 : 지능형 샘플링을 통한 효율적인 스키마 분석 
- 자격 증명 보호 : 로그에서 연결 문자열 암호 난독화 
- 메모리 관리 : 대규모 작업에 대한 자동 모니터링 및 정리 
- 스마트 캐싱 : 스키마, 인덱스, 필드 및 컬렉션에 대한 최적화된 캐싱 
- 이전 버전과의 호환성 : 최신 및 레거시 MongoDB 버전 모두 지원 
기타 기능: 새로운 데이터베이스 메타데이터
MongoDB Lens는 생성하는 각 데이터베이스에 metadata 컬렉션을 삽입합니다.
이 metadata 컬렉션은 컨텍스트 정보가 포함된 단일 문서를 저장하여 데이터베이스의 출처에 대한 영구 기록으로 사용되며, 새롭고 비어 있는 데이터베이스가 MongoDB의 저장 시스템에 계속 유지되도록 보장합니다.
지엑스피1
새 데이터베이스에 자체 컬렉션을 추가한 후에는 drop-collection 도구를 사용하여 metadata 컬렉션을 안전하게 제거할 수 있습니다.
- "새 데이터베이스의 메타데이터 컬렉션 삭제" ➥ - drop-collection도구 사용(확인 포함)
설치
MongoDB Lens는 여러 가지 방법으로 설치하고 실행할 수 있습니다.
설치: NPX
MongoDB Lens를 실행하는 가장 쉬운 방법은 NPX를 사용하는 것입니다.
먼저, Node.js가 설치되어 있는지 확인하세요.
그런 다음 NPX를 통해 MongoDB Lens를 실행합니다.
npx 에서 권한 오류가 발생하면 npx -y mongodb-lens 실행하기 전에 npx clear-npx-cache 실행해 보세요(이렇게 하면 캐시가 지워지고 패키지가 다시 다운로드됩니다).
설치: Docker Hub
[!참고] Docker Hub를 사용하려면 시스템에 Docker가 설치되어 실행 중이어야 합니다.
먼저 Docker가 설치되어 있는지 확인하세요.
그런 다음 Docker Hub를 통해 MongoDB Lens를 실행합니다.
설치: 소스에서 Node.js 설치
- MongoDB Lens 저장소를 복제합니다. git clone https://github.com/furey/mongodb-lens.git
- 복제된 저장소 디렉토리로 이동합니다. cd /path/to/mongodb-lens
- Node.js가 설치되어 있는지 확인하세요. node --version # Ideally >= v22.x but MongoDB Lens is >= v18.x compatible
- Node.js 종속성을 설치하세요. npm ci
- 서버를 시작합니다: # Using default connection string mongodb://localhost:27017 node mongodb-lens.js # Using custom connection string node mongodb-lens.js mongodb://your-connection-string
설치: 소스에서 Docker 설치
소스에서 Docker를 사용하려면 시스템에Docker가 설치되어 실행 중이어야 합니다.
- MongoDB Lens 저장소를 복제합니다. git clone https://github.com/furey/mongodb-lens.git
- 복제된 저장소 디렉토리로 이동합니다. cd /path/to/mongodb-lens
- Docker가 설치되어 있는지 확인하세요. docker --version # Ideally >= v27.x
- Docker 이미지를 빌드합니다. docker build -t mongodb-lens .
- 컨테이너를 실행합니다. # Using default connection string mongodb://localhost:27017 docker run --rm -i --network=host mongodb-lens # Using custom connection string docker run --rm -i --network=host mongodb-lens mongodb://your-connection-string
설치 검증
설치를 확인하려면 다음 JSONRPC 메시지를 서버의 stdio에 붙여넣고 실행하세요.
서버는 다음과 같이 MongoDB 인스턴스의 데이터베이스 목록으로 응답해야 합니다.
이제 MongoDB Lens가 설치되었으며 MCP 요청을 수락할 준비가 되었습니다.
설치: 이전 MongoDB 버전
MongoDB 인스턴스의 버전이 < 4.0 경우, 최신 버전의 MongoDB Lens에서 사용하는 MongoDB Node.js 드라이버는 호환되지 않습니다. 특히, MongoDB Node.js 드라이버 버전 4.0.0 이상을 사용하려면 MongoDB 버전 4.0 이상이 필요합니다.
이전 MongoDB 인스턴스에서 MongoDB Lens를 사용하려면 3.x 시리즈의 MongoDB Node.js 드라이버 버전(예: MongoDB 3.6 과 호환되는 3.7.4 )을 사용해야 합니다.
이전 MongoDB 버전: 소스에서 실행
- MongoDB Lens 저장소를 복제합니다. git clone https://github.com/furey/mongodb-lens.git
- 복제된 저장소 디렉토리로 이동합니다. cd /path/to/mongodb-lens
- package.json수정합니다:"dependencies": { ... - "mongodb": "^6.15.0", // Or whatever newer version is listed + "mongodb": "^3.7.4", // Or whatever 3.x version is compatible with your older MongoDB instance ... }
- Node.js 종속성을 설치하세요. npm install
- MongoDB Lens 시작: node mongodb-lens.js mongodb://older-mongodb-instance
이렇게 하면 MongoDB 인스턴스와 호환되는 이전 드라이버 버전이 사용됩니다.
useNewUrlParser 및 useUnifiedTopology MongoDB 구성 옵션을 다시 추가하려면 이 커밋을 되돌려야 할 수도 있습니다.
이전 MongoDB 버전: NPX 또는 Docker 사용
NPX 또는 Docker를 사용하려면 호환 드라이버와 함께 게시된 이전 버전의 MongoDB Lens를 사용해야 합니다.
예를 들어, MongoDB Lens 8.3.0 MongoDB Node.js 드라이버 3.7.4 사용합니다(참조: package-lock.json ).
NPX를 사용하여 이전 버전의 MongoDB Lens를 실행하려면 버전 태그를 지정하세요.
Docker의 경우도 마찬가지입니다.
구성
구성: MongoDB 연결 문자열
서버는 MongoDB 연결 문자열을 유일한 인수로 허용합니다.
NPX 사용 예:
MongoDB 연결 문자열의 형식은 다음과 같습니다.
연결 문자열 예:
- 로컬 연결: - mongodb://localhost:27017
- admin데이터베이스의 자격 증명을 사용하여- mydatabase에 연결합니다:- mongodb://username:password@hostname:27017/mydatabase?authSource=admin
- 다양한 다른 옵션을 사용하여 - mydatabase에 연결합니다:- mongodb://hostname:27017/mydatabase?retryWrites=true&w=majority
연결 문자열이 제공되지 않으면 서버는 로컬 연결을 통해 연결을 시도합니다.
구성: 구성 파일
MongoDB Lens는 JSON 구성 파일을 통해 광범위한 사용자 정의를 지원합니다.
구성 파일은 선택 사항입니다. 구성 파일을 제공하지 않으면 MongoDB Lens는 기본 설정으로 실행됩니다.
구성 파일에는 사용자 정의하려는 설정만 포함하면 됩니다. MongoDB Lens는 생략된 값에 대해 기본 설정을 사용합니다.
MongoDB Lens는.json 및 .jsonc (주석이 포함된 JSON) 구성 파일 형식을 모두 지원합니다.
기본적으로 MongoDB Lens는 다음 위치에서 구성 파일을 찾습니다.
- ~/.mongodb-lens.jsonc먼저 사용한 다음 다음으로 돌아갑니다.
- ~/.mongodb-lens.json이 존재하지 않는 경우
구성 파일 경로를 사용자 지정하려면 환경 변수 CONFIG_PATH 원하는 파일 경로로 설정합니다.
NPX 사용 예:
Docker Hub 사용 예:
구성: 구성 파일 생성
config:create 스크립트를 사용하여 자동으로 구성 파일을 생성할 수 있습니다.
이 스크립트는 위의 예제 구성 파일을 추출하여 ~/.mongodb-lens.jsonc 에 저장합니다.
구성 파일 생성: 사용자 정의 경로
CONFIG_PATH 환경 변수를 사용하여 사용자 정의 출력 위치를 지정할 수 있습니다.
- CONFIG_PATH파일 확장자가 없으면 디렉토리로 처리되고- .mongodb-lens.jsonc추가됩니다.
- CONFIG_PATH``.json(- .jsonc아님)으로 끝나면 생성된 파일에서 주석이 제거됩니다.
NPX 사용 예:
Node.js 사용 예:
구성: 다중 MongoDB 연결
MongoDB Lens는 구성 파일 에서 별칭을 사용하여 여러 MongoDB URI를 지원하므로 간단한 이름을 사용하여 여러 MongoDB 인스턴스 간에 쉽게 전환할 수 있습니다.
여러 연결을 구성하려면 mongoUri 구성 설정을 별칭-URI 쌍이 있는 개체로 설정합니다.
이 구성을 사용하면:
- 목록의 첫 번째 URI(예: - main)가 시작 시 기본 연결이 됩니다.
- 자연어를 사용하여 연결을 전환할 수 있습니다: - "Connect to backup"또는- "Connect to atlas"
- 원래 구문은 여전히 작동합니다: - "Connect to mongodb://localhost:27018"
- list-connections도구는 사용 가능한 모든 연결 별칭을 표시합니다.
명령줄 인수를 사용하여 연결을 지정하는 경우 전체 MongoDB URI나 구성 파일에 정의된 별칭을 사용할 수 있습니다.
런타임에 연결 별칭을 추가하려면add-connection-alias 도구를 사용하세요.
구성: 환경 변수 재정의
MongoDB Lens는 구성 설정에 대한 환경 변수 재정의를 지원합니다.
환경 변수는 구성 파일 설정보다 우선합니다.
Config 환경 변수는 다음 명명 패턴을 따릅니다.
예제 재정의:
| 구성 설정 | 환경 변수 재정의 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
환경 변수 값의 경우:
- 부울 설정의 경우 문자열 값 - 'true'또는- 'false'사용합니다.
- 숫자 설정에는 문자열 표현을 사용하세요. 
- 중첩된 객체나 배열의 경우 JSON 문자열을 사용하세요. 
NPX 사용 예:
Docker Hub 사용 예:
구성: 크로스 플랫폼 환경 변수
Windows, macOS, Linux에서 일관된 환경 변수를 사용하려면 cross-env 사용하는 것이 좋습니다.
- 전역적으로 cross-env를 설치합니다. # Using NPM npm install -g cross-env # Using Volta (see: https://volta.sh) volta install cross-env
- 이 문서의 예시에서 NPX 또는 Node.js 환경 변수에 접두사를 붙입니다. # Example NPX usage with cross-env cross-env CONFIG_DEFAULTS_QUERY_LIMIT='25' npx -y mongodb-lens@latest # Example Node.js usage with cross-env cross-env CONFIG_DEFAULTS_QUERY_LIMIT='25' node mongodb-lens.js
클라이언트 설정
클라이언트 설정: Claude Desktop
Claude Desktop에서 MongoDB Lens를 사용하려면:
- claude_desktop_config.json엽니다(존재하지 않으면 만듭니다).- macOS: - ~/Library/Application Support/Claude/claude_desktop_config.json
- Windows: - %APPDATA%\Claude\claude_desktop_config.json
 
- 구성 옵션 에 따라 MongoDB Lens 서버 구성을 추가합니다. 
- Claude Desktop을 다시 시작하세요 
- Claude와 MongoDB 데이터에 대한 대화를 시작하세요 
Claude Desktop 구성 옵션
각 옵션에 대해:
- mongodb://your-connection-stringMongoDB 연결 문자열로 바꾸거나 생략하여 기본- mongodb://localhost:27017사용합니다.
- 사용자 정의 구성 파일을 사용하려면 - CONFIG_PATH환경 변수를 설정하세요.
- 환경 변수를 포함하려면: - NPX 또는 Node.js의 경우 키-값 쌍을 사용하여 - "env": {}를 추가합니다. 예:"command": "/path/to/npx", "args": [ "-y", "mongodb-lens@latest", "mongodb://your-connection-string" ], "env": { "CONFIG_LOG_LEVEL": "verbose" }
- Docker의 경우 - -e플래그를 추가합니다. 예:"command": "docker", "args": [ "run", "--rm", "-i", "--network=host", "--pull=always", "-e", "CONFIG_LOG_LEVEL=verbose", "furey/mongodb-lens", "mongodb://your-connection-string" ]
 
옵션 1: NPX(권장)
옵션 2: Docker Hub 이미지
옵션 3: 로컬 Node.js 설치
옵션 4: 로컬 Docker 이미지
클라이언트 설정: MCP Inspector
MCP Inspector는 MCP 서버를 테스트하고 디버깅하도록 설계된 도구입니다.
MCP Inspector는 포트 3000에서 프록시 서버를 시작하고 포트 5173에서 웹 클라이언트를 시작합니다.
NPX 사용 예:
- MCP 검사기 실행: # Using default connection string mongodb://localhost:27017 npx -y @modelcontextprotocol/inspector npx -y mongodb-lens@latest # Using custom connection string npx -y @modelcontextprotocol/inspector npx -y mongodb-lens@latest mongodb://your-connection-string # Using custom ports SERVER_PORT=1234 CLIENT_PORT=5678 npx -y @modelcontextprotocol/inspector npx -y mongodb-lens@latest
- MCP 검사기 열기: http://localhost:5173 
MCP Inspector는 컬렉션 이름과 쿼리 필드에 대한 자동 완성을 포함하여 MongoDB Lens 기능의 전체 범위를 지원해야 합니다.
자세한 내용은 MCP Inspector를 참조하세요.
클라이언트 설정: 다른 MCP 클라이언트
MongoDB Lens는 모든 MCP 호환 클라이언트에서 사용할 수 있습니다.
자세한 내용은 MCP 문서: 예제 클라이언트를 참조하세요.
데이터 보호
MongoDB Lens를 사용하는 동안 데이터를 보호하려면 다음 사항을 고려하세요.
데이터 보호: 읽기 전용 사용자 계정
MongoDB Lens를 데이터베이스에 연결할 때, MongoDB 연결 문자열에서 사용자에게 부여된 권한에 따라 수행 가능한 작업이 결정됩니다. 사용 사례에 적합한 경우, 읽기 전용 사용자는 의도치 않은 쓰기나 삭제를 방지하여 MongoDB Lens가 데이터를 쿼리할 수는 있지만 변경할 수는 없도록 할 수 있습니다.
이를 설정하려면 대상 데이터베이스로 범위가 설정된 read 역할을 가진 사용자를 생성하세요. MongoDB 셸에서 다음과 같이 실행하세요.
그런 다음 해당 자격 증명을 MongoDB 연결 문자열에 적용합니다.
읽기 전용 자격 증명을 사용하는 것은 보안 경계를 강화하는 간단하면서도 효과적인 방법이며, 특히 스키마를 탐색하거나 임시 쿼리를 실행할 때 유용합니다.
데이터 보호: 데이터베이스 백업 작업
MongoDB Lens를 사용할 때는 별도의 MongoDB 인스턴스에 호스팅된 데이터의 백업 사본에 연결하는 것을 고려하세요.
mongodump 사용하여 백업을 생성합니다. 다음으로, 새로운 MongoDB 인스턴스(예: 27018 과 같은 다른 포트)를 실행하고 mongorestore 사용하여 백업을 복원합니다. 실행되면 MongoDB Lens가 백업 인스턴스의 연결 문자열(예: mongodb://localhost:27018/mydatabase )을 가리키도록 설정합니다.
이 접근 방식을 사용하면 라이브 데이터가 실수로 손상될 위험 없이 복잡하거나 파괴적인 작업을 테스트할 수 있는 샌드박스를 얻을 수 있습니다.
데이터 보호: 데이터 흐름 고려 사항
데이터 흐름 고려 사항: 데이터가 시스템을 통해 흐르는 방식
Claude Desktop을 통한 Anthropic과 같은 원격 LLM 공급자와 함께 MCP 서버를 사용하는 경우, 데이터가 시스템을 통해 어떻게 흐르는지 이해하는 것이 민감한 정보가 의도치 않게 노출되는 것을 방지하는 데 중요합니다.
MCP 클라이언트를 통해 MongoDB 관련 쿼리를 보내면 다음과 같은 일이 발생합니다.
이 예제에서는 로컬 MongoDB 인스턴스를 사용하지만 동일한 원칙이 원격 MongoDB 인스턴스에도 적용됩니다.
- 요청을 제출합니다➥ 예: "30세 이상 모든 사용자 표시" 
- 귀하의 클라이언트가 원격 LLM에 요청을 보냅니다. LLM 제공자는 귀하의 정확한 단어와 함께 사용 가능한 MCP 도구 및 해당 매개변수 목록을 받습니다. 
- 원격 LLM은 귀하의 요청을 해석합니다. 귀하의 의도를 파악하고 클라이언트에게 적절한 매개변수를 갖춘 특정 MCP 도구를 사용하도록 지시합니다. 
- 클라이언트는 MongoDB Lens에 도구를 실행하도록 요청합니다. 이 작업은 stdio를 통해 로컬 컴퓨터에서 수행됩니다. 
- MongoDB Lens는 MongoDB 데이터베이스를 쿼리합니다. 
- MongoDB Lens는 MongoDB 쿼리 결과를 검색합니다. 
- MongoDB Lens가 데이터를 클라이언트로 다시 전송합니다. 클라이언트는 MongoDB Lens에 의해 포맷된 결과를 수신합니다. 
- 클라이언트는 원격 LLM에 데이터를 전달합니다. LLM 제공자는 MongoDB Lens가 반환한 정확한 데이터를 확인합니다. 
- 원격 LLM은 데이터를 처리합니다. 결과를 추가로 요약하거나 형식화할 수 있습니다. 
- 원격 LLM이 클라이언트에게 최종 응답을 보냅니다. 클라이언트가 답변을 표시합니다. 
원격 LLM 제공자는 MongoDB Lens의 원래 요청과 전체 응답을 모두 확인합니다. 데이터베이스에 민감한 필드(예: 비밀번호, 개인 정보 등)가 포함된 경우, 사전 예방 조치를 취하지 않으면 이러한 데이터가 의도치 않게 원격 제공자에게 전송될 수 있습니다.
데이터 흐름 고려 사항: 프로젝션을 통한 민감한 데이터 보호
민감한 데이터가 원격 LLM 공급자에게 전송되는 것을 방지하려면 find-documents , aggregate-data 또는 export-data 와 같은 도구를 사용할 때 프로젝션 개념을 활용하세요. 프로젝션을 사용하면 쿼리 결과에 포함하거나 제외할 필드를 지정하여 민감한 정보가 로컬에 유지되도록 할 수 있습니다.
투영 사용 예:
- "30세 이상의 모든 사용자를 표시하지만, 프로젝션을 사용하여 비밀번호를 숨깁니다." ➥ 프로젝션과 함께 - find-documents도구를 사용합니다.
데이터 흐름 고려 사항: 연결 별칭 및 암호
add-connection-alias 도구를 사용하여 새 연결 별칭을 추가할 때, 원격 LLM 공급자를 사용하는 경우 비밀번호가 포함된 URI에 별칭을 추가하지 마십시오. 요청이 LLM으로 전송되므로 URI의 비밀번호가 노출될 수 있습니다. 대신 MongoDB Lens 구성 파일 에서 비밀번호가 포함된 별칭을 정의하십시오. 이 경우 별칭은 로컬에 유지되며 LLM으로 전송되지 않습니다.
데이터 흐름 고려 사항: 최대 안전을 위한 로컬 설정
이 문서의 범위는 아니지만, 최고 수준의 데이터 개인정보 보호를 위해 로컬 MCP 클라이언트와 로컬 호스팅 LLM 모델을 함께 사용하는 것을 고려해 보세요. 이 접근 방식은 모든 요청과 데이터를 로컬 환경 내에 유지하여 민감한 정보가 원격 제공업체로 전송될 위험을 제거합니다.
데이터 보호: 파괴적 작업에 대한 확인
MongoDB Lens는 잠재적으로 파괴적인 작업에 대한 토큰 기반 확인 시스템을 구현하며, 검증되지 않은 데이터 손실을 초래할 수 있는 도구를 실행하기 위해 2단계 프로세스가 필요합니다.
- 첫 번째 도구 호출: 5분 후 만료되는 4자리 확인 토큰을 반환합니다. 
- 두 번째 도구 호출: 유효한 토큰이 제공된 경우 작업을 실행합니다. 
확인 프로세스의 예는 다음을 참조하세요. 확인 보호 작업
확인이 필요한 도구는 다음과 같습니다.
- drop-user: 데이터베이스 사용자 제거
- drop-index: 인덱스 제거(잠재적 성능 영향)
- drop-database: 데이터베이스를 영구적으로 삭제합니다.
- drop-collection: 컬렉션과 해당 컬렉션의 모든 문서를 삭제합니다.
- delete-document: 하나 또는 여러 개의 문서를 삭제합니다.
- bulk-operations: 삭제 작업을 포함할 때
- rename-collection: 대상 컬렉션이 존재하고 삭제될 때
이 보호 메커니즘은 오타나 의도치 않은 명령으로 인한 우발적인 데이터 손실을 방지하는 것을 목표로 합니다. 잠재적으로 위험한 작업을 진행하기 전에 그 결과를 인지할 수 있도록 하는 안전망입니다.
데이터 손실이 허용되는 통제된 환경에서 작업하는 경우 MongoDB Lens를 구성하여확인을 건너 뛰고 파괴적인 작업을 즉시 수행할 수 있습니다.
파괴적인 작업을 위한 확인 우회
토큰 확인 시스템을 우회하고 싶을 수도 있습니다.
확인 없이 파괴적인 작업을 즉시 실행하려면 환경 변수 CONFIG_DISABLE_DESTRUCTIVE_OPERATION_TOKENS true 로 설정합니다.
[!경고] 확인 토큰을 비활성화하면 중요한 보안 메커니즘이 제거됩니다. 이 옵션은 개발 또는 테스트 환경처럼 데이터 손실이 허용되는 통제된 환경에서만 사용하는 것이 좋습니다. 비활성화에 따른 모든 책임은 사용자에게 있습니다.
데이터 보호: 파괴적인 작업 비활성화
도구 비활성화
MongoDB Lens에는 데이터를 수정하거나 삭제할 수 있는 여러 도구가 포함되어 있습니다. 특정 도구를 비활성화하려면 설정 파일 의 disabled.tools 배열에 해당 도구를 추가하세요.
리소스와 프롬프트는disabled.resources 및 disabled.prompts 설정을 통해 비활성화할 수도 있습니다.
고위험 도구
다음 도구는 즉각적인 데이터 손실을 초래할 수 있으므로 민감한 환경에서는 비활성화를 고려해야 합니다.
- drop-user: 데이터베이스 사용자와 해당 액세스 권한을 제거합니다.
- drop-index: 인덱스를 제거합니다(쿼리 성능에 영향을 줄 수 있음)
- drop-database: 전체 데이터베이스를 영구적으로 삭제합니다.
- drop-collection: 컬렉션과 해당 문서를 모두 영구적으로 삭제합니다.
- delete-document: 지정된 기준과 일치하는 문서를 제거합니다.
- bulk-operations: 구성된 경우 일괄 삭제를 수행할 수 있습니다.
- rename-collection: 드롭 대상 옵션을 사용할 때 기존 컬렉션을 덮어쓸 수 있습니다.
중위험 도구
이러한 도구는 데이터를 수정할 수 있지만 일반적으로 즉각적인 데이터 손실을 일으키지는 않습니다.
- create-user: 추가 변경을 가능하게 하는 권한이 있는 사용자를 생성합니다.
- transaction: 트랜잭션에서 여러 작업을 실행합니다(복잡한 변경 가능성 있음)
- update-document: 기존 데이터를 덮어쓸 수 있는 문서를 업데이트합니다.
읽기 전용 구성
완전한 읽기 전용 구성의 경우 잠재적으로 파괴적인 도구를 모두 비활성화하세요.
이 구성을 사용하면 MongoDB Lens가 데이터를 수정하지 않고도 데이터를 쿼리하고 분석할 수 있어 실수로 데이터가 손실되는 것을 방지하는 다중 계층의 보호 기능을 제공합니다.
선택적 구성 요소 활성화
구성 요소를 비활성화하는 것 외에도 구성 파일 에서 enabled 설정을 사용하여 정확히 어떤 구성 요소를 활성화해야 하는지 지정하세요(다른 모든 구성 요소는 암묵적으로 비활성화).
[!중요] 구성 요소가
enabled목록과disabled목록에 모두 나타나는 경우enabled설정이 우선합니다.
지도 시간
다음 튜토리얼에서는 샘플 데이터로 MongoDB 컨테이너를 설정한 다음 MongoDB Lens를 사용하여 자연어 쿼리를 통해 컨테이너와 상호 작용하는 방법을 안내합니다.
튜토리얼: 1. 샘플 데이터 컨테이너 시작
이 튜토리얼에서는 시스템에Docker가 설치되어 실행 중이라고 가정합니다.
[!중요] Docker가 이미 포트 27017에서 컨테이너를 실행 중인 경우 계속 진행하기 전에 중지하세요.
- 샘플 데이터 컨테이너를 초기화합니다. docker run --name mongodb-sampledata -d -p 27017:27017 mongo:6
- 컨테이너가 문제 없이 실행되는지 확인하세요. docker ps | grep mongodb-sampledata
튜토리얼: 2. 샘플 데이터 가져오기
MongoDB는 MongoDB Lens를 탐색하는 데 사용할 수 있는 몇 가지 샘플 데이터 세트를 제공합니다.
- 샘플 데이터세트를 다운로드하세요: curl -LO https://atlas-education.s3.amazonaws.com/sampledata.archive
- 샘플 데이터 세트를 샘플 데이터 컨테이너에 복사합니다. docker cp sampledata.archive mongodb-sampledata:/tmp/
- 샘플 데이터 세트를 MongoDB로 가져옵니다. docker exec -it mongodb-sampledata mongorestore --archive=/tmp/sampledata.archive
이렇게 하면 여러 개의 데이터베이스가 가져옵니다.
- sample_airbnb: 에어비앤비 등록 및 리뷰
- sample_analytics: 고객 및 계정 데이터
- sample_geospatial: 지리 데이터
- sample_mflix: 영화 데이터
- sample_restaurants: 레스토랑 데이터
- sample_supplies: 공급망 데이터
- sample_training: 다양한 애플리케이션을 위한 학습 데이터
- sample_weatherdata: 날씨 측정값
튜토리얼: 3. MongoDB Lens 연결
빠른 시작 지침에 따라 MongoDB Lens를 설치합니다 .
MCP 클라이언트를 mongodb://localhost:27017 통해 MongoDB Lens에 연결하도록 설정하세요.
MCP 클라이언트 구성에서 연결 문자열을 생략하면 연결 문자열은 기본적으로mongodb://localhost:27017 로 설정됩니다.
튜토리얼: 4. 예제 쿼리
MCP 클라이언트를 실행하고 MongoDB Lens에 연결한 상태에서 다음 예제 쿼리를 시도해 보세요.
예제 쿼리: 기본 데이터베이스 작업
- "모든 데이터베이스 나열" ➥ - list-databases도구 사용
- "현재 어떤 DB를 사용하고 있나요?" ➥ - current-database도구를 사용합니다.
- "sample_mflix 데이터베이스로 전환" ➥ - use-database도구 사용
- "test_db라는 새 db를 만듭니다" ➥ - create-database도구를 사용합니다
- "analytics_db라는 또 다른 db를 생성하고 해당 db로 전환" ➥ switch=true로 - create-database도구를 사용합니다.
- "Drop test_db" ➥ - drop-database도구를 사용합니다(확인 포함)
예제 쿼리: 컬렉션 관리
- "현재 데이터베이스에는 어떤 컬렉션이 있나요?" ➥ - list-collections도구를 사용합니다.
- "user_logs 컬렉션 생성" ➥ - create-collection도구 사용
- "user_logs를 system_logs로 이름 바꾸기" ➥ - rename-collection도구 사용
- "Drop system_logs" ➥ - drop-collection도구 사용(확인 포함)
- "영화 컬렉션의 데이터 일관성을 확인하세요" ➥ - validate-collection도구를 사용합니다
예제 쿼리: 사용자 관리
- "분석을 위한 읽기 전용 사용자 만들기" ➥ - create-user도구 사용
- "inactive_user 계정 삭제" ➥ - drop-user도구 사용(확인 포함)
예제 쿼리: 데이터 쿼리
- "영화 컬렉션의 모든 문서 계산" ➥ - count-documents도구 사용
- "IMDB 평점이 가장 높은 상위 5개 영화 찾기" ➥ - find-documents도구 사용
- "10년 단위로 그룹화된 영화에 대한 집계 데이터를 보여주세요" ➥ - aggregate-data도구를 사용합니다
- "영화가 제작된 모든 고유한 국가 나열" ➥ - distinct-values도구 사용
- "제목에 대부가 포함된 영화 검색" ➥ - text-search도구 사용
- "적절한 정렬을 사용하여 성이 müller인 독일 사용자 찾기" ➥ - collation-query도구 사용
예제 쿼리: 스키마 분석
- "영화 컬렉션의 스키마 구조는 무엇입니까?" ➥ - analyze-schema도구를 사용합니다.
- "사용자 및 코멘트 스키마 비교" ➥ - compare-schemas도구 사용
- "영화 컬렉션에 대한 스키마 검증기 생성" ➥ - generate-schema-validator도구 사용
- "영화 컬렉션에 대한 일반적인 쿼리 패턴 분석" ➥ - analyze-query-patterns도구 사용
예제 쿼리: 데이터 수정
- "새 영화 문서 삽입: <필드 데이터>" ➥ - insert-document도구 사용
- "1994년 이후의 모든 영화를 업데이트하여 '클래식' 플래그를 추가합니다." ➥ - update-document도구를 사용합니다.
- "등급이 0인 모든 영화 삭제" ➥ - delete-document도구 사용(확인 포함)
- "영화 컬렉션에서 다음 대량 작업을 실행하세요: <JSON 데이터>" ➥ - bulk-operations도구 사용
배열 연산, 비트 연산 또는 기타 복잡한 업데이트와 같은 특수한 MongoDB 연산의 경우update-document 도구의 update 및 options 매개변수를 통해 MongoDB의 기본 연산자를 사용하세요.
예제 쿼리: 성과 및 인덱스 관리
- "영화 컬렉션의 제목 필드에 인덱스 만들기" ➥ - create-index도구 사용
- "ratings_idx 인덱스 삭제" ➥ - drop-index도구 사용(확인 포함)
- "1995년 영화를 찾기 위한 실행 계획을 설명하세요" ➥ - explain-query도구를 사용합니다
- "현재 db에 대한 통계 가져오기" ➥ target=database와 함께 - get-stats도구를 사용합니다.
- "영화 컬렉션에 대한 컬렉션 통계 표시" ➥ target=collection을 사용하여 - get-stats도구를 사용합니다.
예제 쿼리: 지리공간 및 특수 작업
- "sample_geospatial db로 전환한 다음 좌표 [-80.12, 26.46]에서 10km 이내의 모든 난파선을 찾습니다." ➥ - geo-query도구 사용
- "sample_analytics db로 전환한 다음, 계정 간 자금을 이동하기 위한 트랜잭션을 실행하세요: <계정 ID>" ➥ - transaction도구 사용
- "센서 판독값에 대한 시계열 컬렉션 만들기" ➥ - create-timeseries도구 사용
- "30초 동안 사용자 컬렉션의 변경 사항을 감시합니다" ➥ - watch-changes도구를 사용합니다
- "이미지 GridFS 버킷의 모든 파일 나열" ➥ operation=list와 함께 - gridfs-operation도구를 사용합니다.
예제 쿼리: 내보내기, 관리 및 기타 기능
- "sample_mflix db로 전환한 다음 'tomatoes.critic.rating'을 기준으로 상위 20개 영화를 제목, 연도 및 등급 필드가 포함된 CSV 형식으로 내보냅니다(단일 코드 블록으로 출력). ➥ - export-data도구 사용
- "sample_analytics db로 전환한 다음 샤딩 상태를 확인하세요" ➥ - shard-status도구 사용
- "컬렉션 캐시 지우기" ➥ target=collections로 - clear-cache도구를 사용합니다.
- "모든 캐시 지우기" ➥ - clear-cache도구를 사용합니다.
- "sample_weatherdata db로 전환한 다음 현재 상태에 대한 대화형 보고서를 생성합니다." ➥ 다양한 도구를 사용합니다. 
예제 쿼리: 연결 관리
- "mongodb://localhost:27018에 연결" ➥ - connect-mongodb도구를 사용합니다.
- "mongodb+srv://username: ➥ - connect-mongodb도구를 사용합니다.
- "원래 mongodb 인스턴스에 다시 연결" ➥ - connect-original도구를 사용합니다.
- "연결을 검증하지 않고 복제 세트에 연결: <복제 세트 세부 정보>" ➥ validateConnection=false로 - connect-mongodb도구를 사용합니다.
- "mongodb://username:password@prod-server:27017/mydb에 대한 연결 별칭 'prod' 추가" ➥ - add-connection-alias도구 사용
튜토리얼: 5. 확인 보호 작업
MongoDB Lens에는 잠재적으로 파괴적인 작업에 대한 안전 메커니즘이 포함되어 있습니다. 실제로 작동하는 방식은 다음과 같습니다.
- 컬렉션 삭제 요청: "Drop the collection named test_collection"
- MongoDB Lens는 경고 및 확인 토큰으로 응답합니다. ⚠️ DESTRUCTIVE OPERATION WARNING ⚠️ You've requested to drop the collection 'test_collection'. This operation is irreversible and will permanently delete all data in this collection. To confirm, you must type the 4-digit confirmation code EXACTLY as shown below: Confirmation code: 9876 This code will expire in 5 minutes for security purposes.
- 확인 토큰을 제출하여 작업을 확인하세요. "9876"
- MongoDB Lens는 다음 작업을 실행합니다. Collection 'test_collection' has been permanently deleted.
이 2단계 프로세스는 명확한 확인을 요구함으로써 실수로 인한 데이터 손실을 방지합니다.
데이터 손실이 허용되는 통제된 환경에서 작업하는 경우 MongoDB Lens를 구성하여확인을 건너 뛰고 파괴적인 작업을 즉시 수행할 수 있습니다.
테스트 스위트
MongoDB Lens에는 도구, 리소스 및 프롬프트에서 기능을 검증하는 테스트 모음이 포함되어 있습니다.
테스트 모음: 테스트 실행
테스트 모음에는 다음과 같이 설정할 수 있는 CONFIG_MONGO_URI 환경 변수가 필요합니다.
- MongoDB 연결 문자열(예: - mongodb://localhost:27017)
- mongodb-memory-server(메모리 내 테스트용)
편의를 위해 다음 스크립트를 사용하여 테스트를 실행할 수 있습니다.
테스트 모음은 테스트 완료 후 정리되는 임시 데이터베이스와 컬렉션을 생성합니다.
테스트 모음: 명령줄 옵션
| 옵션 | 설명 | 
| 
 | 실행하지 않고 사용 가능한 모든 테스트를 나열합니다. | 
| 
 | 이름(쉼표로 구분)으로 특정 테스트 실행 | 
| 
 | 특정 그룹의 모든 테스트 실행(쉼표로 구분) | 
| 
 | 패턴과 일치하는 테스트 실행(쉼표로 구분) | 
테스트 모음: 예제
부인 성명
MongoDB 렌즈:
- MIT 라이센스 에 따라 라이센스가 부여되었습니다. 
- MongoDB, Inc.와 제휴 관계가 없으며, MongoDB, Inc.의 보증을 받지 않습니다. 
- AI의 도움을 받아 작성되었으며 오류가 있을 수 있습니다. 
- 교육 및 실험 목적으로만 사용됩니다. 
- 있는 그대로 제공되며 어떠한 보증도 제공되지 않습니다. 사용자의 책임 하에 사용하시기 바랍니다. 
지원하다
MongoDB Lens가 도움이 되었다면 다음을 통해 저의 작업을 지원해 주세요.
여러분의 기여는 제가 이 도구를 지속적으로 개발하고 개선하는 데 도움이 되며, 이를 통해 새로운 기능을 추가하는 데 더 많은 시간을 할애할 수 있고 이 도구가 커뮤니티에 귀중한 리소스로 남을 수 있도록 할 수 있습니다.
Related MCP Servers
- Asecurity-licenseAqualityAn MCP server that enables users to create and manage MongoDB Atlas clusters, users, and network access through natural language commands.Last updated -62011MIT License
- -security-license-qualityAn MCP server that enables large language models to interact directly with MongoDB databases, allowing them to query collections, inspect schemas, and manage data through natural language.Last updated -109MIT License
- -security-license-qualityOpen source MCP server specializing in easy, fast, and secure tools for Databases.Last updated -11,234Apache 2.0
- -security-license-qualityMongoDB MCP Server by CDataLast updated -MIT License