Enables executing SQL queries, inserting records, listing tables, and exposing database schemas for MySQL databases
Enables executing SQL queries, inserting records, listing tables, and exposing database schemas for PostgreSQL databases
🛡️ MCP Databases Server - Seguro e Robusto
Este projeto implementa um servidor MCP (Model Context Protocol) em Python para expor operações de banco de dados relacionais (SQL Server, MySQL, PostgreSQL) como ferramentas MCP, permitindo que aplicações LLM e agentes consultem e manipulem dados de forma segura e protegida contra SQL injection.
🎯 O que este MCP Server faz?
Expõe operações de banco de dados como ferramentas MCP (tools) para uso por LLMs, agentes e automações
Proteção multicamada contra SQL injection e comandos maliciosos
Configuração automática via arquivos .env com busca hierárquica
Validação rigorosa de todas as operações de banco de dados
Suporta integração com VS Code e Claude via arquivo
mcp.jsonImpossível contornar as proteções de segurança implementadas
🛠️ Tools Disponíveis
📊 Consulta de Dados (Somente Leitura)
execute_query: Executa queries SELECT com validação de segurança
list_tables: Lista todas as tabelas do banco de dados
expose_schema: Expõe o schema completo do banco de dados
🏗️ Operações DDL (Data Definition Language)
create_table: Cria tabelas com validação de nomes e tipos
alter_table: Modifica estrutura de tabelas (ADD, MODIFY, DROP COLUMN)
drop_table: Remove tabelas (⚠️ requer confirmação dupla)
📝 Operações DML (Data Manipulation Language)
insert_record: Insere um registro único com parâmetros seguros
bulk_insert: Inserção em lote com validação e limites de segurança
update_records: Atualiza registros com parâmetros e limites configuráveis
delete_records: Exclui registros (⚠️ requer confirmação e limites)
🛡️ Ferramentas de Segurança
security_check: Verifica se uma query é segura sem executá-la
get_security_config: Exibe configurações de segurança ativas
safe_query_prompt: Validação adicional de queries perigosas
🚨 Pontos de Atenção e Segurança
⛔ Comandos Bloqueados
O sistema bloqueia automaticamente:
DELETE,DROP,EXEC,EXECUTE,TRUNCATEALTER USER,GRANT,REVOKE,CREATE USERxp_cmdshell,sp_*,OPENROWSET,BULK INSERTQualquer tentativa de SQL injection
🔒 Proteções Implementadas
Parâmetros obrigatórios: Impossível executar sem configuração adequada
Validação multicamada: Tool → Database → Prompt → Config
Queries parametrizadas: 100% dos valores são sanitizados
Confirmação dupla: Operações destrutivas exigem confirmação exata
Limites de segurança: Controle de quantos registros podem ser afetados
Nomes validados: Apenas caracteres alfanuméricos e underscore
⚠️ Operações que Requerem Cuidado
drop_table: Requer confirmação exata
DELETE_TABLE_<nome_tabela>delete_records: Requer confirmação
DELETE_FROM_<tabela>_WHERE_<condição>update_records: Limitado por
safety_limit(padrão: 100 registros)bulk_insert: Máximo de 10.000 registros por operação
🔧 Configuração Obrigatória
Arquivo .env: Busca automática na raiz → subpastas → solicitação ao usuário
Parâmetros obrigatórios: DB_TYPE, DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_NAME
Sem configuração = sem execução: Sistema não permite bypass
🚀 Instalação e Configuração
📁 Configuração do Ambiente (.env)
O sistema busca automaticamente arquivos .env na seguinte ordem:
Diretório raiz do projeto
Subpastas (config/, db/, local/, etc.)
Solicitação interativa ao usuário
Exemplo de arquivo .env:
📦 Instalação Local e Global (Linux)
Instalação local (ambiente virtual)
Na raiz do projeto crie uma pasta .mcpenv
Crie e ative o ambiente virtual:
Instale as dependências:
🔧 Gerando o arquivo mcp.json
No diretório do projeto, crie um arquivo .vscode/mcp.json com o seguinte conteúdo:
📍 Para Instalação Local:
🌐 Para Instalação Global (pipx):
O comando
mcp-databasesestará disponível no terminal enquanto o ambiente estiver ativado.
Instalação global (pipx)
Instale o pipx (se necessário):
Instale o MCP globalmente:
O comando
mcp-databasesficará disponível em qualquer terminal do sistema.
Crie uma pasta na raiz do projeto .vscode isso instala o mcp nas extensões do vscode
🔄 Atualização Global
Se atualizar o código, reinstale com:
📋 Dependências
🐍 Python e Frameworks
Python 3.10+
FastMCP >=2.13.0 - Framework MCP moderno
python-dotenv - Gerenciamento de variáveis de ambiente
🗄️ Drivers de Banco de Dados
pyodbc - SQL Server
mysql-connector-python - MySQL
psycopg2-binary - PostgreSQL
🔧 Drivers ODBC do Sistema
SQL Server:
msodbcsql18sudo apt-get install msodbcsql18MySQL:
libmysqlclient-devsudo apt-get install libmysqlclient-devPostgreSQL:
libpq-devsudo apt-get install libpq-dev
⚡ Instalação das Dependências
🎮 Como Usar
1️⃣ Executar o Servidor MCP
2️⃣ Rodar através do VS Code
Vá em Extensões → MCP SERVERS
Selecione o servidor
mcp-databasesUse o GitHub Copilot Chat para interagir
3️⃣ Exemplos de Uso Seguro
📊 Consultas (100% Seguras)
🏗️ Criar Tabela
📝 Inserção Segura
⚠️ Operações com Confirmação
📈 Exemplos de Uso pelo Copilot
✅ Listando Tabelas

