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, stream e RedisJSON), com decode seguro de binário e teto de bytes por valor; 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; tamanho de query, timeout e número de linhas/registros têm defaults globais no YAML (bloco defaults) e podem ser sobrescritos por conexão (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
As conexões ficam num único arquivo YAML. O servidor lê o caminho de NAUTILUS_CONFIG (padrão ./nautilus.yaml) e valida na subida, falhando cedo com mensagem clara se algo estiver inconsistente. Veja nautilus.yaml.example para um modelo completo.
Cada conexão tem um identificador (connection_id): letras, números e underscores (ex.: pg_prod, mongo_app).
Segredos sempre por
${VAR}. Qualquer valor pode referenciar uma variável de ambiente com${NOME}; o servidor a resolve do ambiente e falha cedo se ela não existir (a mensagem cita só o nome, nunca o valor). Nunca coloque senha em texto puro no YAML.
Estrutura
defaults: # valores herdados por todas as conexões (todos opcionais)
read_only: true
query_timeout_ms: 30000
connect_timeout_ms: 5000
max_rows: 200
default_rows: 50
query_max_length: 2000
connections:
<connection_id>:
type: <engine> # obrigatório
# ...atributos da conexão...
Por conexão
type(obrigatório): um entrepostgresql,mysql,mariadb(tratado como MySQL),sqlite,sqlserver,oracle,mongodb,redis.- Conexão, em um dos dois formatos:
url: URL completa (ex.:postgresql://user:senha@host:5432/banco). Para SQLite useurl: ":memory:"ouurl: "file:...", ou o atalhopath:.- Ou campos separados (útil se a senha tem
@,:,/):host,port,user,password,database(oudb). A porta pode ir junto emhost(db.exemplo.com:3306); omitida, usa-se a padrão por tipo (PostgreSQL 5432, MySQL 3306, SQL Server 1433, Oracle 1521, MongoDB 27017, Redis 6379).
- Overrides opcionais do
defaults:read_only,query_timeout_ms,connect_timeout_ms. Redis aceita aindasocket_timeout_ms(teto por operação; padrão =query_timeout_ms).
Exemplos
PostgreSQL por URL, com timeout maior só nesta conexão:
connections:
pg:
type: postgresql
url: "${PG_URL}"
query_timeout_ms: 60000
PostgreSQL por componentes (senha vem do ambiente), não somente-leitura:
connections:
pg_app:
type: postgresql
host: localhost
port: 5432
user: myuser
password: "${PG_APP_PASSWORD}"
database: mydb
read_only: false
Redis com teto de operação:
connections:
cache:
type: redis
url: "${REDIS_URL}"
socket_timeout_ms: 10000
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:
NAUTILUS_CONFIG(caminho do YAML) e os segredos referenciados por${VAR}dentro dele.
Exemplo de trecho JSON (Cursor, VS Code com MCP, etc.):
{
"mcpServers": {
"nautilus": {
"command": "npx",
"args": ["-y", "nautilus-mcp-server@latest"],
"env": {
"NAUTILUS_CONFIG": "C:/caminho/para/nautilus.yaml",
"PG_APP_PASSWORD": "secret"
}
}
}
}
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.3
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.3.tar.gz | 33.4 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nautilus_mcp_server-0.2.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 72.7 kB
Release files / nautilus_mcp_server-0.2.3.tar.gz
| Download URL | nautilus_mcp_server-0.2.3.tar.gz |
|---|---|
| Size | 33.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a6f6d751590037e39a98e846c4d05ba7fe6b9220186d183efaebe02d6623a38f
|
|
BLAKE2b-256 checksum How to use checksums |
9e669b04b8ab60aa15c75d4a21aaa3f4d8c5d4d419afe0f3be78dbde3dbc27d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.
Transparency logRelease files / nautilus_mcp_server-0.2.3-py3-none-any.whl
| Download URL | nautilus_mcp_server-0.2.3-py3-none-any.whl |
|---|---|
| Size | 39.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8d0218cf0f8f7613d02de2ae03beafa82784cf2665e8fe48f42f073225281904
|
|
BLAKE2b-256 checksum How to use checksums |
8768053af74baab4b72326eea6128d7360078194a2ad4c21029bd12c2165874d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.
Transparency logSecurity for nautilus-mcp-server 0.2.3
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for nautilus_mcp_server-0.2.3.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.
Transparency logA 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.