Enterprise Big Data Copilot
Enterprise Big Data Copilot
Un copiloto de IA que convierte preguntas en lenguaje natural en SQL de Trino validado y consciente del esquema, utilizando RAG, herramientas MCP e inferencia local de LLM.
Resumen
Enterprise Big Data Copilot permite a los usuarios consultar plataformas de Big Data en lenguaje natural. Un pipeline de LangGraph recupera documentación relevante (RAG) y metadatos de esquema en vivo (MCP), genera SQL con un LLM local (Ollama), lo valida contra reglas de seguridad y esquema, y — cuando la plataforma es accesible — lo ejecuta en Trino y devuelve filas reales.
Related MCP server: Doris MCP Server
Características
Generación de Texto-a-SQL en lenguaje natural para Trino
Inferencia de LLM local con Ollama (sin API en la nube)
Recuperación RAG sobre documentación de Trino / Hive / Iceberg (Qdrant)
Generación consciente del esquema basada en metadatos de catálogo en vivo
Validación de SQL (aplicación de SELECT de solo lectura, verificación de análisis, anclaje de esquema) con un bucle de regeneración automática
Ejecución de consultas y recuperación de resultados de Trino en modo de mejor esfuerzo
Servidor Model Context Protocol (MCP) que expone herramientas de metadatos, consultas y perfiles
API compatible con OpenAI para Open WebUI
Trazado de pipeline de extremo a extremo con LangSmith
Arquitectura
flowchart LR
User --> API
API --> Agent
Agent --> RAG
RAG --> Qdrant
Agent --> LLM
Agent --> MCP
MCP --> Trino
Agent --> Validation
Agent --> Response
Response --> UserStack Tecnológico
Tecnología | Propósito |
Python + FastAPI | Backend y API REST/compatible con OpenAI |
LangGraph | Orquestación del pipeline (RAG → esquema → SQL → validar → ejecutar) |
Ollama | LLM local ( |
LangChain + Qdrant | Recuperación de documentos RAG |
FastMCP | Servidor Model Context Protocol (herramientas) |
LangSmith | Trazado y monitoreo del pipeline |
Trino | Motor de consultas SQL (catálogo de demostración TPCH) |
Open WebUI | Interfaz de chat (opcional) |
Docker | Infraestructura contenerizada |
Estructura del Proyecto
app/
├── agent/ # SQL agent + prompts (Ollama)
├── api/ # REST + OpenAI-compatible endpoints
├── core/ # Config, models, exceptions, logging
├── formatter/ # Response formatting
├── mcp/ # MCP server, client, catalog services
├── orchestrator/ # LangGraph pipeline
├── rag/ # Ingestion and retrieval (Qdrant)
├── services/ # Trino client
└── validator/ # SQL validation
tests/ # pytest suite
docker/ # App image + Trino config
docs/ # RAG knowledge base
scripts/ # Document ingestion CLIComenzando
Requisitos previos
Python 3.11 o 3.12 (3.13 no es compatible)
Docker + Docker Compose
GPU opcional (Ollama puede ejecutarse en CPU)
Instalación
git clone https://github.com/hani-ben-dhaou/Enterprise-Big-Data-Copilot.git
cd entreprise-bigdata-copilot
python -m venv .venv
# Windows: .venv\Scripts\activate | macOS/Linux: source .venv/bin/activate
pip install -r requirements.txt
pip install -r requirements-dev.txt # pytestConfiguración
cp .env.example .envVariables clave (los valores predeterminados funcionan para desarrollo local):
Variable | Descripción |
| Servidor y modelo LLM ( |
| Modelo de embeddings ( |
| Base de datos vectorial Qdrant |
| Trino (catálogo predeterminado |
|
|
|
|
| Ejecutar SQL validado en Trino |
| Establecer |
| Tu clave API de LangSmith (el rastreo permanece desactivado si está vacía) |
| Nombre del proyecto LangSmith (predeterminado |
Ejecutar
# 1. Start infrastructure (Ollama, Qdrant, Trino)
docker compose up -d
# 2. Pull models and ingest documentation (Qdrant must be up)
docker exec -it copilot-ollama ollama pull llama3.2
docker exec -it copilot-ollama ollama pull mxbai-embed-large
python scripts/ingest_docs.py
# 3. Start the API
uvicorn app.main:app --reload --port 8000
# 4. Optional: standalone MCP server (SSE on :8001)
python -m app.mcp.serverUso
Haz una pregunta en lenguaje natural:
curl -X POST http://localhost:8000/api/v1/query \
-H "Content-Type: application/json" \
-d '{"question":"Show me the top 10 customers by total revenue last month"}'La respuesta incluye el SQL generado, una explicación, una puntuación de confianza, advertencias y — cuando la ejecución está habilitada — las filas de resultado:
{
"question": "Show me the top 10 customers by total revenue last month",
"sql": "SELECT ...",
"explanation": "...",
"confidence": 0.92,
"warnings": [],
"dialect": "trino",
"results": [["42", "Acme", 98765.00]],
"execution": {"status": "ok", "columns": ["id", "name", "revenue"], "row_count": 1, "truncated": false}
}Otros endpoints: GET /api/v1/schema (listar catálogo), GET /api/v1/health y POST /v1/chat/completions (compatible con OpenAI, usado por Open WebUI).
Pruebas
pytestLa suite es hermética y se ejecuta sin una pila en vivo (146 pruebas).
Trazado y Monitoreo
Cada consulta del pipeline (recuperación RAG, búsqueda de esquema, generación de SQL, bucles de validación, ejecución) se puede rastrear con LangSmith. Crea una cuenta gratuita, obtén una clave API y establece: LANGCHAIN_TRACING_V2=true, LANGCHAIN_API_KEY=<tu clave> y opcionalmente LANGCHAIN_PROJECT=copilot. El rastreo permanece desactivado mientras no se configure ninguna clave.

Docker
docker compose ejecuta la pila completa:
Servicio | Contenedor | Puerto |
Ollama |
| 11434 |
Qdrant |
| 6333 |
Trino |
| 8080 |
Open WebUI |
| 3000 |
Copilot API |
| 8000 |
MCP Server |
| 8001 |
Los volúmenes con nombre persisten los modelos de Ollama, los datos de Qdrant y los datos de Open WebUI. El volumen ollama se declara external — créalo una vez si no está presente:
docker volume create ollama
docker compose up -d
docker compose ps
docker compose logs -f copilot-api
docker compose downNota para Windows: MCP sobre SSE real puede ser inestable en el bucle de eventos de Windows. Mantén
MCP_TRANSPORT=inprocesspara el desarrollo local en Windows; usa SSE en Linux/Docker.
This server cannot be installed
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
- AlicenseBqualityDmaintenanceProvides AI models with structured access to Trino's distributed SQL query engine, enabling LLMs to directly query and analyze data stored in Trino databases.310MIT
- AlicenseNot gradedqualityDmaintenanceEnables natural language querying of Apache Doris databases via LLM-powered SQL generation, execution, and metadata management through the MCP protocol.9Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables listing and querying Trino tables via MCP, supporting arbitrary SQL queries against a Trino cluster.MIT
- FlicenseAqualityAmaintenanceNatural language to SQL engine with multi-connector support (PostgreSQL, MySQL, Snowflake, BigQuery, DuckDB), document QA, semantic caching, and self-hosted MCP server.92
Related MCP Connectors
The grounded data layer for any LLM: governed SQL, metrics, lineage and catalog over your data.
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
GibsonAI MCP server: manage your databases with natural language
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/hani-ben-dhaou/Enterprise-Big-Data-Copilot'
If you have feedback or need assistance with the MCP directory API, please join our Discord server