data-engineering-mcp
data-engineering-mcp
Servidor MCP genérico, local e offline que transforma cabeçalhos de arquivos XLSX em um catálogo consultável, infere relacionamentos candidatos e gera somente SQL Oracle SELECT/WITH. Não acessa bancos de dados, não executa SQL e não possui integração ou dependência de Power BI.
Requisitos e instalação
Python 3.12
MCP Python SDK 2.x (
MCPServer, a API pública atual da versão instalada)
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e ".[dev]"Dependências de runtime: mcp, pandas, openpyxl e pydantic; testes usam pytest. O catálogo usa openpyxl diretamente para abrir os workbooks em modo read-only e ler somente a primeira linha necessária.
Related MCP server: io.github.Optisol-Business/db-metadata-extractor-mcp
Dados e arquitetura
Os datasets são fornecidos localmente pelo usuário e não fazem parte do repositório. Coloque arquivos .xlsx em data/; eles permanecem disponíveis ao MCP, mas são ignorados pelo Git. Cada arquivo é uma tabela. O nome lógico remove .xlsx, o prefixo rawzn. e o sufixo _SINTETICO, com comparação case-insensitive. A primeira aba não chamada SQL que tenha cabeçalhos é usada; registros não participam da descoberta.
data/*.xlsx -> Catalog -> RelationshipEngine -> SQLGenerator
\-> explicação conservadora de SQLNovos arquivos são descobertos por atualizar_catalogo, sem alteração de código. A atualização também detecta remoções e mudanças na lista ordenada de cabeçalhos, atualiza o timestamp e recalcula candidatos. O diretório local de schemas/datasets é configurável pela variável DATA_ENGINEERING_MCP_DATA_DIR; o padrão é data/.
Execução e testes
.\.venv\Scripts\data-engineering-mcp.exe
# ou
.\.venv\Scripts\python.exe -m data_engineering_mcp.server
.\.venv\Scripts\python.exe -m pytest
.\.venv\Scripts\python.exe scripts\smoke_test.pyO transporte padrão é stdio. Logs vão para stderr para não corromper o protocolo. Defina DATA_ENGINEERING_MCP_DATA_DIR para usar outra pasta local.
Tools
listar_tabelas,descrever_tabela,buscar_coluna,buscar_tabelasinferir_relacionamentos,encontrar_caminho,gerar_joinatualizar_catalogo,status_catalogogerar_sql,gerar_select,explicar_sql
gerar_sql recebe tabelas, colunas e filtros tipados {table?, column, operator, value}. Operadores: =, <>, >, >=, <, <=, IN, IS NULL, IS NOT NULL, LIKE. Valores viram bind variables (:p1), nunca texto concatenado. Colunas ambíguas exigem TABELA.COLUNA. O JOIN padrão é LEFT JOIN, escolha conservadora para preservar linhas da primeira tabela; a ferramenta informa candidatos MEDIUM e rejeita LOW por padrão.
Exemplo de argumentos:
{
"tabelas": ["RAW_HAP_TB_USUARIO", "RAW_HAP_TB_PESSOA"],
"colunas": ["CD_USUARIO", "NM_PESSOA_RAZAO_SOCIAL"],
"filtros": [{"column": "FL_STATUS_USUARIO", "operator": "=", "value": 2}]
}Confiança de relacionamentos
Todo resultado é candidato nominal, nunca PK/FK confirmada. O score começa em 20 por nome idêntico; soma 30 para prefixos CD_, ID_ ou NU_; soma 20 quando a entidade da coluna aparece no nome de uma tabela e mais 10 se aparece em ambas. Ocorrência em mais de duas tabelas reduz 5 por ocorrência excedente (máximo 25); campo genérico ou sem prefixo identificador reduz 25. HIGH >= 75, MEDIUM >= 50, LOW < 50. Não há leitura de valores nem cálculo de cardinalidade, e esta versão não possui metadados explícitos de PK/FK.
Segurança e limitações
Somente SQL Oracle SELECT/WITH estruturado é gerado. Não há superfície para DDL/DML, SQL arbitrário em filtros, credenciais, rede, banco ou APIs externas.
Limitações conhecidas:
relacionamentos são inferidos nominalmente e podem produzir falsos positivos ou negativos semânticos;
esta versão não possui metadados explícitos de PK/FK;
campos genéricos ou compartilhados podem produzir caminhos inadequados;
candidatos
LOWnão devem ser utilizados automaticamente;candidatos
MEDIUMsão inferências, não confirmações;explicar_sqlfaz análise sintática conservadora e não valida semanticamente a consulta no Oracle;alguns logs com acentos podem ter exibição cosmética incorreta no console Windows configurado como CP1252.
Os XLSX são sempre tratados como read-only. Datasets locais (data/*, *.xlsx, *.xls, *.csv e *.parquet) são ignorados e não fazem parte do repositório.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides contextual Oracle database schema information to AI assistants, enabling them to understand and work with large databases containing thousands of tables. Supports multi-database connections, smart schema caching, table lookups, and relationship mapping.
- AlicenseNot gradedqualityDmaintenanceEnables extraction and querying of database schema metadata from PostgreSQL, Snowflake, SQL Server, BigQuery, and Oracle databases, saving results locally for analysis.MIT
- FlicenseNot gradedqualityCmaintenanceProvides tools to inspect dataset schema, profile, preview, and execute read-only SQL queries on uploaded CSV/Excel files.
- AlicenseNot gradedqualityBmaintenanceTurns Excel/CSV folders into a traceable, read-only AI knowledge layer; provides deterministic data queries, schema discovery, and evidence-backed search via MCP.1Apache 2.0
Related MCP Connectors
Find novel, statistically validated patterns in tabular data — hypothesis-free.
Formula-backed WorkPaper tools for workbook readback, input edits, and JSON persistence.
Generate Tableau .twb/.twbx workbooks: 47 tools for charts, dashboards, rules, CSV pipelines.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/paul-92/data-engineering-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server