✅ Executando Queries Seguras

✅ Analisando Procedures

🛡️ Garantias de Segurança
✅ O que está PROTEGIDO:
✅ SQL Injection: 100% bloqueado com parâmetros seguros
✅ Comandos destrutivos: DELETE, DROP, EXEC bloqueados
✅ Bypass de proteções: Impossível contornar validações
✅ Configuração obrigatória: Sistema não executa sem .env
✅ Validação multicamada: Tool + Database + Prompt + Config
✅ O que está PERMITIDO:
✅ Consultas (SELECT): Totalmente liberadas e seguras
✅ Inserções: Com validação de parâmetros
✅ Atualizações: Com limites e confirmação
✅ Criação de estruturas: DDL com validação rigorosa
✅ Operações administrativas: List tables, expose schema
❌ O que está BLOQUEADO:
❌ SQL Injection: Qualquer tentativa é detectada e bloqueada
❌ Comandos maliciosos: DROP, DELETE, EXEC, TRUNCATE
❌ Nomes inválidos: Caracteres especiais em tabelas/colunas
❌ Bypass de confirmação: Operações destrutivas sem confirmação exata
❌ Execução sem configuração: Parâmetros obrigatórios
📚 Documentação Adicional
📖 USAGE_GUIDE.md - Guia completo de uso das ferramentas
🚀 EXAMPLE_USAGE.md - Exemplo prático passo a passo
🛡️ SECURITY_README.md - Detalhes técnicos de segurança
🏗️ SYSTEM_OVERVIEW.md - Visão geral da arquitetura
🆘 Suporte e Contribuições
Para dúvidas, problemas ou contribuições:
📚 Consulte a documentação oficial do MCP
🐛 Abra uma issue neste repositório
💡 Propose melhorias via Pull Request
🏆 Status do Projeto
✅ PRODUÇÃO - SISTEMA SEGURO
🛡️ SQL Injection Proof - Proteção total implementada
🔄 Multi-SGBD - PostgreSQL, MySQL, SQL Server
⚙️ Auto-Config - Configuração automática via .env
🧪 100% Testado - Testes abrangentes de segurança
Última atualização: Outubro 2025 - Sistema completamente reformulado com foco em segurança máxima.
This server cannot be installed
Related Resources
Related MCP Servers
- -securityAlicense-qualityAn MCP server that integrates with MySQL databases, enabling secure read and write operations through LLM-driven interfaces with support for transaction handling and performance monitoring.Last updated -20217MIT License
- -securityAlicense-qualityMCP-Server from your Database optimized for LLMs and AI-Agents. Supports PostgreSQL, MySQL, ClickHouse, Snowflake, MSSQL, BigQuery, Oracle Database, SQLite, ElasticSearch, DuckDBLast updated -501Apache 2.0
- -securityFlicense-qualityA tool that connects to local MySQL databases and enables large language models (LLMs) to execute SQL queries through the Model Context Protocol (MCP).Last updated -4521
- -securityAlicense-qualityA flexible Model Context Protocol server that enables LLMs to interact with database systems, supporting dynamic schema discovery and query execution across PostgreSQL and SQLite backends.Last updated -2MIT License