Skip to main content
Glama
paul-92

data-engineering-mcp

by paul-92

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 SQL

Novos 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.py

O 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_tabelas

  • inferir_relacionamentos, encontrar_caminho, gerar_join

  • atualizar_catalogo, status_catalogo

  • gerar_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 LOW não devem ser utilizados automaticamente;

  • candidatos MEDIUM são inferências, não confirmações;

  • explicar_sql faz 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.

Install Server
F
license - not found
B
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides 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.
  • A
    license
    Not graded
    quality
    B
    maintenance
    Turns Excel/CSV folders into a traceable, read-only AI knowledge layer; provides deterministic data queries, schema discovery, and evidence-backed search via MCP.
    1
    Apache 2.0

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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