MongoDB MCP Server
Um servidor para interagir com bancos de dados MongoDB e MongoDB Atlas.
Documentação
MongoDB MCP Server
Um servidor Model Context Protocol para interagir com bancos de dados MongoDB e MongoDB Atlas.
📚 Sumário
Pré-requisitos
- Node.js (v20 ou posterior)
node -v
- Uma string de conexão do MongoDB ou credenciais da API Atlas, o Servidor não iniciará a menos que seja configurado.
- Credenciais da API Atlas de Service Accounts são necessárias para usar as ferramentas Atlas. Você pode criar uma service account no MongoDB Atlas e usar suas credenciais para autenticação. Consulte Acesso à API Atlas para mais detalhes.
- Se você tiver uma string de conexão do MongoDB, pode usá-la diretamente para conectar à sua instância do MongoDB.
Configuração
Início Rápido
A maioria dos clientes MCP exige que um arquivo de configuração seja criado ou modificado para adicionar o servidor MCP.
Nota: A sintaxe do arquivo de configuração pode variar entre clientes. Consulte os seguintes links para a sintaxe esperada mais recente:
- Windsurf:https://docs.windsurf.com/windsurf/mcp
- VSCode: https://code.visualstudio.com/docs/copilot/chat/mcp-servers
- Claude Desktop: https://modelcontextprotocol.io/quickstart/user
- Cursor: https://docs.cursor.com/context/model-context-protocol
🐳 Implantação com Docker
Oferecemos imagens Docker pré-construídas que podem ser baixadas via GitHub Actions:
Baixando a imagem:
- Acesse a página GitHub Actions
- Selecione o registro de build mais recente
- Baixe
mongodb-mcp-server-{version}-amd64.tar.gzna seção "Artifacts"
Como usar:
# 解压并加载镜像
gunzip mongodb-mcp-server-{version}-amd64.tar.gz
docker load -i mongodb-mcp-server-{version}-amd64.tar
# 运行容器
docker run -d -p 8000:8000 \
-e MDB_MCP_CONNECTION_STRING="mongodb+srv://username:password@cluster.mongodb.net/myDatabase" \
-e MDB_DB="myDatabase" \
mongodb-mcp-server:latest
# 或使用Atlas API凭据
docker run -d -p 8000:8000 \
-e MDB_MCP_API_CLIENT_ID="your-client-id" \
-e MDB_MCP_API_CLIENT_SECRET="your-client-secret" \
mongodb-mcp-server:latest
Variáveis de ambiente do Docker:
PORT: Porta do serviço (padrão: 8000)MDB_MCP_CONNECTION_STRING: String de conexão do MongoDBMDB_DB: Nome padrão do banco de dados (padrão: ChatBI)MDB_MCP_API_CLIENT_ID: ID do cliente da API AtlasMDB_MCP_API_CLIENT_SECRET: Chave secreta do cliente da API Atlas
Opção 1: Argumentos de string de conexão
Você pode passar sua string de conexão via argumentos, certifique-se de usar um nome de usuário e senha válidos.
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": [
"-y",
"mongodb-mcp-server",
"--connectionString",
"mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
]
}
}
}
Opção 2: Argumentos de credenciais da API Atlas
Use as credenciais da sua Service Account da API Atlas. Deve seguir todos os passos na seção Acesso à API Atlas.
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": [
"-y",
"mongodb-mcp-server",
"--apiClientId",
"your-atlas-service-accounts-client-id",
"--apiClientSecret",
"your-atlas-service-accounts-client-secret"
]
}
}
}
Opção 3: Serviço autônomo usando argumentos de linha de comando
Inicie o servidor usando o comando npx:
npx -y mongodb-mcp-server --apiClientId="your-atlas-service-accounts-client-id" --apiClientSecret="your-atlas-service-accounts-client-secret"
- Para uma lista completa de argumentos, consulte Opções de Configuração
- Para configurar suas credenciais de Service Account da Atlas, consulte Acesso à API Atlas
Opção 4: Serviço autônomo usando variáveis de ambiente
npx -y mongodb-mcp-server
Você pode usar variáveis de ambiente no arquivo de configuração ou defini-las e executar o servidor via npx.
- String de conexão via variáveis de ambiente no arquivo MCP exemplo
- Credenciais da API Atlas via variáveis de ambiente no arquivo MCP exemplo
🛠️ Ferramentas Suportadas
Lista de Ferramentas
Ferramentas do MongoDB Atlas
atlas-list-orgs- Lista organizações do MongoDB Atlasatlas-list-projects- Lista projetos do MongoDB Atlasatlas-create-project- Cria um novo projeto do MongoDB Atlasatlas-list-clusters- Lista clusters do MongoDB Atlasatlas-inspect-cluster- Inspeciona um cluster específico do MongoDB Atlasatlas-create-free-cluster- Cria um cluster gratuito do MongoDB Atlasatlas-connect-cluster- Conecta a um cluster do MongoDB Atlasatlas-inspect-access-list- Inspeciona faixas de IP/CIDR com acesso a clusters do MongoDB Atlasatlas-create-access-list- Configura a lista de acesso IP/CIDR para clusters do MongoDB Atlasatlas-list-db-users- Lista usuários de banco de dados do MongoDB Atlasatlas-create-db-user- Lista usuários de banco de dados do MongoDB Atlas
NOTA: as ferramentas Atlas só estão disponíveis quando você define credenciais na seção configuração.
Ferramentas do MongoDB Database
connect- Conecta a uma instância do MongoDBfind- Executa uma consulta find em uma coleção do MongoDBaggregate- Executa uma agregação em uma coleção do MongoDBcount- Obtém o número de documentos em uma coleção do MongoDBinsert-one- Insere um único documento em uma coleção do MongoDBinsert-many- Insere vários documentos em uma coleção do MongoDBcreate-index- Cria um índice para uma coleção do MongoDBupdate-one- Atualiza um único documento em uma coleção do MongoDBupdate-many- Atualiza vários documentos em uma coleção do MongoDBrename-collection- Renomeia uma coleção do MongoDBdelete-one- Exclui um único documento de uma coleção do MongoDBdelete-many- Exclui vários documentos de uma coleção do MongoDBdrop-collection- Remove uma coleção de um banco de dados do MongoDBdrop-database- Remove um banco de dados do MongoDBlist-databases- Lista todos os bancos de dados para uma conexão do MongoDBlist-collections- Lista todas as coleções para um determinado banco de dadoscollection-indexes- Descreve os índices de uma coleçãocollection-schema- Descreve o esquema de uma coleçãocollection-storage-size- Obtém o tamanho de uma coleção em MBdb-stats- Retorna estatísticas sobre um banco de dados do MongoDB
Configuração
O MongoDB MCP Server pode ser configurado usando vários métodos, com a seguinte precedência (da maior para a menor):
- Argumentos de linha de comando
- Variáveis de ambiente
Opções de Configuração
| Opção | Descrição |
|---|---|
apiClientId | ID do cliente da API Atlas para autenticação |
apiClientSecret | Chave secreta do cliente da API Atlas para autenticação |
connectionString | String de conexão do MongoDB para conexões diretas com o banco de dados (opcional; os usuários podem optar por informá-la em cada chamada de ferramenta) |
defaultDatabase | Nome padrão do banco de dados para operações do MongoDB. Pode ser definido via argumento --database ou variáveis de ambiente MDB_DB/MDB_MCP_DEFAULT_DATABASE. O padrão é "ChatBI" |
logPath | Pasta para armazenar logs |
disabledTools | Uma matriz de nomes de ferramentas, tipos de operação e/ou categorias de ferramentas que serão desabilitadas |
readOnly | Quando definido como true, permite apenas tipos de operação de leitura e metadados, desabilitando operações de criação/atualização/exclusão |
telemetry | Quando definido como disabled, desabilita a coleta de telemetria |
Caminho do Log
O local padrão do log é o seguinte:
- Windows:
%LOCALAPPDATA%\mongodb\mongodb-mcp\.app-logs - macOS/Linux:
~/.mongodb/mongodb-mcp/.app-logs
Ferramentas Desabilitadas
Você pode desabilitar ferramentas específicas ou categorias de ferramentas usando a opção disabledTools. Esta opção aceita uma matriz de strings, onde cada string pode ser um nome de ferramenta, tipo de operação ou categoria.
A forma como a matriz é construída depende do tipo de método de configuração que você usa:
- Para configuração por variável de ambiente, use uma string separada por vírgulas:
export MDB_MCP_DISABLED_TOOLS="create,update,delete,atlas,collectionSchema". - Para configuração por argumento de linha de comando, use uma string separada por espaços:
--disabledTools create update delete atlas collectionSchema.
Categorias de ferramentas:
atlas- Ferramentas do MongoDB Atlas, como listar clusters, criar cluster, etc.mongodb- Ferramentas de banco de dados do MongoDB, como find, aggregate, etc.
Tipos de operação:
create- Ferramentas que criam recursos, como criar cluster, inserir documento, etc.update- Ferramentas que atualizam recursos, como atualizar documento, renomear coleção, etc.delete- Ferramentas que excluem recursos, como excluir documento, remover coleção, etc.read- Ferramentas que leem recursos, como find, aggregate, listar clusters, etc.metadata- Ferramentas que leem metadados, como listar bancos de dados, listar coleções, esquema de coleção, etc.
Modo Somente Leitura
A opção de configuração readOnly permite restringir o servidor MCP a usar apenas ferramentas com tipos de operação "read" e "metadata". Quando habilitada, todas as ferramentas que possuem tipos de operação "create", "update" ou "delete" não serão registradas no servidor.
Isso é útil para cenários em que você deseja fornecer acesso aos dados do MongoDB para análise sem permitir modificações nos dados ou na infraestrutura.
Você pode habilitar o modo somente leitura usando:
- Variável de ambiente:
export MDB_MCP_READ_ONLY=true - Argumento de linha de comando:
--readOnly
Quando o modo somente leitura está ativo, você verá uma mensagem nos logs do servidor indicando quais ferramentas foram impedidas de serem registradas devido a essa restrição.
Restrição de Banco de Dados
A opção de configuração defaultDatabase permite restringir o servidor MCP a operar apenas em um banco de dados específico. Quando configurada, todas as ferramentas de banco de dados usarão o banco de dados especificado por padrão, e a ferramenta list-databases é desabilitada para evitar a descoberta de outros bancos de dados.
Isso é útil para cenários em que você deseja limitar o acesso a um banco de dados específico por motivos de segurança ou operacionais.
Você pode definir o banco de dados padrão usando:
- Variável de ambiente:
export MDB_DB=ChatBIouexport MDB_MCP_DEFAULT_DATABASE=ChatBI - Argumento de linha de comando:
--database ChatBI - Variável de ambiente do Docker:
-e MDB_DB=ChatBI
Quando um banco de dados padrão é configurado:
- Todas as operações de banco de dados usarão este banco, a menos que seja explicitamente substituído nos argumentos da ferramenta
- A ferramenta
list-databasesé desabilitada para evitar a descoberta de bancos de dados - Os usuários ainda podem especificar um nome de banco de dados diferente em chamadas individuais de ferramentas, se necessário
Telemetria
A opção de configuração telemetry permite desabilitar a coleta de telemetria. Quando habilitada, o servidor MCP coletará dados de uso e os enviará ao MongoDB.
Você pode desabilitar a telemetria usando:
- Variável de ambiente:
export MDB_MCP_TELEMETRY=disabled - Argumento de linha de comando:
--telemetry disabled - Variável de ambiente DO_NOT_TRACK:
export DO_NOT_TRACK=1
Acesso à API Atlas
Para usar as ferramentas da API Atlas, você precisará criar uma service account no MongoDB Atlas:
-
Crie uma Service Account:
- Faça login no MongoDB Atlas em cloud.mongodb.com
- Navegue até Access Manager > Organization Access
- Clique em Add New > Applications > Service Accounts
- Insira nome, descrição e expiração para sua service account (por exemplo, "MCP, MCP Server Access, 7 days")
- Selecione as permissões apropriadas (para acesso total, use Organization Owner)
- Clique em "Create"
Para saber mais sobre Service Accounts, consulte a documentação do MongoDB Atlas.
-
Salve as Credenciais do Cliente:
- Após a criação, você verá o Client ID e o Client Secret
- Importante: Copie e salve o Client Secret imediatamente, pois ele não será exibido novamente
-
Adicione uma Entrada na Lista de Acesso:
- Adicione seu endereço IP à lista de acesso da API
-
Configure o Servidor MCP:
- Use um dos métodos de configuração abaixo para definir seu
apiClientIdeapiClientSecret
- Use um dos métodos de configuração abaixo para definir seu
Métodos de Configuração
Variáveis de Ambiente
Defina variáveis de ambiente com o prefixo MDB_MCP_ seguido pelo nome da opção em maiúsculas com sublinhados:
# Set Atlas API credentials (via Service Accounts)
export MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id"
export MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret"
# Set a custom MongoDB connection string
export MDB_MCP_CONNECTION_STRING="mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
# Set default database for operations (limits MCP to only use this database)
export MDB_MCP_DEFAULT_DATABASE="ChatBI"
# Or alternatively, use the shorter form:
export MDB_DB="ChatBI"
export MDB_MCP_LOG_PATH="/path/to/logs"
Exemplos de arquivo de configuração MCP
String de conexão com variáveis de ambiente
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": ["-y", "mongodb-mcp-server"],
"env": {
"MDB_MCP_CONNECTION_STRING": "mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
}
}
}
}
Credenciais da API Atlas com variáveis de ambiente
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": ["-y", "mongodb-mcp-server"],
"env": {
"MDB_MCP_API_CLIENT_ID": "your-atlas-service-accounts-client-id",
"MDB_MCP_API_CLIENT_SECRET": "your-atlas-service-accounts-client-secret"
}
}
}
}
Argumentos de Linha de Comando
Passe opções de configuração como argumentos de linha de comando ao iniciar o servidor:
npx -y mongodb-mcp-server --apiClientId="your-atlas-service-accounts-client-id" --apiClientSecret="your-atlas-service-accounts-client-secret" --connectionString="mongodb+srv://username:password@cluster.mongodb.net/myDatabase" --database="ChatBI" --logPath=/path/to/logs
Exemplos de arquivo de configuração MCP
String de conexão com argumentos de linha de comando
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": [
"-y",
"mongodb-mcp-server",
"--connectionString",
"mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
]
}
}
}
Credenciais da API Atlas com argumentos de linha de comando
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": [
"-y",
"mongodb-mcp-server",
"--apiClientId",
"your-atlas-service-accounts-client-id",
"--apiClientSecret",
"your-atlas-service-accounts-client-secret"
]
}
}
}
🤝 Contribuindo
Interessado em contribuir? Ótimo! Por favor, consulte nosso Guia de Contribuição para diretrizes sobre contribuições de código, padrões, adição de novas ferramentas e informações de solução de problemas.