Skip to main content
Glama
paul-92

data-engineering-mcp

by paul-92

data-engineering-mcp

Универсальный локальный офлайн-сервер MCP, который преобразует заголовки XLSX в катала направляемый каталог, выводит кандидатные связи и генерует только SQL Oracle SELECT/WITH. Не обращатся к базам данныз, не выпоняет SQL и не имеет интеграции или зависимости от Power BI.

Требования и установка

  • Python 3.10

  • MCP Python SDK 2.x (MCPServer — актуальный публичный API установленной версии)

python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e ".[dev]"

Зависимости времени выпонения: mcp, pandas, openpyxl и pydantic; тесты использят pytest. Каталог использует openpyxl напрямую для открытия работых книг в режиме только для чтения и считывания только первой необходимой строки.

Related MCP server: io.github.Optisol-Business/db-metadata-extractor-mcp

Данные и архитектура

Наборы данных предоставляются пользователем локально и не являются частью репозитория. Поместите файлы .xlsx в data/; они остаются доступными для MCP, но игнорируются Git. Каждый файл преставляет собой таблицу. Логическое имя убирает .xlsx, ex префик rawzn. и суффик _ESINTETICO; сравнение без учёта регистра. Используется первый лист не называемый SQL, в котором есть заголовки; записи не участвуют в обнаручении.

data/*.xlsx -> Catalog -> RelationshipEngine -> SQLGenerator
                                      \-> explicação conservadora de SQL

Новые файлы обнаружаются с помощью atualizar_catalogo без изменения кода. При обновлении также обнаружаются удаления и изменения в отсортированном списке заголовков, обновляется отметка времени и пересчитываются кандидаты. Локальный каталог схем/данных настроивается через переменную DATA_ENGINEERING_MCP_DATA_DIR; по умолчанию — data/.

Запуск и тесты

.\.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

Транспорт по умолчанию — stdio. Логи выводятся в stdeerr, https... — to не нарушать протокол. Set DATA_ENGINEERING_MCP_DATA_DIR to use другу локальную папку.

Инструменты

  • 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 принимает tabelas, colunas и типизированные фильтры {tab?, column, operator, value}. Операторы: =, <>, >, >=, <, <=, IN, IS NULL, IS NOT NULL, LIKE. Значения превращаются в переменные связыва (:pl), никогда не под защищены как текст. Неоднознаные колонки требоют TABELA.COLUNA. JOIN по умолчанию — LEFT JOIN — конservатированный, сохараняющий строки первой таблицы; инструмент выводит кандидатов MEDIUM и по умолчаю отклоняет LOW.

Пример аргументов:

{
  "tabelas": ["RAW_HAP_TB_USUARIO", "RAW_HAP_TB_PESSOA"],
  "colunas": ["CD_USUARIO", "NM_PESSOA_RAZAO_SOCIAL"],
  "filtros": [{"column": "FL_STATUS_USUARIO", "operator": "=", "value": 2}]
}

Доверие к связям

Каждый результат — это номинальный кандидат, а не подтверждённый PK/FK. Балл начинется с 20 за одинаковое имя; добавляет 30 за приставу CD_, ID_ or NU_; добавлет 20, когда сущность колонки встречается в имени таблицы, и еще 10, если она встречается в обоих. Если сущность встречается в более чем двух таблицах, балл снижается на 5 за каждую следующую встречу (максимум: 25); общее пое без идентифицирующего префикса снижается на 25. HIGH >= 75, MEDIUM >= 50, LOW < 50. Значения не считываются, кардинальность не вычисляются; в этой верстем нет явных метаданных PK/FK.

Безопасность и ограничения

Генерируется only structure орканный SQL Oracle SELECT/WITH. Нет поверхности для DDL/DML, арибального SQL than SQL в фильтрах, учётных данных, сети, базы данныз or внешних API.

Известные ограничения:

  • Связи виводятся по именам и могут давать ложные срабатывания или семантически ложные отричательные результаты;

  • эта версия не содержит явных метаданных PK/FK;

  • общие поля или поля с общими значения могут дать неподходящие маршеты;

  • кандидаты LOW не следует применять автоматически;

  • кандидаты MEDIUM — это SEDIUM — это предоложения, не подобждения;

  • explicar_sql выполняет консервативный синтаксичениский а анализ и не делает семантической вали запроса в Oracle;

  • некоторые логи с акцентами may некорректно визуально отображаться в консоли Windows, настроенной на CP1252.

XLSX-али all times обрабатываются как только для чтения. Локальные наборы данных (data/*, *.xlsx, *.xls, *.csv и *.parquet) игнорируются и не являтся частю репозитория.

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