hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Provides full featured access to MongoDB databases using natural language via LLMs to perform queries, run aggregations, optimize performance, and more. The server connects to MongoDB instances to allow exploration, querying, and management of databases, collections, and documents.
몽고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
: 컬렉션에서 인덱스를 제거합니다( 확인 필요 )drop-user
: 데이터베이스 사용자 제거( 확인 필요 )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
[!NOTE] NPX를 사용하려면 시스템에 Node.js가 설치되어 실행 중이어야 합니다(제안: Volta 사용).
MongoDB Lens를 실행하는 가장 쉬운 방법은 NPX를 사용하는 것입니다.
먼저, Node.js가 설치되어 있는지 확인하세요.
그런 다음 NPX를 통해 MongoDB Lens를 실행합니다.
[!TIP]
npx
에서 권한 오류가 발생하면npx -y mongodb-lens
실행하기 전에npx clear-npx-cache
실행해 보세요(이렇게 하면 캐시가 지워지고 패키지가 다시 다운로드됩니다).
설치: Docker Hub
[!참고] Docker Hub를 사용하려면 시스템에 Docker가 설치되어 실행 중이어야 합니다.
먼저 Docker가 설치되어 있는지 확인하세요.
그런 다음 Docker Hub를 통해 MongoDB Lens를 실행합니다.
설치: 소스에서 Node.js 설치
[!NOTE] 소스의 Node.js를 사용하려면 시스템에 Node.js 가 설치되어 실행 중이어야 합니다(제안: Volta 사용).
- MongoDB Lens 저장소를 복제합니다.Copy
- 복제된 저장소 디렉토리로 이동합니다.Copy
- Node.js가 설치되어 있는지 확인하세요.Copy
- Node.js 종속성을 설치하세요.Copy
- 서버를 시작합니다:Copy
설치: 소스에서 Docker 설치
[!NOTE] 소스에서 Docker를 사용하려면 시스템에 Docker가 설치되어 실행 중이어야 합니다.
- MongoDB Lens 저장소를 복제합니다.Copy
- 복제된 저장소 디렉토리로 이동합니다.Copy
- Docker가 설치되어 있는지 확인하세요.Copy
- Docker 이미지를 빌드합니다.Copy
- 컨테이너를 실행합니다.Copy
설치 검증
설치를 확인하려면 다음 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 저장소를 복제합니다.Copy
- 복제된 저장소 디렉토리로 이동합니다.Copy
package.json
수정합니다:Copy- Node.js 종속성을 설치하세요.Copy
- MongoDB Lens 시작:Copy
이렇게 하면 MongoDB 인스턴스와 호환되는 이전 드라이버 버전이 사용됩니다.
[!NOTE]
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 구성 파일을 통해 광범위한 사용자 정의를 지원합니다.
[!NOTE] 구성 파일은 선택 사항입니다. 구성 파일을 제공하지 않으면 MongoDB Lens는 기본 설정으로 실행됩니다.
[!TIP] 구성 파일에는 사용자 정의하려는 설정만 포함하면 됩니다. MongoDB Lens는 생략된 값에 대해 기본 설정을 사용합니다.
[!TIP] 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
도구는 사용 가능한 모든 연결 별칭을 표시합니다.
[!NOTE] 명령줄 인수를 사용하여 연결을 지정하는 경우 전체 MongoDB URI나 구성 파일에 정의된 별칭을 사용할 수 있습니다.
[!TIP] 런타임에 연결 별칭을 추가하려면
add-connection-alias
도구를 사용하세요.
구성: 환경 변수 재정의
MongoDB Lens는 구성 설정에 대한 환경 변수 재정의를 지원합니다.
환경 변수는 구성 파일 설정보다 우선합니다.
Config 환경 변수는 다음 명명 패턴을 따릅니다.
예제 재정의:
구성 설정 | 환경 변수 재정의 |
---|---|
mongoUri | CONFIG_MONGO_URI |
logLevel | CONFIG_LOG_LEVEL |
defaultDbName | CONFIG_DEFAULT_DB_NAME |
defaults.queryLimit | CONFIG_DEFAULTS_QUERY_LIMIT |
tools.export.defaultFormat | CONFIG_TOOLS_EXPORT_DEFAULT_FORMAT |
connectionOptions.maxPoolSize | CONFIG_CONNECTION_OPTIONS_MAX_POOL_SIZE |
connection.reconnectionRetries | CONFIG_CONNECTION_RECONNECTION_RETRIES |
환경 변수 값의 경우:
- 부울 설정의 경우 문자열 값
'true'
또는'false'
사용합니다. - 숫자 설정에는 문자열 표현을 사용하세요.
- 중첩된 객체나 배열의 경우 JSON 문자열을 사용하세요.
NPX 사용 예:
Docker Hub 사용 예:
구성: 크로스 플랫폼 환경 변수
Windows, macOS, Linux에서 일관된 환경 변수를 사용하려면 cross-env
사용하는 것이 좋습니다.
- 전역적으로 cross-env를 설치합니다.Copy
- 이 문서의 예시에서 NPX 또는 Node.js 환경 변수에 접두사를 붙입니다.Copy
클라이언트 설정
클라이언트 설정: Claude Desktop
Claude Desktop에서 MongoDB Lens를 사용하려면:
- Claude Desktop 설치
claude_desktop_config.json
엽니다(존재하지 않으면 만듭니다).- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
- 구성 옵션 에 따라 MongoDB Lens 서버 구성을 추가합니다.
- Claude Desktop을 다시 시작하세요
- Claude와 MongoDB 데이터에 대한 대화를 시작하세요
Claude Desktop 구성 옵션
각 옵션에 대해:
mongodb://your-connection-string
MongoDB 연결 문자열로 바꾸거나 생략하여 기본mongodb://localhost:27017
사용합니다.- 사용자 정의 구성 파일을 사용하려면
CONFIG_PATH
환경 변수를 설정하세요. - 환경 변수를 포함하려면:
- NPX 또는 Node.js의 경우 키-값 쌍을 사용하여
"env": {}
를 추가합니다. 예:Copy - Docker의 경우
-e
플래그를 추가합니다. 예:Copy
- NPX 또는 Node.js의 경우 키-값 쌍을 사용하여
옵션 1: NPX(권장)
옵션 2: Docker Hub 이미지
옵션 3: 로컬 Node.js 설치
옵션 4: 로컬 Docker 이미지
클라이언트 설정: MCP Inspector
MCP Inspector는 MCP 서버를 테스트하고 디버깅하도록 설계된 도구입니다.
[!NOTE] MCP Inspector는 포트 3000에서 프록시 서버를 시작하고 포트 5173에서 웹 클라이언트를 시작합니다.
NPX 사용 예:
- MCP 검사기 실행:Copy
- 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 관련 쿼리를 보내면 다음과 같은 일이 발생합니다.
[!NOTE] 이 예제에서는 로컬 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
: 대상 컬렉션이 존재하고 삭제될 때
이 보호 메커니즘은 오타나 의도치 않은 명령으로 인한 우발적인 데이터 손실을 방지하는 것을 목표로 합니다. 잠재적으로 위험한 작업을 진행하기 전에 그 결과를 인지할 수 있도록 하는 안전망입니다.
[!NOTE] 데이터 손실이 허용되는 통제된 환경에서 작업하는 경우 MongoDB Lens를 구성하여 확인을 건너 뛰고 파괴적인 작업을 즉시 수행할 수 있습니다.
파괴적인 작업을 위한 확인 우회
토큰 확인 시스템을 우회하고 싶을 수도 있습니다.
확인 없이 파괴적인 작업을 즉시 실행하려면 환경 변수 CONFIG_DISABLE_DESTRUCTIVE_OPERATION_TOKENS
true
로 설정합니다.
[!경고] 확인 토큰을 비활성화하면 중요한 보안 메커니즘이 제거됩니다. 이 옵션은 개발 또는 테스트 환경처럼 데이터 손실이 허용되는 통제된 환경에서만 사용하는 것이 좋습니다. 비활성화에 따른 모든 책임은 사용자에게 있습니다.
데이터 보호: 파괴적인 작업 비활성화
도구 비활성화
MongoDB Lens에는 데이터를 수정하거나 삭제할 수 있는 여러 도구가 포함되어 있습니다. 특정 도구를 비활성화하려면 설정 파일 의 disabled.tools
배열에 해당 도구를 추가하세요.
[!NOTE] 리소스와 프롬프트는
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. 샘플 데이터 컨테이너 시작
[!NOTE] 이 튜토리얼에서는 시스템에 Docker가 설치되어 실행 중이라고 가정합니다.
[!중요] Docker가 이미 포트 27017에서 컨테이너를 실행 중인 경우 계속 진행하기 전에 중지하세요.
- 샘플 데이터 컨테이너를 초기화합니다.Copy
- 컨테이너가 문제 없이 실행되는지 확인하세요.Copy
튜토리얼: 2. 샘플 데이터 가져오기
MongoDB는 MongoDB Lens를 탐색하는 데 사용할 수 있는 몇 가지 샘플 데이터 세트를 제공합니다.
- 샘플 데이터세트를 다운로드하세요:Copy
- 샘플 데이터 세트를 샘플 데이터 컨테이너에 복사합니다.Copy
- 샘플 데이터 세트를 MongoDB로 가져옵니다.Copy
이렇게 하면 여러 개의 데이터베이스가 가져옵니다.
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에 연결하도록 설정하세요.
[!TIP] 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
도구 사용
[!TIP] 배열 연산, 비트 연산 또는 기타 복잡한 업데이트와 같은 특수한 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: password@cluster.mongodb.net /mydb에 연결" ➥
connect-mongodb
도구를 사용합니다. - "원래 mongodb 인스턴스에 다시 연결" ➥
connect-original
도구를 사용합니다. - "연결을 검증하지 않고 복제 세트에 연결: <복제 세트 세부 정보>" ➥ validateConnection=false로
connect-mongodb
도구를 사용합니다. - "mongodb://username:password@prod-server:27017/mydb에 대한 연결 별칭 'prod' 추가" ➥
add-connection-alias
도구 사용
튜토리얼: 5. 확인 보호 작업
MongoDB Lens에는 잠재적으로 파괴적인 작업에 대한 안전 메커니즘이 포함되어 있습니다. 실제로 작동하는 방식은 다음과 같습니다.
- 컬렉션 삭제 요청:Copy
- MongoDB Lens는 경고 및 확인 토큰으로 응답합니다.Copy
- 확인 토큰을 제출하여 작업을 확인하세요.Copy
- MongoDB Lens는 다음 작업을 실행합니다.Copy
이 2단계 프로세스는 명확한 확인을 요구함으로써 실수로 인한 데이터 손실을 방지합니다.
[!NOTE] 데이터 손실이 허용되는 통제된 환경에서 작업하는 경우 MongoDB Lens를 구성하여 확인을 건너 뛰고 파괴적인 작업을 즉시 수행할 수 있습니다.
테스트 스위트
MongoDB Lens에는 도구, 리소스 및 프롬프트에서 기능을 검증하는 테스트 모음이 포함되어 있습니다.
테스트 모음: 테스트 실행
테스트 모음에는 다음과 같이 설정할 수 있는 CONFIG_MONGO_URI
환경 변수가 필요합니다.
- MongoDB 연결 문자열(예:
mongodb://localhost:27017
) mongodb-memory-server
(메모리 내 테스트용)
편의를 위해 다음 스크립트를 사용하여 테스트를 실행할 수 있습니다.
[!NOTE] 테스트 모음은 테스트 완료 후 정리되는 임시 데이터베이스와 컬렉션을 생성합니다.
테스트 모음: 명령줄 옵션
옵션 | 설명 |
---|---|
--list | 실행하지 않고 사용 가능한 모든 테스트를 나열합니다. |
--test=<n> | 이름(쉼표로 구분)으로 특정 테스트 실행 |
--group=<n> | 특정 그룹의 모든 테스트 실행(쉼표로 구분) |
--pattern=<glob> | 패턴과 일치하는 테스트 실행(쉼표로 구분) |
테스트 모음: 예제
부인 성명
MongoDB 렌즈:
- MIT 라이센스 에 따라 라이센스가 부여되었습니다.
- MongoDB, Inc.와 제휴 관계가 없으며, MongoDB, Inc.의 보증을 받지 않습니다.
- AI의 도움을 받아 작성되었으며 오류가 있을 수 있습니다.
- 교육 및 실험 목적으로만 사용됩니다.
- 있는 그대로 제공되며 어떠한 보증도 제공되지 않습니다. 사용자의 책임 하에 사용하시기 바랍니다.
지원하다
MongoDB Lens가 도움이 되었다면 다음을 통해 저의 작업을 지원해 주세요.
여러분의 기여는 제가 이 도구를 지속적으로 개발하고 개선하는 데 도움이 되며, 이를 통해 새로운 기능을 추가하는 데 더 많은 시간을 할애할 수 있고 이 도구가 커뮤니티에 귀중한 리소스로 남을 수 있도록 할 수 있습니다.
This server cannot be installed
MongoDB 데이터베이스 분석을 위한 모든 기능을 갖춘 MCP 서버입니다.
- Contents
- Quick Start
- Features
- Installation
- Configuration
- Client Setup
- Data Protection
- Tutorial
- Test Suite
- Disclaimer
- Support