Nautilus MCP Server
O que é
É um servidor Model Context Protocol (MCP) que fala com o assistente pela entrada/saída padrão (stdio). Está publicado no npm como nautilus-mcp-server e precisa de Node.js 18 ou superior. Recomenda-se executar com npx -y nautilus-mcp-server@latest para o npx resolver sempre o dist-tag latest (evita reutilizar cache de instalação antiga). Se precisar travar em uma versão exata, use nautilus-mcp-server@<versão> no lugar de @latest.
O que faz
- Bancos SQL (PostgreSQL, MySQL/MariaDB, SQLite, SQL Server, Oracle): listar tabelas, ver colunas e índices, executar apenas consultas de leitura (
SELECT/WITH) com validação de segurança e limite de linhas, e pequenas amostras de dados. - MongoDB: listar coleções, buscar documentos com filtro em JSON e paginação, ver índices da coleção, amostra rápida.
- Redis: listar chaves (com padrão e cursor), ler valores conforme o tipo da chave (string, hash, lista, set, sorted set), amostra rápida.
Em muitas respostas o cliente recebe também structuredContent (JSON estruturado) além do texto, para quem consome colunas, linhas, documentos ou chaves sem depender só de texto formatado.
Comportamento padrão: somente leitura no SQL; limites globais de tamanho de query, timeout e número de linhas/registros podem ser ajustados por variáveis de ambiente (veja abaixo).
Tools
| Tool | Função |
|---|---|
db_list_connections |
Lista os connection_id configurados, tipo de engine e read_only. Use antes das demais tools para escolher o id correto. |
db_list_resources |
SQL: tabelas. MongoDB: coleções (parâmetro database obrigatório). Redis: chaves (key_pattern e cursor opcionais). |
db_get_metadata |
SQL: metadados/colunas da tabela. MongoDB: amostra de documentos. Redis: tipo e amostra do valor da chave. |
db_describe_indexes |
Índices de uma tabela SQL ou de uma coleção MongoDB. |
db_query_sql |
Executa SELECT/WITH em conexões SQL. output_format: table, json ou csv; limit opcional (respeitando o teto global). |
db_fetch_documents |
MongoDB: find com filter_json, limit e skip. |
db_read_cache |
Redis: leitura conforme o tipo da chave. |
db_peek_sample |
Até três registros: linhas (SQL), documentos (MongoDB) ou amostra (Redis). |
Resources (MCP)
| URI | Conteúdo |
|---|---|
nautilus://connections |
JSON com { "connections": [...] } (mesmos campos que db_list_connections: connection_id, type, read_only). |
Como configurar as conexões
Cada conexão tem um identificador (connection_id): letras, números e underscores (ex.: pg_prod, mongo_app).
Todas as variáveis seguem o padrão:
DATABASES__<connection_id>__<atributo>
Obrigatório por conexão
type: um entrepostgresql,mysql,mariadb(tratado como MySQL),sqlite,sqlserver,oracle,mongodb,redis.- Conexão, em um dos dois formatos:
url: URL completa de conexão (ex.:postgresql://user:senha@host:5432/banco,mongodb://host:27017/,redis://host:6379/0, arquivo/path para SQLite conforme documentação do driver).- Ou campos separados (útil se a senha tem
@,:,/, etc.), sempre no formatoDATABASES__<connection_id>__…:host,port,user,password,databaseoudb. Exemplo com idpg:DATABASES__pg__host,DATABASES__pg__port(ex.:5432),DATABASES__pg__user,DATABASES__pg__password,DATABASES__pg__database. Em vez deportseparado, a porta pode ir junto emhost(ex.:db.exemplo.com:3306). Seportfor omitida e não estiver nohost, usam-se portas padrão por tipo (PostgreSQL 5432, MySQL 3306, SQL Server 1433, Oracle 1521, MongoDB 27017, Redis 6379).
Opcional por conexão
read_only: padrão é somente leitura.
Limites e opções globais (opcional)
| Variável | Efeito (padrão se omitida) |
|---|---|
NAUTILUS_QUERY_MAX_LENGTH |
Tamanho máximo da query SQL em caracteres (2000). |
NAUTILUS_MAX_ROW_LIMIT ou NAUTILUS_MAX_ROWS |
Teto de linhas/registros e validação de LIMIT (200). |
NAUTILUS_DEFAULT_ROW_LIMIT |
Limite padrão quando a tool não fixa outro (50, até o máximo). |
NAUTILUS_QUERY_TIMEOUT_MS |
Timeout das operações em milissegundos (5000 se não usar a de segundos). |
NAUTILUS_QUERY_TIMEOUT_SECONDS |
Alternativa ao timeout em ms (só usada se NAUTILUS_QUERY_TIMEOUT_MS não estiver definida). |
NAUTILUS_READ_ONLY_MODE |
Modo somente leitura (true por padrão). |
Exemplos (.env ou env do MCP)
PostgreSQL por URL:
DATABASES__pg__type=postgresql
DATABASES__pg__url=postgresql://user:password@localhost:5432/mydb
PostgreSQL com host e senha com caracteres especiais:
DATABASES__pg__type=postgresql
DATABASES__pg__host=localhost
DATABASES__pg__port=5432
DATABASES__pg__user=myuser
DATABASES__pg__password=pa@ss:word/with
DATABASES__pg__database=mydb
MySQL com host e porta no mesmo campo:
DATABASES__app__type=mysql
DATABASES__app__host=db.exemplo.com:3306
DATABASES__app__user=app
DATABASES__app__password=secret
DATABASES__app__database=appdb
Como usar nos clientes
Em qualquer cliente MCP com transporte stdio, configure:
- Comando:
npx(no Windows, se necessário, use o caminho completo denpx.cmd). - Argumentos: use
["-y", "nautilus-mcp-server@latest"]. Opcionalmente fixe versão com["-y", "nautilus-mcp-server@<versão>"]. - Variáveis de ambiente: todas as
DATABASES__…e, se quiser, asNAUTILUS__….
Exemplo de trecho JSON (Cursor, VS Code com MCP, etc.):
{
"mcpServers": {
"nautilus": {
"command": "npx",
"args": ["-y", "nautilus-mcp-server@latest"],
"env": {
"DATABASES__pg__type": "postgresql",
"DATABASES__pg__host": "localhost",
"DATABASES__pg__port": "5432",
"DATABASES__pg__user": "app",
"DATABASES__pg__password": "secret",
"DATABASES__pg__database": "appdb"
}
}
}
}
Cursor
Configurações → MCP (ou JSON de MCP do projeto): adicione o servidor com command, args e env como acima.
Claude Desktop
Use o mesmo esquema de command, args e env no arquivo de configuração MCP do aplicativo. Caminho e formato exato variam por sistema; veja a documentação da Anthropic sobre MCP.
Claude Code e outras IDEs
Mesma ideia: processo npx (ou Node apontando para o pacote instalado), argumentos -y e nautilus-mcp-server@latest, e o mesmo bloco de variáveis de ambiente.
Problemas comuns no Windows com npx
Se aparecer EPERM, TAR_ENTRY_ERROR ou MODULE_NOT_FOUND (por exemplo em dependências sob o cache do npm), feche o cliente MCP, apague a pasta %LocalAppData%\npm-cache\_npx e tente de novo. Outra opção estável é instalar o pacote globalmente (npm install -g nautilus-mcp-server) e configurar o MCP para executar o node com o caminho do cli.js dessa instalação global, em vez de npx.
Metadata
Release files for nautilus-mcp-server 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| nautilus_mcp_server-0.2.2.tar.gz | 24.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nautilus_mcp_server-0.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 47.4 kB
Release files / nautilus_mcp_server-0.2.2.tar.gz
| Download URL | nautilus_mcp_server-0.2.2.tar.gz |
|---|---|
| Size | 24.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f77c30fad7063296dc7fe01215b1ca0e9eff1cb830d2521c94260c39078dea17
|
|
BLAKE2b-256 checksum How to use checksums |
df9e2cf47c8c3aad28794842d899411e0f9c62633eac304a9c20853d109adb29
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / nautilus_mcp_server-0.2.2-py3-none-any.whl
| Download URL | nautilus_mcp_server-0.2.2-py3-none-any.whl |
|---|---|
| Size | 22.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
28acb177f2af948868bc1557496c16f91ce44c2b79aae6dbd674191e1c83feee
|
|
BLAKE2b-256 checksum How to use checksums |
30efbe928953019b184f7e1bf0383a358653bb662a9efdb825f877fad940094d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for nautilus-mcp-server 0.2.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.