mcp-safe-db
Inspetor de banco de dados SQL estritamente somente leitura e de risco zero para agentes de IA (Claude, Cursor, Antigravity)
GitHub
1
Experimente este MCPPatrocinadoDocumentação
🛡️ mcp-safe-db
Inspetor de banco de dados SQL somente leitura, com risco zero, para agentes de IA (Claude Desktop, Antigravity, Cursor, Cline).
Deixe sua IA explorar esquemas, inspecionar tabelas e executar consultas SELECT sem arriscar DROP, UPDATE ou DELETE acidentais.
⚡ O Problema
Dar acesso ao banco de dados a um assistente de IA é arriscado:
- Uma consulta
UPDATEalucinada sem cláusulaWHEREpode apagar dados de produção ou de desenvolvimento local. - Injeção por ponto e vírgula (
SELECT 1; DROP TABLE users;) pode executar ações destrutivas ocultas. - Consultas sem limites (
SELECT *) estouram janelas de contexto e queimam tokens de API.
mcp-safe-db resolve isso com uma Defesa em Três Camadas inquebrável:
- Camada 1 (Guarda de Parser): Validação estrita por regex bloqueia palavras-chave de mutação (
INSERT,UPDATE,DROP,ALTER,PRAGMA,ATTACH,LOAD_EXTENSION), múltiplas instruções e bypass por comentários. Limites altos são automaticamente reduzidos para 50 linhas. - Camada 2 (Bloqueio de Conexão): A conexão SQLite é bloqueada com
PRAGMA query_only = ON;. - Camada 3 (Bloqueio de SO / Motor C): O banco de dados é aberto nativamente com
{ readOnly: true }. Mesmo que o SQL bruto contorne as verificações anteriores, o manipulador de arquivo subjacente proíbe fisicamente gravações em disco (attempt to write a readonly database).
🚀 Início Rápido
Execução direta via npx
npx mcp-safe-db ./path/to/database.sqlite
🛠️ Configuração
1. Claude Desktop
Adicione ao seu claude_desktop_config.json:
{
"mcpServers": {
"safe-db": {
"command": "npx",
"args": ["-y", "mcp-safe-db", "/absolute/path/to/your/database.sqlite"]
}
}
}
2. IDE Antigravity / Cursor / Cline
Adicione ao seu mcp_config.json:
{
"mcpServers": {
"safe-db": {
"command": "npx",
"args": ["-y", "mcp-safe-db", "/absolute/path/to/your/database.sqlite"]
}
}
}
🧰 Ferramentas Disponíveis para IA
| Ferramenta | Descrição | Proteção de Segurança |
|---|---|---|
list_tables | Lista todas as tabelas e visões de usuário | Filtra tabelas internas do SQLite |
describe_table | Inspeciona colunas, tipos de dados e chaves primárias | Validação sanitizada de nomes de tabelas |
sample_table | Retorna as primeiras 3 linhas de qualquer tabela | Limitado a no máximo 10 linhas |
safe_query | Executa consultas SELECT arbitrárias | Rejeita mutações, limita automaticamente LIMIT |
🧪 Testes
npm test
Executa os testes automatizados de segurança e proteção.
📄 Licença
MIT © 2026
Codificado com Vibração 💖 por MrSkele & Antigravity