MongoDB Lens
Servidor MCP completo para banco de dados MongoDB.
Documentação
MongoDB Lens
MongoDB Lens é um servidor local de Model Context Protocol (MCP) com acesso completo a bancos de dados MongoDB usando linguagem natural por meio de LLMs para realizar consultas, executar agregações, otimizar desempenho e muito mais.
Conteúdo
- Início Rápido
- Recursos
- Instalação
- Configuração
- Configuração do Cliente
- Proteção de Dados
- Tutorial
- Suíte de Testes
- Aviso Legal
- Suporte
Início Rápido
- Instale o MongoDB Lens
- Configure o MongoDB Lens
- Configure seu Cliente MCP (ex.: Claude Desktop, Cursor, etc.)
- Explore seus bancos de dados MongoDB com consultas em linguagem natural
Recursos
Ferramentas
add-connection-alias: Adicionar um novo alias de conexão MongoDBaggregate-data: Executar pipelines de agregaçãoanalyze-query-patterns: Analisar consultas em tempo real e sugerir otimizaçõesanalyze-schema: Inferir automaticamente esquemas de coleçõesbulk-operations: Executar múltiplas operações de forma eficiente (requer confirmação para operações destrutivas)clear-cache: Limpar caches de memória para garantir dados atualizadoscollation-query: Encontrar documentos com regras de collation específicas do idiomacompare-schemas: Comparar esquemas entre duas coleçõesconnect-mongodb: Conectar a uma URI MongoDB diferenteconnect-original: Reconectar à URI MongoDB original usada na inicializaçãocount-documents: Contar documentos que correspondem a critérios especificadoscreate-collection: Criar novas coleções com opções personalizadascreate-database: Criar um novo banco de dados com opção de alternar para elecreate-index: Criar novos índices para otimização de desempenhocreate-timeseries: Criar coleções de séries temporais para dados temporaiscreate-user: Criar novos usuários de banco de dados com funções específicascurrent-database: Mostrar o contexto atual do banco de dadosdelete-document: Excluir documentos que correspondem a critérios especificados (requer confirmação)distinct-values: Extrair valores únicos para qualquer campodrop-collection: Remover coleções do banco de dados (requer confirmação)drop-database: Excluir um banco de dados (requer confirmação)drop-index: Remover índices de coleções (requer confirmação)drop-user: Remover usuários de banco de dados (requer confirmação)explain-query: Analisar planos de execução de consultasexport-data: Exportar resultados de consultas em formato JSON ou CSVfind-documents: Executar consultas com filtros, projeções e ordenaçãogenerate-schema-validator: Gerar validadores de JSON Schemageo-query: Executar consultas geoespaciais com vários operadoresget-stats: Recuperar estatísticas de banco de dados ou coleçõesgridfs-operation: Gerenciar arquivos grandes com buckets GridFSinsert-document: Inserir um ou mais documentos em coleçõeslist-collections: Explorar coleções no banco de dados atuallist-connections: Visualizar todos os aliases de conexão MongoDB disponíveislist-databases: Visualizar todos os bancos de dados acessíveisrename-collection: Renomear coleções existentes (requer confirmação ao excluir destinos)shard-status: Visualizar configuração de sharding para bancos de dados e coleçõestext-search: Executar busca em texto completo em campos com índice de textotransaction: Executar múltiplas operações em uma única transação ACIDupdate-document: Atualizar documentos que correspondem a critérios especificadosuse-database: Alternar para um contexto de banco de dados específicovalidate-collection: Verificar inconsistências de dadoswatch-changes: Monitorar alterações em tempo real nas coleções
Recursos
collection-indexes: Informações de índices para uma coleçãocollection-schema: Informações de esquema para uma coleçãocollection-stats: Estatísticas de desempenho para uma coleçãocollection-validation: Regras de validação para uma coleçãocollections: Lista de coleções no banco de dados atualdatabase-triggers: Configuração de change streams e gatilhos de eventos do banco de dadosdatabase-users: Usuários e funções do banco de dados no banco de dados atualdatabases: Lista de todos os bancos de dados acessíveisperformance-metrics: Métricas de desempenho em tempo real e dados de profilingreplica-status: Status e configuração do conjunto de réplicasserver-status: Informações de status do servidorstored-functions: Funções JavaScript armazenadas no banco de dados atual
Prompts
aggregation-builder: Criação passo a passo de pipelines de agregaçãobackup-strategy: Recomendações personalizadas de backup e recuperaçãodata-modeling: Consultoria especializada em design de esquemas MongoDB para casos de uso específicosdatabase-health-check: Avaliação abrangente de saúde do banco de dados e recomendaçõesindex-recommendation: Obtenha sugestões personalizadas de índices com base em padrões de consultamigration-guide: Planos passo a passo de migração de versão do MongoDBmongo-shell: Gerar comandos de shell do MongoDB com explicaçõesmulti-tenant-design: Projetar arquitetura de banco de dados multi-tenant no MongoDBquery-builder: Orientação interativa para construir consultas MongoDBquery-optimizer: Recomendações de otimização para consultas lentasschema-analysis: Análise detalhada de esquema de coleções com recomendaçõesschema-versioning: Gerenciar evolução de esquemas em aplicações MongoDBsecurity-audit: Análise de segurança do banco de dados e recomendações de melhoriasql-to-mongodb: Converter consultas SQL em pipelines de agregação MongoDB
Outros Recursos
Outros Recursos: Visão Geral
O MongoDB Lens inclui diversos outros recursos:
- Arquivo de Configuração: Configuração personalizada via
~/.mongodb-lens.[jsonc|json] - Substituições por Variáveis de Ambiente: Substituir configurações via
process.env.CONFIG_* - Sistema de Confirmação: Verificação em duas etapas para operações destrutivas
- Múltiplas Conexões: Definir e alternar entre aliases de URI nomeados
- Desativação de Componentes: Desativar seletivamente ferramentas, prompts ou recursos
- Resiliência de Conexão: Reconexão automática com backoff exponencial
- Salvaguardas de Consulta: Limites configuráveis e proteções de desempenho
- Tratamento de Erros: Códigos e mensagens de erro JSONRPC abrangentes
- Inferência de Esquema: Análise eficiente de esquemas com amostragem inteligente
- Proteção de Credenciais: Ofuscação de senhas em strings de conexão nos logs
- Gerenciamento de Memória: Monitoramento e limpeza automáticos para operações grandes
- Cache Inteligente: Cache otimizado para esquemas, índices, campos e coleções
- Compatibilidade Retroativa: Suporte a versões modernas e legadas do MongoDB
Outros Recursos: Novos Metadados de Banco de Dados
O MongoDB Lens insere uma coleção metadata em cada banco de dados que cria.
Esta coleção metadata armazena um único documento contendo informações contextuais que servem como registro permanente da origem do banco de dados, garantindo ao mesmo tempo que o banco de dados novo e de outra forma vazio persista no sistema de armazenamento do MongoDB.
Exemplo de documento de metadados
{
"_id" : ObjectId("67d5284463788ec38aecee14"),
"created" : {
"timestamp" : ISODate("2025-03-15T07:12:04.705Z"),
"tool" : "MongoDB Lens v5.0.7",
"user" : "anonymous"
},
"mongodb" : {
"version" : "3.6.23",
"connectionInfo" : {
"host" : "unknown",
"readPreference" : "primary"
}
},
"database" : {
"name" : "example_database",
"description" : "Created via MongoDB Lens"
},
"system" : {
"hostname" : "unknown",
"platform" : "darwin",
"nodeVersion" : "v22.14.0"
},
"lens" : {
"version" : "5.0.7",
"startTimestamp" : ISODate("2025-03-15T07:10:06.084Z")
}
}
Depois de adicionar suas próprias coleções ao novo banco de dados, você pode remover com segurança a coleção metadata usando a ferramenta drop-collection:
- "Excluir a coleção de metadados do novo banco de dados"
➥ Usa a ferramentadrop-collection(com confirmação)
Instalação
O MongoDB Lens pode ser instalado e executado de várias maneiras:
- NPX (Mais fácil)
- Docker Hub
- Node.js a partir do Código Fonte
- Docker a partir do Código Fonte
- Verificação da Instalação
- Versões Antigas do MongoDB
Instalação: NPX
[!NOTE]
NPX requer Node.js instalado e em execução no seu sistema (sugestão: use Volta).
A maneira mais fácil de executar o MongoDB Lens é usando NPX.
Primeiro, certifique-se de que o Node.js está instalado:
node --version # Ideally >= v22.x but MongoDB Lens is >= v18.x compatible
Em seguida, execute o MongoDB Lens via NPX:
# Using default connection string mongodb://localhost:27017
npx -y mongodb-lens
# Using custom connection string
npx -y mongodb-lens mongodb://your-connection-string
# Using "@latest" to keep the package up-to-date
npx -y mongodb-lens@latest
[!TIP]
Se você encontrar erros de permissão comnpx, tente executarnpx clear-npx-cacheantes de executarnpx -y mongodb-lens(isso limpa o cache e baixa novamente o pacote).
Instalação: Docker Hub
[!NOTE]
Docker Hub requer Docker instalado e em execução no seu sistema.
Primeiro, certifique-se de que o Docker está instalado:
docker --version # Ideally >= v27.x
Em seguida, execute o MongoDB Lens via Docker Hub:
# Using default connection string mongodb://localhost:27017
docker run --rm -i --network=host furey/mongodb-lens
# Using custom connection string
docker run --rm -i --network=host furey/mongodb-lens mongodb://your-connection-string
# Using "--pull" to keep the Docker image up-to-date
docker run --rm -i --network=host --pull=always furey/mongodb-lens
Instalação: Node.js a partir do Código Fonte
[!NOTE]
Node.js a partir do código fonte requer Node.js instalado e em execução no seu sistema (sugestão: use Volta).
- Clone o repositório do MongoDB Lens:
git clone https://github.com/furey/mongodb-lens.git - Navegue até o diretório do repositório clonado:
cd /path/to/mongodb-lens - Certifique-se de que o Node.js está instalado:
node --version # Ideally >= v22.x but MongoDB Lens is >= v18.x compatible - Instale as dependências do Node.js:
npm ci - Inicie o servidor:
# Using default connection string mongodb://localhost:27017 node mongodb-lens.js # Using custom connection string node mongodb-lens.js mongodb://your-connection-string
Instalação: Docker a partir do Código Fonte
[!NOTE]
Docker a partir do código fonte requer Docker instalado e em execução no seu sistema.
- Clone o repositório do MongoDB Lens:
git clone https://github.com/furey/mongodb-lens.git - Navegue até o diretório do repositório clonado:
cd /path/to/mongodb-lens - Certifique-se de que o Docker está instalado:
docker --version # Ideally >= v27.x - Construa a imagem Docker:
docker build -t mongodb-lens . - Execute o contêiner:
# 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
Verificação da Instalação
Para verificar a instalação, cole e execute a seguinte mensagem JSONRPC no stdio do servidor:
{"method":"resources/read","params":{"uri":"mongodb://databases"},"jsonrpc":"2.0","id":1}
O servidor deve responder com uma lista de bancos de dados na sua instância MongoDB, por exemplo:
{"result":{"contents":[{"uri":"mongodb://databases","text":"Databases (12):\n- admin (180.00 KB)\n- config (108.00 KB)\n- local (40.00 KB)\n- sample_airbnb (51.88 MB)\n- sample_analytics (9.46 MB)\n- sample_geospatial (980.00 KB)\n- sample_guides (40.00 KB)\n- sample_mflix (108.90 MB)\n- sample_restaurants (7.73 MB)\n- sample_supplies (968.00 KB)\n- sample_training (40.85 MB)\n- sample_weatherdata (2.69 MB)"}]},"jsonrpc":"2.0","id":1}
O MongoDB Lens agora está instalado e pronto para aceitar solicitações MCP.
Instalação: Versões Antigas do MongoDB
Se você estiver se conectando a uma instância MongoDB com uma versão < 4.0, o driver Node.js do MongoDB usado pela versão mais recente do MongoDB Lens não será compatível. Especificamente, versões 4.0.0 e superiores do driver Node.js do MongoDB exigem a versão 4.0 ou superior do MongoDB.
Para usar o MongoDB Lens com instâncias MongoDB mais antigas, você precisa usar uma versão do driver Node.js do MongoDB da série 3.x (por exemplo, 3.7.4, que é compatível com MongoDB 3.6).
Versões Antigas do MongoDB: Executando a Partir do Código-Fonte
- Clone o repositório do MongoDB Lens:
git clone https://github.com/furey/mongodb-lens.git - Navegue até o diretório do repositório clonado:
cd /path/to/mongodb-lens - Modifique o
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 ... } - Instale as dependências do Node.js:
npm install - Inicie o MongoDB Lens:
node mongodb-lens.js mongodb://older-mongodb-instance
Isso usará a versão mais antiga do driver compatível com sua instância MongoDB.
[!NOTE]
Talvez você também precise reverter este commit para adicionar novamente as opções de configuração do MongoDBuseNewUrlParsereuseUnifiedTopology.
Versões Antigas do MongoDB: Usando NPX ou Docker
Se você preferir usar NPX ou Docker, precisará usar uma versão mais antiga do MongoDB Lens que foi publicada com um driver compatível.
Por exemplo, o MongoDB Lens 8.3.0 usa o driver Node.js do MongoDB 3.7.4 (veja: package-lock.json).
Para executar uma versão mais antiga do MongoDB Lens usando NPX, especifique a tag de versão:
npx -y mongodb-lens@8.3.0
Da mesma forma para Docker:
docker run --rm -i --network=host furey/mongodb-lens:8.3.0
Configuração
- String de Conexão MongoDB
- Arquivo de Configuração
- Geração do Arquivo de Configuração
- Múltiplas Conexões MongoDB
- Substituições por Variáveis de Ambiente
- Variáveis de Ambiente Multiplataforma
Configuração: String de Conexão MongoDB
O servidor aceita uma string de conexão MongoDB como seu único argumento.
Exemplo de uso com NPX:
npx -y mongodb-lens@latest mongodb://your-connection-string
As strings de conexão MongoDB têm o seguinte formato:
mongodb://[username:password@]host[:port][/database][?options]
Exemplos de strings de conexão:
- Conexão local:
mongodb://localhost:27017 - Conexão ao
mydatabasecom credenciais do banco de dadosadmin:
mongodb://username:password@hostname:27017/mydatabase?authSource=admin - Conexão ao
mydatabasecom várias outras opções:
mongodb://hostname:27017/mydatabase?retryWrites=true&w=majority
Se nenhuma string de conexão for fornecida, o servidor tentará se conectar via conexão local.
Configuração: Arquivo de Configuração
O MongoDB Lens suporta ampla personalização por meio de arquivo de configuração JSON.
[!NOTE]
O arquivo de configuração é opcional. O MongoDB Lens será executado com as configurações padrão se nenhum arquivo de configuração for fornecido.
[!TIP]
Você só precisa incluir as configurações que deseja personalizar no arquivo de configuração. O MongoDB Lens usará as configurações padrão para qualquer valor omitido.
[!TIP]
O MongoDB Lens suporta formatos de arquivo de configuração.jsone.jsonc(JSON com comentários).
Exemplo de arquivo de configuração
{
"mongoUri": "mongodb://localhost:27017", // Default MongoDB connection string or object of alias-URI pairs
"connectionOptions": {
"maxPoolSize": 20, // Maximum number of connections in the pool
"retryWrites": false, // Whether to retry write operations
"connectTimeoutMS": 30000, // Connection timeout in milliseconds
"socketTimeoutMS": 360000, // Socket timeout in milliseconds
"heartbeatFrequencyMS": 10000, // How often to ping servers for status
"serverSelectionTimeoutMS": 30000 // Timeout for server selection
},
"defaultDbName": "admin", // Default database if not specified in URI
"connection": {
"maxRetries": 5, // Maximum number of initial connection attempts
"maxRetryDelayMs": 30000, // Maximum delay between retries
"reconnectionRetries": 10, // Maximum reconnection attempts if connection lost
"initialRetryDelayMs": 1000 // Initial delay between retries
},
"disabled": {
"tools": [], // Array of tools to disable or true to disable all
"prompts": [], // Array of prompts to disable or true to disable all
"resources": [] // Array of resources to disable or true to disable all
},
"enabled": {
"tools": true, // Array of tools to enable or true to enable all
"prompts": true, // Array of prompts to enable or true to enable all
"resources": true // Array of resources to enable or true to enable all
},
"cacheTTL": {
"stats": 15000, // Stats cache lifetime in milliseconds
"fields": 30000, // Fields cache lifetime in milliseconds
"schemas": 60000, // Schema cache lifetime in milliseconds
"indexes": 120000, // Index cache lifetime in milliseconds
"collections": 30000, // Collections list cache lifetime in milliseconds
"serverStatus": 20000 // Server status cache lifetime in milliseconds
},
"enabledCaches": [ // List of caches to enable
"stats", // Statistics cache
"fields", // Collection fields cache
"schemas", // Collection schemas cache
"indexes", // Collection indexes cache
"collections", // Database collections cache
"serverStatus" // MongoDB server status cache
],
"memory": {
"enableGC": true, // Whether to enable garbage collection
"warningThresholdMB": 1500, // Memory threshold for warnings
"criticalThresholdMB": 2000 // Memory threshold for cache clearing
},
"logLevel": "info", // Log level (info or verbose)
"disableDestructiveOperationTokens": false, // Whether to skip confirmation for destructive ops
"watchdogIntervalMs": 30000, // Interval for connection monitoring
"defaults": {
"slowMs": 100, // Threshold for slow query detection
"queryLimit": 10, // Default limit for query results
"allowDiskUse": true, // Allow operations to use disk for large datasets
"schemaSampleSize": 100, // Sample size for schema inference
"aggregationBatchSize": 50 // Batch size for aggregation operations
},
"security": {
"tokenLength": 4, // Length of confirmation tokens
"tokenExpirationMinutes": 5, // Expiration time for tokens
"strictDatabaseNameValidation": true // Enforce strict database name validation
},
"tools": {
"transaction": {
"readConcern": "snapshot", // Read concern level for transactions
"writeConcern": {
"w": "majority" // Write concern for transactions
}
},
"bulkOperations": {
"ordered": true // Whether bulk operations execute in order
},
"export": {
"defaultLimit": -1, // Default limit for exports (-1 = no limit)
"defaultFormat": "json" // Default export format (json or csv)
},
"watchChanges": {
"maxDurationSeconds": 60, // Maximum duration for change streams
"defaultDurationSeconds": 10 // Default duration for change streams
},
"queryAnalysis": {
"defaultDurationSeconds": 10 // Default duration for query analysis
}
}
}
Por padrão, o MongoDB Lens procura o arquivo de configuração em:
~/.mongodb-lens.jsoncprimeiro e, em seguida, volta para~/.mongodb-lens.jsonse o primeiro não existir
Para personalizar o caminho do arquivo de configuração, defina a variável de ambiente CONFIG_PATH para o caminho do arquivo desejado.
Exemplo de uso com NPX:
CONFIG_PATH='/path/to/config.json' npx -y mongodb-lens@latest
Exemplo de uso com Docker Hub:
docker run --rm -i --network=host --pull=always -v /path/to/config.json:/root/.mongodb-lens.json furey/mongodb-lens
Configuração: Geração do Arquivo de Configuração
Você pode gerar um arquivo de configuração automaticamente usando o script config:create:
# NPX Usage (recommended)
npx -y mongodb-lens@latest config:create
# Node.js Usage
npm run config:create
# Force overwrite existing files
npx -y mongodb-lens@latest config:create -- --force
npm run config:create -- --force
Este script extrai o arquivo de configuração de exemplo acima e o salva em: ~/.mongodb-lens.jsonc
Geração do Arquivo de Configuração: Caminho Personalizado
Você pode especificar um local de saída personalizado usando a variável de ambiente CONFIG_PATH.
- Se
CONFIG_PATHnão tiver extensão de arquivo, será tratado como um diretório e.mongodb-lens.jsoncserá anexado - Se
CONFIG_PATHterminar com.json(não.jsonc), os comentários serão removidos do arquivo gerado
Exemplo de uso com NPX:
# With custom path
CONFIG_PATH=/path/to/config.jsonc npx -y mongodb-lens@latest config:create
# Save to directory (will append .mongodb-lens.jsonc to the path)
CONFIG_PATH=/path/to/directory npx -y mongodb-lens@latest config:create
# Save as JSON instead of JSONC
CONFIG_PATH=/path/to/config.json npx -y mongodb-lens@latest config:create
Exemplo de uso com Node.js:
# With custom path
CONFIG_PATH=/path/to/config.jsonc node mongodb-lens.js config:create
# Save to directory (will append .mongodb-lens.jsonc to the path)
CONFIG_PATH=/path/to/directory node mongodb-lens.js config:create
# Save as JSON instead of JSONC
CONFIG_PATH=/path/to/config.json node mongodb-lens.js config:create
Configuração: Múltiplas Conexões MongoDB
O MongoDB Lens suporta múltiplas URIs MongoDB com aliases no seu arquivo de configuração, permitindo que você alterne facilmente entre diferentes instâncias MongoDB usando nomes simples.
Para configurar múltiplas conexões, defina a configuração mongoUri como um objeto com pares alias-URI:
{
"mongoUri": {
"main": "mongodb://localhost:27017",
"backup": "mongodb://localhost:27018",
"atlas": "mongodb+srv://username:password@cluster.mongodb.net/mydb"
}
}
Com esta configuração:
- A primeira URI na lista (por exemplo,
main) torna-se a conexão padrão na inicialização - Você pode alternar conexões usando linguagem natural:
"Connect to backup"ou"Connect to atlas" - A sintaxe original ainda funciona:
"Connect to mongodb://localhost:27018" - A ferramenta
list-connectionsmostra todos os aliases de conexão disponíveis
[!NOTE]
Ao usar o argumento de linha de comando para especificar uma conexão, você pode usar uma URI MongoDB completa ou um alias definido no seu arquivo de configuração.
[!TIP]
Para adicionar aliases de conexão em tempo de execução, use a ferramentaadd-connection-alias.
Configuração: Substituições por Variáveis de Ambiente
O MongoDB Lens suporta substituições por variáveis de ambiente para configurações.
As variáveis de ambiente têm precedência sobre as configurações do arquivo de configuração.
As variáveis de ambiente de configuração seguem o padrão de nomenclatura:
CONFIG_[SETTING PATH, SNAKE CASED, UPPERCASED]
Exemplos de substituições:
| Configuração | Substituição por Variável de Ambiente |
|---|---|
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 |
Para valores de variáveis de ambiente:
- Para configurações booleanas, use valores de string
'true'ou'false'. - Para configurações numéricas, use representações de string.
- Para objetos aninhados ou arrays, use strings JSON.
Exemplo de uso com NPX:
CONFIG_DEFAULTS_QUERY_LIMIT='25' npx -y mongodb-lens@latest
Exemplo de uso com Docker Hub:
docker run --rm -i --network=host --pull=always -e CONFIG_DEFAULTS_QUERY_LIMIT='25' furey/mongodb-lens
Configuração: Variáveis de Ambiente Multiplataforma
Para uso consistente de variáveis de ambiente no Windows, macOS e Linux, considere usar cross-env:
- Instale o cross-env globalmente:
# Using NPM npm install -g cross-env # Using Volta (see: https://volta.sh) volta install cross-env - Prefixe qualquer variável de ambiente NPX ou Node.js nos exemplos deste documento:
# 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
Configuração do Cliente
Configuração do Cliente: Claude Desktop
Para usar o MongoDB Lens com o Claude Desktop:
- Instale o Claude Desktop
- Abra
claude_desktop_config.json(crie se não existir):- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
- Adicione a configuração do servidor MongoDB Lens conforme as opções de configuração
- Reinicie o Claude Desktop
- Inicie uma conversa com o Claude sobre seus dados MongoDB
Opções de Configuração do Claude Desktop
- Opção 1: NPX (Recomendado)
- Opção 2: Imagem Docker Hub
- Opção 3: Instalação Local do Node.js
- Opção 4: Imagem Docker Local
Para cada opção:
- Substitua
mongodb://your-connection-stringpela sua string de conexão MongoDB ou omita-a para usar o padrãomongodb://localhost:27017. - Para usar um arquivo de configuração personalizado, defina a variável de ambiente
CONFIG_PATH. - Para incluir variáveis de ambiente:
- Para NPX ou Node.js, adicione
"env": {}com pares chave-valor, por exemplo:
"command": "/path/to/npx", "args": [ "-y", "mongodb-lens@latest", "mongodb://your-connection-string" ], "env": { "CONFIG_LOG_LEVEL": "verbose" } - Para Docker, adicione flags
-e, por exemplo:
"command": "docker", "args": [ "run", "--rm", "-i", "--network=host", "--pull=always", "-e", "CONFIG_LOG_LEVEL=verbose", "furey/mongodb-lens", "mongodb://your-connection-string" ]
- Para NPX ou Node.js, adicione
Opção 1: NPX (Recomendado)
{
"mcpServers": {
"mongodb-lens": {
"command": "/path/to/npx",
"args": [
"-y",
"mongodb-lens@latest",
"mongodb://your-connection-string"
]
}
}
}
Opção 2: Imagem Docker Hub
{
"mcpServers": {
"mongodb-lens": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"--network=host",
"--pull=always",
"furey/mongodb-lens",
"mongodb://your-connection-string"
]
}
}
}
Opção 3: Instalação Local do Node.js
{
"mcpServers": {
"mongodb-lens": {
"command": "/path/to/node",
"args": [
"/path/to/mongodb-lens.js",
"mongodb://your-connection-string"
]
}
}
}
Opção 4: Imagem Docker Local
{
"mcpServers": {
"mongodb-lens": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"--network=host",
"mongodb-lens",
"mongodb://your-connection-string"
]
}
}
}
Configuração do Cliente: MCP Inspector
O MCP Inspector é uma ferramenta projetada para testar e depurar servidores MCP.
[!NOTE]
O MCP Inspector inicia um servidor proxy na porta 3000 e um cliente web na porta 5173.
Exemplo de uso com NPX:
- Execute o MCP Inspector:
# 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 - Abra o MCP Inspector: http://localhost:5173
O MCP Inspector deve suportar toda a gama de recursos do MongoDB Lens, incluindo autocompletar para nomes de coleções e campos de consulta.
Para mais informações, veja: MCP Inspector
Configuração do Cliente: Outros Clientes MCP
O MongoDB Lens deve ser utilizável com qualquer cliente compatível com MCP.
Para mais informações, veja: Documentação MCP: Exemplos de Clientes
Proteção de Dados
Para proteger seus dados ao usar o MongoDB Lens, considere o seguinte:
- Contas de Usuário Somente Leitura
- Trabalhando com Backups de Banco de Dados
- Considerações sobre Fluxo de Dados
- Confirmação para Operações Destrutivas
- Desabilitando Operações Destrutivas
Proteção de Dados: Contas de Usuário Somente Leitura
Ao conectar o MongoDB Lens ao seu banco de dados, as permissões concedidas ao usuário na string de conexão MongoDB determinam quais ações podem ser executadas. Quando o caso de uso se adequar, um usuário somente leitura pode prevenir gravações ou exclusões não intencionais, garantindo que o MongoDB Lens possa consultar dados, mas não alterá-los.
Para configurar isso, crie um usuário com a função read no(s) banco(s) de dados que você está segmentando. No shell do MongoDB, você executaria algo como:
use admin
db.createUser({
user: 'readonly',
pwd: 'eXaMpLePaSsWoRd',
roles: [{ role: 'read', db: 'mydatabase' }]
})
Em seguida, aplique essas credenciais à sua string de conexão MongoDB:
mongodb://readonly:eXaMpLePaSsWoRd@localhost:27017/mydatabase
Usar credenciais somente leitura é uma maneira simples, porém eficaz, de impor limites de segurança, especialmente quando você está explorando esquemas ou executando consultas ad-hoc.
Proteção de Dados: Trabalhando com Backups de Banco de Dados
Ao trabalhar com o MongoDB Lens, considere conectar-se a uma cópia de backup dos seus dados hospedada em uma instância MongoDB separada.
Comece gerando o backup com mongodump. Em seguida, inicie uma nova instância MongoDB (por exemplo, em uma porta diferente, como 27018) e restaure o backup lá usando mongorestore. Depois que estiver em execução, aponte o MongoDB Lens para a string de conexão da instância de backup (por exemplo, mongodb://localhost:27018/mydatabase).
Essa abordagem oferece um ambiente de testes para testar operações complexas ou destrutivas sem arriscar corrupção acidental dos seus dados em produção.
Proteção de Dados: Considerações sobre Fluxo de Dados
- Como Seus Dados Fluem pelo Sistema
- Protegendo Dados Sensíveis com Projeção
- Aliases de Conexão e Senhas
- Configuração Local para Máxima Segurança
Considerações sobre Fluxo de Dados: Como Seus Dados Fluem pelo Sistema
Ao usar um Servidor MCP com um provedor de LLM remoto (como Anthropic via Claude Desktop), entender como seus dados fluem pelo sistema é fundamental para proteger informações sensíveis de exposição não intencional.
Quando você envia uma consulta relacionada ao MongoDB através do seu cliente MCP, aqui está o que acontece:
[!NOTE]
Embora este exemplo use uma instância MongoDB local, os mesmos princípios se aplicam a instâncias MongoDB remotas.
sequenceDiagram
actor User
box Local Machine #d4f1f9
participant Client as MCP Client
participant Lens as MongoDB Lens
participant MongoDB as MongoDB Instance
end
box Remote Server #ffe6cc
participant LLM as Remote LLM Provider
end
User->>Client: 1. Submit request<br>"Show me all users older than 30"
Client->>LLM: 2. User request + available tools
Note over LLM: Interprets request<br>Chooses appropriate tool
LLM->>Client: 3. Tool selection (find-documents)
Client->>Lens: 4. Tool run with parameters
Lens->>MongoDB: 5. Database query
MongoDB-->>Lens: 6. Database results
Lens-->>Client: 7. Tool results (formatted data)
Client->>LLM: 8. Tool results
Note over LLM: Processes results<br>Formats response
LLM-->>Client: 9. Processed response
Client-->>User: 10. Final answer
- Você envia uma solicitação
➥ ex.: "Mostre-me todos os usuários com mais de 30 anos" - Seu cliente envia a solicitação ao LLM remoto
➥ O provedor de LLM recebe suas palavras exatas juntamente com uma lista de ferramentas MCP disponíveis e seus parâmetros. - O LLM remoto interpreta sua solicitação
➥ Ele determina sua intenção e instrui o cliente a usar uma ferramenta MCP específica com os parâmetros apropriados. - O cliente pede ao MongoDB Lens para executar a ferramenta
➥ Isso ocorre localmente na sua máquina via stdio. - O MongoDB Lens consulta seu banco de dados MongoDB
- O MongoDB Lens recupera os resultados da sua consulta MongoDB
- O MongoDB Lens envia os dados de volta ao cliente
➥ O cliente recebe os resultados formatados pelo MongoDB Lens. - O cliente encaminha os dados ao LLM remoto
➥ O provedor de LLM vê os dados exatos retornados pelo MongoDB Lens. - O LLM remoto processa os dados
➥ Ele pode resumir ou formatar ainda mais os resultados. - O LLM remoto envia a resposta final ao cliente
➥ O cliente exibe a resposta para você.
O provedor de LLM remoto vê tanto sua solicitação original quanto a resposta completa do MongoDB Lens. Se seu banco de dados incluir campos sensíveis (ex.: senhas, dados pessoais, etc.), esses dados podem ser transmitidos involuntariamente ao provedor remoto, a menos que você tome precauções.
Considerações sobre o Fluxo de Dados: Protegendo Dados Sensíveis com Projeção
Para evitar que dados sensíveis sejam enviados ao provedor de LLM remoto, use o conceito de projeção ao utilizar ferramentas como find-documents, aggregate-data ou export-data. A projeção permite especificar quais campos incluir ou excluir nos resultados da consulta, garantindo que informações sensíveis permaneçam locais.
Exemplo de uso de projeção:
- "Mostre-me todos os usuários com mais de 30 anos, mas use projeção para ocultar suas senhas."
➥ Usa a ferramentafind-documentscom projeção
Considerações sobre o Fluxo de Dados: Aliases de Conexão e Senhas
Ao adicionar novos aliases de conexão usando a ferramenta add-connection-alias, evite adicionar aliases a URIs que contenham senhas se você estiver usando um provedor de LLM remoto. Como sua solicitação é enviada ao LLM, qualquer senha na URI pode ser exposta. Em vez disso, defina aliases com senhas no arquivo de configuração do MongoDB Lens, onde elas permanecem locais e não são transmitidas ao LLM.
Considerações sobre o Fluxo de Dados: Configuração Local para Máxima Segurança
Embora esteja fora do escopo deste documento, para o mais alto nível de privacidade de dados, considere usar um cliente MCP local emparelhado com um modelo de LLM hospedado localmente. Essa abordagem mantém todas as solicitações e dados dentro do seu ambiente local, eliminando o risco de informações sensíveis serem enviadas a um provedor remoto.
Proteção de Dados: Confirmação para Operações Destrutivas
O MongoDB Lens implementa um sistema de confirmação baseado em token para operações potencialmente destrutivas, exigindo um processo de duas etapas para executar ferramentas que podem resultar em perda de dados não verificada:
- Primeira invocação da ferramenta: Retorna um token de confirmação de 4 dígitos que expira após 5 minutos
- Segunda invocação da ferramenta: Executa a operação se for fornecida com o token válido
Para um exemplo do processo de confirmação, veja: Trabalhando com Proteção de Confirmação
As ferramentas que exigem confirmação incluem:
drop-user: Remover um usuário do banco de dadosdrop-index: Remover um índice (possível impacto no desempenho)drop-database: Excluir permanentemente um banco de dadosdrop-collection: Excluir uma coleção e todos os seus documentosdelete-document: Excluir um ou vários documentosbulk-operations: Ao incluir operações de exclusãorename-collection: Quando a coleção de destino existe e será descartada
Este mecanismo de proteção visa evitar perda acidental de dados devido a erros de digitação e comandos não intencionais. É uma rede de segurança que garante que você esteja ciente das consequências antes de prosseguir com ações potencialmente prejudiciais.
[!NOTE]
Se você estiver trabalhando em um ambiente controlado onde a perda de dados é aceitável, você pode configurar o MongoDB Lens para ignorar a confirmação e executar operações destrutivas imediatamente.
Ignorando a Confirmação para Operações Destrutivas
Você pode querer ignorar o sistema de confirmação por token.
Defina a variável de ambiente CONFIG_DISABLE_DESTRUCTIVE_OPERATION_TOKENS para true para executar operações destrutivas imediatamente sem confirmação:
# Using NPX
CONFIG_DISABLE_DESTRUCTIVE_OPERATION_TOKENS=true npx -y mongodb-lens@latest
# Using Docker
docker run --rm -i --network=host --pull=always -e CONFIG_DISABLE_DESTRUCTIVE_OPERATION_TOKENS='true' furey/mongodb-lens
[!WARNING]
Desabilitar tokens de confirmação remove um mecanismo de segurança importante. É fortemente recomendado usar esta opção apenas em ambientes controlados onde a perda de dados é aceitável, como desenvolvimento ou testes. Desabilite por sua conta e risco.
Proteção de Dados: Desabilitando Operações Destrutivas
- Desabilitando Ferramentas
- Ferramentas de Alto Risco
- Ferramentas de Risco Médio
- Configuração Somente Leitura
- Habilitação Seletiva de Componentes
Desabilitando Ferramentas
O MongoDB Lens inclui várias ferramentas que podem modificar ou excluir dados. Para desabilitar ferramentas específicas, adicione-as ao array disabled.tools no seu arquivo de configuração:
{
"disabled": {
"tools": [
"drop-user",
"drop-index",
"drop-database",
"drop-collection",
"delete-document",
"bulk-operations",
"rename-collection"
]
}
}
[!NOTE]
Recursos e prompts também podem ser desabilitados via configuraçõesdisabled.resourcesedisabled.prompts.
Ferramentas de Alto Risco
Estas ferramentas podem causar perda imediata de dados e devem ser consideradas para desabilitação em ambientes sensíveis:
drop-user: Remove usuários do banco de dados e suas permissões de acessodrop-index: Remove índices (pode impactar o desempenho de consultas)drop-database: Exclui permanentemente bancos de dados inteirosdrop-collection: Exclui permanentemente coleções e todos os seus documentosdelete-document: Remove documentos que correspondem a critérios especificadosbulk-operations: Pode realizar exclusões em lote quando configurado para issorename-collection: Pode sobrescrever coleções existentes ao usar a opção de descartar destino
Ferramentas de Risco Médio
Estas ferramentas podem modificar dados, mas normalmente não causam perda imediata de dados:
create-user: Cria usuários com permissões que podem permitir outras alteraçõestransaction: Executa múltiplas operações em uma transação (potencial para alterações complexas)update-document: Atualiza documentos que podem sobrescrever dados existentes
Configuração Somente Leitura
Para uma configuração completamente somente leitura, desabilite todas as ferramentas potencialmente destrutivas:
{
"disabled": {
"tools": [
"drop-user",
"drop-index",
"create-user",
"transaction",
"create-index",
"drop-database",
"drop-collection",
"insert-document",
"update-document",
"delete-document",
"bulk-operations",
"create-database",
"gridfs-operation",
"create-collection",
"rename-collection",
"create-timeseries"
]
}
}
Esta configuração permite que o MongoDB Lens consulte e analise dados enquanto previne qualquer modificação, fornecendo múltiplas camadas de proteção contra perda acidental de dados.
Habilitação Seletiva de Componentes
Além de desabilitar componentes, especifique exatamente quais componentes devem ser habilitados (desabilitando implicitamente todos os outros) usando as configurações enabled no seu arquivo de configuração:
{
"enabled": {
"tools": [
"use-database",
"find-documents",
"count-documents",
"aggregate-data"
]
},
"disabled": {
"resources": true,
"prompts": true
}
}
[!IMPORTANT]
Se um componente aparecer em ambas as listasenablededisabled, a configuraçãoenabledtem precedência.
Tutorial
O tutorial a seguir guia você pela configuração de um contêiner MongoDB com dados de exemplo e, em seguida, pelo uso do MongoDB Lens para interagir com ele por meio de consultas em linguagem natural:
- Iniciar Contêiner de Dados de Exemplo
- Importar Dados de Exemplo
- Conectar o MongoDB Lens
- Consultas de Exemplo
- Trabalhando com Proteção de Confirmação
Tutorial: 1. Iniciar Contêiner de Dados de Exemplo
[!NOTE]
Este tutorial pressupõe que você tenha o Docker instalado e em execução no seu sistema.
[!IMPORTANT]
Se o Docker já estiver executando um contêiner na porta 27017, pare-o antes de prosseguir.
- Inicialize o contêiner de dados de exemplo:
docker run --name mongodb-sampledata -d -p 27017:27017 mongo:6 - Verifique se o contêiner está em execução sem problemas:
docker ps | grep mongodb-sampledata
Tutorial: 2. Importar Dados de Exemplo
O MongoDB fornece vários conjuntos de dados de exemplo que usaremos para explorar o MongoDB Lens.
- Baixe os conjuntos de dados de exemplo:
curl -LO https://atlas-education.s3.amazonaws.com/sampledata.archive - Copie os conjuntos de dados de exemplo para o seu contêiner de dados de exemplo:
docker cp sampledata.archive mongodb-sampledata:/tmp/ - Importe os conjuntos de dados de exemplo para o MongoDB:
docker exec -it mongodb-sampledata mongorestore --archive=/tmp/sampledata.archive
Isso importará vários bancos de dados:
sample_airbnb: Listagens e avaliações do Airbnbsample_analytics: Dados de clientes e contassample_geospatial: Dados geográficossample_mflix: Dados de filmessample_restaurants: Dados de restaurantessample_supplies: Dados da cadeia de suprimentossample_training: Dados de treinamento para várias aplicaçõessample_weatherdata: Medições meteorológicas
Tutorial: 3. Conectar o MongoDB Lens
Instale o MongoDB Lens conforme as instruções do Início Rápido.
Configure seu Cliente MCP para conectar ao MongoDB Lens via: mongodb://localhost:27017
[!TIP]
Omitir a string de conexão da configuração do seu Cliente MCP fará com que a string de conexão padrão sejamongodb://localhost:27017.
Exemplo de configuração do Claude Desktop:
{
"mcpServers": {
"mongodb-lens": {
"command": "/path/to/npx",
"args": [
"-y",
"mongodb-lens@latest"
]
}
}
}
Tutorial: 4. Consultas de Exemplo
Com seu Cliente MCP em execução e conectado ao MongoDB Lens, tente as seguintes consultas de exemplo:
- Consultas de Exemplo: Operações Básicas de Banco de Dados
- Consultas de Exemplo: Gerenciamento de Coleções
- Consultas de Exemplo: Gerenciamento de Usuários
- Consultas de Exemplo: Consultando Dados
- Consultas de Exemplo: Análise de Esquema
- Consultas de Exemplo: Modificação de Dados
- Consultas de Exemplo: Gerenciamento de Desempenho e Índices
- Consultas de Exemplo: Operações Geoespaciais e Especiais
- Consultas de Exemplo: Exportação, Administrativas e Outros Recursos
- Consultas de Exemplo: Gerenciamento de Conexões
Consultas de Exemplo: Operações Básicas de Banco de Dados
- "Liste todos os bancos de dados"
➥ Usa a ferramentalist-databases - "Qual banco de dados estou usando atualmente?"
➥ Usa a ferramentacurrent-database - "Mude para o banco de dados sample_mflix"
➥ Usa a ferramentause-database - "Crie um novo banco de dados chamado test_db"
➥ Usa a ferramentacreate-database - "Crie outro banco de dados chamado analytics_db e mude para ele"
➥ Usa a ferramentacreate-databasecom switch=true - "Remova test_db"
➥ Usa a ferramentadrop-database(com confirmação)
Consultas de Exemplo: Gerenciamento de Coleções
- "Quais coleções estão no banco de dados atual?"
➥ Usa a ferramentalist-collections - "Crie a coleção user_logs"
➥ Usa a ferramentacreate-collection - "Renomeie user_logs para system_logs"
➥ Usa a ferramentarename-collection - "Remova system_logs"
➥ Usa a ferramentadrop-collection(com confirmação) - "Verifique a consistência dos dados na coleção movies"
➥ Usa a ferramentavalidate-collection
Consultas de Exemplo: Gerenciamento de Usuários
- "Criar um usuário somente leitura para analytics"
➥ Usa a ferramentacreate-user - "Remover a conta inactive_user"
➥ Usa a ferramentadrop-user(com confirmação)
Exemplos de Consultas: Consulta de Dados
- "Contar todos os documentos na coleção movies"
➥ Usa a ferramentacount-documents - "Encontrar os 5 melhores filmes com a maior classificação IMDB"
➥ Usa a ferramentafind-documents - "Mostrar dados agregados para filmes agrupados por década"
➥ Usa a ferramentaaggregate-data - "Listar todos os países únicos onde os filmes foram produzidos"
➥ Usa a ferramentadistinct-values - "Buscar filmes contendo godfather no título"
➥ Usa a ferramentatext-search - "Encontrar usuários alemães com sobrenome müller usando collation adequada"
➥ Usa a ferramentacollation-query
Exemplos de Consultas: Análise de Esquema
- "Qual é a estrutura do esquema da coleção movies?"
➥ Usa a ferramentaanalyze-schema - "Comparar esquemas de users e comments"
➥ Usa a ferramentacompare-schemas - "Gerar um validador de esquema para a coleção movies"
➥ Usa a ferramentagenerate-schema-validator - "Analisar padrões comuns de consulta para a coleção movies"
➥ Usa a ferramentaanalyze-query-patterns
Exemplos de Consultas: Modificação de Dados
- "Inserir novo documento de filme: <your field data>"
➥ Usa a ferramentainsert-document - "Atualizar todos os filmes de 1994 para adicionar um marcador 'classic'"
➥ Usa a ferramentaupdate-document - "Excluir todos os filmes com zero avaliações"
➥ Usa a ferramentadelete-document(com confirmação) - "Executar estas operações em lote na coleção movies: <your JSON data>"
➥ Usa a ferramentabulk-operations
[!TIP]
Para operações especializadas do MongoDB (como operações de array, operações bit a bit ou outras atualizações complexas), use os operadores nativos do MongoDB por meio dos parâmetrosupdateeoptionsda ferramentaupdate-document.
Exemplos de Consultas: Gerenciamento de Desempenho e Índices
- "Criar um índice no campo title na coleção movies"
➥ Usa a ferramentacreate-index - "Remover o índice ratings_idx"
➥ Usa a ferramentadrop-index(com confirmação) - "Explicar o plano de execução para encontrar filmes de 1995"
➥ Usa a ferramentaexplain-query - "Obter estatísticas para o banco de dados atual"
➥ Usa a ferramentaget-statscom target=database - "Mostrar estatísticas da coleção para a coleção movies"
➥ Usa a ferramentaget-statscom target=collection
Exemplos de Consultas: Operações Geoespaciais e Especiais
- "Alternar para o banco de dados sample_geospatial e encontrar todos os naufrágios em um raio de 10 km das coordenadas [-80.12, 26.46]"
➥ Usa a ferramentageo-query - "Alternar para o banco de dados sample_analytics e executar uma transação para transferir fundos entre contas: <account ids>"
➥ Usa a ferramentatransaction - "Criar uma coleção de séries temporais para leituras de sensores"
➥ Usa a ferramentacreate-timeseries - "Observar mudanças na coleção users por 30 segundos"
➥ Usa a ferramentawatch-changes - "Listar todos os arquivos no bucket GridFS images"
➥ Usa a ferramentagridfs-operationcom operation=list
Exemplos de Consultas: Exportação, Administração e Outros Recursos
- "Alternar para o banco de dados sample_mflix e exportar os 20 melhores filmes com base em 'tomatoes.critic.rating' como CSV com os campos title, year e rating (saída em um único bloco de código)"
➥ Usa a ferramentaexport-data - "Alternar para o banco de dados sample_analytics e verificar o status de sharding"
➥ Usa a ferramentashard-status - "Limpar o cache de coleções"
➥ Usa a ferramentaclear-cachecom target=collections - "Limpar todos os caches"
➥ Usa a ferramentaclear-cache - "Alternar para o banco de dados sample_weatherdata e gerar um relatório interativo sobre seu estado atual"
➥ Usa várias ferramentas
Exemplos de Consultas: Gerenciamento de Conexão
- "Conectar a mongodb://localhost:27018"
➥ Usa a ferramentaconnect-mongodb - "Conectar a mongodb+srv://username:password@cluster.mongodb.net/mydb"
➥ Usa a ferramentaconnect-mongodb - "Conectar de volta à instância mongodb original"
➥ Usa a ferramentaconnect-original - "Conectar ao conjunto de réplicas sem validar a conexão: <replica set details>"
➥ Usa a ferramentaconnect-mongodbcom validateConnection=false - "Adicionar alias de conexão 'prod' para mongodb://username:password@prod-server:27017/mydb"
➥ Usa a ferramentaadd-connection-alias
Tutorial: 5. Trabalhando com Proteção de Confirmação
O MongoDB Lens inclui um mecanismo de segurança para operações potencialmente destrutivas. Veja como funciona na prática:
- Solicitar a exclusão de uma coleção:
"Drop the collection named test_collection" - O MongoDB Lens responde com um aviso e um token de confirmação:
⚠️ 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. - Confirmar a operação enviando o token de confirmação:
"9876" - O MongoDB Lens executa a operação:
Collection 'test_collection' has been permanently deleted.
Esse processo em duas etapas evita perda acidental de dados ao exigir confirmação explícita.
[!NOTE]
Se você estiver trabalhando em um ambiente controlado onde a perda de dados é aceitável, você pode configurar o MongoDB Lens para ignorar a confirmação e executar operações destrutivas imediatamente.
Suíte de Testes
O MongoDB Lens inclui uma suíte de testes para verificar a funcionalidade em ferramentas, recursos e prompts.
Suíte de Testes: Executando Testes
A suíte de testes requer uma variável de ambiente CONFIG_MONGO_URI que pode ser definida como:
- uma string de conexão do MongoDB (ex.:
mongodb://localhost:27017) mongodb-memory-server(para testes em memória)
# Run Tests with MongoDB Connection String
CONFIG_MONGO_URI=mongodb://localhost:27017 node mongodb-lens.test.js
# Run Tests with In-Memory MongoDB (requires mongodb-memory-server)
CONFIG_MONGO_URI=mongodb-memory-server node mongodb-lens.test.js
Para conveniência, os seguintes scripts estão disponíveis para executar os testes:
npm test # Fails if no CONFIG_MONGO_URI provided
npm run test:localhost # Uses mongodb://localhost:27017
npm run test:localhost:verbose # Runs with DEBUG=true for verbose output
npm run test:in-memory # Uses mongodb-memory-server
npm run test:in-memory:verbose # Runs with DEBUG=true for verbose output
[!NOTE]
A suíte de testes cria bancos de dados e coleções temporárias que são limpos após a conclusão dos testes.
Suíte de Testes: Opções de Linha de Comando
| Opção | Descrição |
|---|---|
--list | Listar todos os testes disponíveis sem executá-los |
--test=<n> | Executar teste(s) específico(s) por nome (separados por vírgula) |
--group=<n> | Executar todos os testes em grupo(s) específico(s) (separados por vírgula) |
--pattern=<glob> | Executar testes que correspondem a padrão(ões) (separados por vírgula) |
Suíte de Testes: Exemplos
# List All Available Tests
npm test -- --list
# Run Only Connection-Related Tests (:27017)
npm run test:localhost -- --group=Connection\ Tools
# Test Specific Database Operations (In-Memory)
npm run test:in-memory -- --test=create-database\ Tool,drop-database\ Tool
# Test All Document-Related Tools (:27017)
npm run test:localhost -- --pattern=document
# Run Resource Tests Only (In-Memory)
npm run test:in-memory -- --group=Resources
# Run Specific Tests Only (In-Memory)
npm run test:in-memory -- --test=aggregate-data\ Tool,find-documents\ Tool
Aviso Legal
O MongoDB Lens:
- é licenciado sob a Licença MIT.
- não é afiliado ou endossado pela MongoDB, Inc.
- foi escrito com assistência de IA e pode conter erros.
- destina-se apenas a fins educacionais e experimentais.
- é fornecido como está, sem garantia — use por sua conta e risco.
Suporte
Se você achou o MongoDB Lens útil, considere apoiar meu trabalho através de:
Buy Me a Coffee | GitHub Sponsorship
As contribuições me ajudam a continuar desenvolvendo e melhorando esta ferramenta, permitindo que eu dedique mais tempo para adicionar novos recursos e garantir que ela continue sendo um recurso valioso para a comunidade.