Logo GCP con Eduardo

GCP con Eduardo

Cómo Conectar IA a las Bases de Datos de tu Empresa (Sin riesgo y sin Vendor Lock-in)
✦ Guía Técnica & Arquitectura

Cómo Conectar IA a las Bases de Datos de tu Empresa (Sin riesgo y sin Vendor Lock-in)

Conectar un LLM a los datos corporativos no debería significar entregar las credenciales de una base de datos al modelo. La arquitectura correcta introduce una frontera de capacidades, contratos y políticas. En este artículo veremos cómo utilizar Model Context Protocol (MCP) para conectar IA con bases de datos, BI, CRM y ERP manteniendo seguridad, gobernanza y libertad tecnológica.

Lo que aprenderás

El objetivo no es simplemente conseguir que un chatbot consulte una tabla. El objetivo es diseñar una integración que pueda sobrevivir a cambios de modelos, proveedores cloud, ERPs, bases de datos y arquitecturas de agentes.

Entender MCP

Qué problema resuelve Model Context Protocol y por qué introduce una frontera útil entre la aplicación de IA y los sistemas corporativos.

Proteger los datos

Cómo evitar que un LLM tenga acceso arbitrario a SQL, credenciales, tablas sensibles o funciones de escritura.

Evitar lock-in

Cómo separar el contrato de las herramientas empresariales del modelo concreto que las consume.

Diseñar para producción

Seguridad, observabilidad, permisos mínimos, validación, límites de coste, tolerancia a fallos y gobernanza.

MCP LLM Python SQL ERP CRM BI API JSON Schema Zero Trust

¿Qué es Model Context Protocol?

Si buscas qué es Model Context Protocol, la forma más útil de entenderlo desde arquitectura empresarial es pensar en MCP como un contrato estandarizado entre una aplicación de IA y las capacidades que existen fuera del modelo.

MCP no es una base de datos ni un modelo de IA. Es una capa de interoperabilidad que permite que un cliente o host de IA descubra y utilice capacidades expuestas por servidores, como herramientas, recursos y prompts, sin tener que acoplar toda la aplicación a una implementación específica del proveedor del modelo.

Esta distinción es fundamental. El LLM no debería convertirse en el nuevo administrador de sistemas de la empresa. El modelo razona y decide qué capacidad necesita; la capa de herramientas decide qué puede hacer realmente, con qué parámetros, contra qué sistema y bajo qué políticas.

Por eso, en una arquitectura madura, MCP funciona como una frontera de integración: el cliente de IA conoce un contrato y el servidor conoce los detalles del ERP, CRM, data warehouse, API o base de datos que está detrás.

La arquitectura correcta para conectar IA a datos empresariales

Una arquitectura robusta separa cinco responsabilidades: el usuario, el host de IA, el modelo, el servidor de herramientas y el sistema corporativo. El punto crítico es que el LLM no necesita conocer la topología interna de la empresa para utilizar una capacidad empresarial.

1

Host / Aplicación de IA

Gestiona la conversación, identidad del usuario, contexto y ciclo de ejecución. Es el componente que conecta el modelo con los servidores MCP autorizados.

2

LLM

Interpreta la intención y selecciona una herramienta disponible. No debería recibir secretos de infraestructura ni acceso SQL ilimitado.

3

MCP Server

Expone capacidades concretas con contratos explícitos: consultar ventas, buscar clientes, obtener KPIs o ejecutar una operación permitida.

4

Data / Business Systems

ERP, CRM, warehouse, APIs y bases de datos permanecen protegidos detrás de una capa de autorización y validación.

Matriz de decisión: ¿cómo conectar un LLM a tus sistemas?

No todas las integraciones tienen el mismo nivel de acoplamiento. El error habitual es empezar directamente por una integración específica con el proveedor del modelo y descubrir demasiado tarde que la lógica empresarial ha quedado atrapada dentro de ella.

Patrón Latencia Control Coste operativo Lock-in Uso recomendado
LLM → SQL directo Baja / media Bajo Variable Medio / alto Prototipos controlados, nunca como frontera de seguridad.
LLM → API propietaria Baja / media Medio Medio Alto Integraciones tácticas donde el proveedor no sea estratégico.
LLM → capa de herramientas → datos Media Alto Medio Bajo Aplicaciones empresariales con requisitos de gobernanza.
LLM → MCP → herramientas corporativas Media Alto Medio Bajo Arquitecturas multi-modelo, agentes y ecosistemas de herramientas.
LLM → MCP → dominio → múltiples backends Media / alta Muy alto Mayor Muy bajo Arquitecturas enterprise con fuerte desacoplamiento y gobernanza.

Cómo conectar IA a un ERP sin convertir el LLM en administrador del ERP

La pregunta “cómo conectar IA a un ERP” suele recibir una respuesta demasiado simple: proporcionar al modelo una API del ERP. Arquitectónicamente, eso no es suficiente.

Un ERP contiene operaciones críticas: pedidos, clientes, facturas, inventario, pagos y datos financieros. Una integración basada exclusivamente en prompts puede provocar que una intención ambigua termine ejecutando una operación con consecuencias reales.

La alternativa es modelar capacidades de negocio explícitas. Por ejemplo, en lugar de exponer:

antipattern.sql
execute_sql(sql: string)

se deberían exponer operaciones semánticas y limitadas:

business-tools
get_customer_balance(customer_id)
get_sales_summary(region, period)
search_customer(email)
create_sales_order(draft_id)

La diferencia parece pequeña, pero cambia completamente la superficie de seguridad. En el segundo caso, el servidor puede aplicar autorización, validación de parámetros, límites, auditoría y políticas de negocio antes de tocar el ERP.

Antipatrón crítico: dar acceso SQL directo al LLM

⚠ Error de arquitectura

Dar al modelo una conexión directa y privilegiada a PostgreSQL, MySQL, SQL Server, Oracle o un warehouse es una mala frontera de seguridad.

Aunque el modelo genere SQL sintácticamente correcto, todavía quedan problemas de autorización, exfiltración de datos, joins innecesarios, consultas de coste elevado, acceso a columnas sensibles, enumeración de esquemas y operaciones destructivas.

El problema no es únicamente que el LLM pueda equivocarse. El problema es que se le está otorgando una capacidad demasiado amplia.

✓ Patrón recomendado

Sustituye el acceso genérico por herramientas con intención de negocio. Valida los argumentos antes de llegar a la base de datos, utiliza consultas parametrizadas, aplica permisos mínimos y registra cada invocación.

  • Allowlist de operaciones permitidas.
  • Credenciales de solo lectura cuando la operación lo permita.
  • Row-level y column-level security.
  • Timeouts y límites de filas.
  • Rate limiting por usuario y aplicación.
  • Auditoría de invocaciones y resultados.
  • Separación estricta entre operaciones de lectura y escritura.

Implementación práctica: servidor de herramientas seguro

El siguiente patrón muestra la idea fundamental: el modelo nunca decide libremente qué SQL ejecutar. Decide qué herramienta necesita utilizar. El servidor traduce esa intención a una operación controlada.

sales_mcp_server.py — patrón de referencia
from typing import Literal
from pydantic import BaseModel, Field
from mcp.server import MCPServer

mcp = MCPServer(
    "enterprise-data",
    instructions=(
        "Use read-only business tools. Never request raw SQL. "
        "Return concise business results."
    ),
)


class SalesQuery(BaseModel):
    region: str = Field(min_length=2, max_length=40)
    period: Literal["7d", "30d", "90d", "ytd"]
    limit: int = Field(default=20, ge=1, le=100)


@mcp.tool(title="Get sales summary")
async def get_sales_summary(query: SalesQuery) -> dict:
    """
    Read-only business capability.

    The model selects the tool and supplies validated parameters.
    It never receives database credentials or arbitrary SQL access.
    """

    sql = """
        SELECT
            region,
            SUM(amount) AS revenue,
            COUNT(*) AS orders
        FROM sales
        WHERE region = :region
          AND sale_date >= :start_date
        GROUP BY region
        LIMIT :limit
    """

    # Production implementation should:
    # 1. Resolve period into a server-side date range.
    # 2. Execute using a read-only database identity.
    # 3. Enforce tenant/user authorization.
    # 4. Apply query timeout and resource limits.
    # 5. Emit audit and cost telemetry.
    # 6. Return only the fields required by the caller.

    result = await execute_parameterized(
        sql,
        {
            "region": query.region,
            "start_date": resolve_period(query.period),
            "limit": query.limit,
        },
    )

    return {
        "region": query.region,
        "period": query.period,
        "rows": result.rows,
    }


async def execute_parameterized(sql: str, params: dict):
    """
    Database adapter.

    In production this function should use:
    - connection pooling
    - parameterized statements
    - statement timeout
    - read-only credentials
    - telemetry
    - retry policy only where safe
    """
    raise NotImplementedError


def resolve_period(period: str):
    # Resolve dates on the server, not inside the LLM.
    raise NotImplementedError

El fragmento es un patrón arquitectónico: la capa MCP define la capacidad empresarial y el adaptador de datos mantiene aislados los detalles de infraestructura. Las funciones de infraestructura deben implementarse con el driver y controles de seguridad correspondientes al motor utilizado.

FinOps: el problema no es solo la seguridad

Una integración puede ser segura y, aun así, resultar económicamente desastrosa. Cuando conectas un LLM con grandes volúmenes de datos, existen dos presupuestos simultáneos: el presupuesto de inferencia y el presupuesto de consulta.

Coste del modelo

  • Tokens enviados al modelo.
  • Tool descriptions demasiado grandes.
  • Resultados con demasiadas filas.
  • Reintentos innecesarios.
  • Agentes que ejecutan demasiados pasos.

Coste del dato

  • Full scans sobre tablas grandes.
  • Queries sin particionamiento.
  • Joins innecesarios.
  • Falta de límites de filas.
  • Ausencia de timeouts y cuotas.
✓ Regla FinOps

Una herramienta de IA debe tener un presupuesto. Define límites de tiempo, cardinalidad, concurrencia y coste esperado. El servidor MCP es un lugar natural para aplicar estas políticas antes de ejecutar una operación contra sistemas corporativos.

Patrones de diseño para una arquitectura MCP enterprise

MCP no elimina la necesidad de arquitectura. Al contrario: cuanto más poderosa es la capa de herramientas, más importante es definir correctamente los límites del dominio.

A

Capability-based design

Publica capacidades concretas en lugar de exponer APIs internas completas. Una herramienta debería responder a una intención de negocio clara.

B

Least privilege

Cada servidor y herramienta debe utilizar la identidad mínima necesaria. Una herramienta de reporting no debería poder crear facturas.

C

Read / Write separation

Las consultas de lectura y las operaciones con efectos secundarios deben tener diferentes permisos, políticas y niveles de confirmación.

D

Provider independence

La definición de la capacidad debe pertenecer al dominio empresarial, no al proveedor concreto del LLM. Así se puede cambiar de modelo sin reescribir las integraciones centrales.

E

Observabilidad end-to-end

Correlaciona usuario, aplicación, modelo, tool call, autorización, backend, latencia, filas procesadas y coste.

F

Defence in depth

No confíes en una sola barrera. Validación de schema, autorización, red, credenciales, políticas de datos y auditoría deben trabajar juntas.

Cómo evitar el Vendor Lock-in

El vendor lock-in aparece cuando la lógica de negocio termina mezclada con APIs, formatos de herramientas, prompts y mecanismos propietarios de un único proveedor.

Una arquitectura más resistente establece un contrato independiente:

Contrato estable

Define las capacidades empresariales con nombres, descripciones, parámetros y esquemas claros. Ese contrato representa la función de negocio, no la implementación interna.

Implementación sustituible

El backend puede cambiar de PostgreSQL a un warehouse, de un ERP a otro o de un servicio cloud a otro sin obligar al cliente de IA a conocer cada detalle interno.

Principio arquitectónico: desacopla el “qué puede hacer la empresa” del “cómo lo implementa actualmente la infraestructura”.

Ese desacoplamiento es especialmente valioso cuando una organización quiere utilizar diferentes modelos, proveedores cloud o aplicaciones de IA sin duplicar toda la capa de integración.

Checklist de implementación paso a paso

Antes de llevar una integración MCP a producción, utiliza este framework como filtro arquitectónico.

Identifica las capacidades de negocio

Empieza por acciones como consultar ventas, buscar clientes o recuperar KPIs. No empieces por tablas ni endpoints.

Define contratos y schemas

Cada herramienta debe tener una entrada validable, una descripción inequívoca y una salida estructurada.

Aplica autorización

Decide qué usuarios, aplicaciones y agentes pueden utilizar cada capacidad. Nunca confíes únicamente en la intención del prompt.

Protege el backend

Utiliza identidades de mínimo privilegio, queries parametrizadas, límites de recursos, timeouts y controles específicos del motor.

Controla el coste

Establece límites de filas, tiempo, concurrencia y frecuencia de ejecución. Mide tanto coste de inferencia como coste de datos.

Instrumenta y audita

Registra quién pidió la operación, qué herramienta se ejecutó, con qué parámetros, qué backend respondió y cuánto costó.

Prueba escenarios adversariales

Evalúa prompt injection, acceso horizontal entre tenants, consultas excesivas, parámetros inválidos, datos sensibles y operaciones no autorizadas.

Diseña para sustitución

Comprueba que puedes cambiar el modelo o backend sin reconstruir todas las capacidades empresariales.

Preguntas frecuentes

¿Qué es Model Context Protocol?

Model Context Protocol, o MCP, es un protocolo estandarizado para conectar aplicaciones de IA con sistemas externos que exponen herramientas, recursos y otras capacidades. En una arquitectura empresarial permite desacoplar el modelo de IA de los sistemas corporativos que contienen datos y lógica de negocio.

¿Cómo conectar un LLM a una base de datos sin exponer SQL?

La estrategia recomendada es crear una capa de herramientas que exponga operaciones de negocio concretas. Los parámetros deben validarse, las consultas deben ser parametrizadas y el backend debe utilizar permisos mínimos, límites de recursos y auditoría. El LLM selecciona una capacidad; no obtiene un intérprete SQL privilegiado.

¿Cómo conectar IA a un ERP sin crear dependencia de un proveedor?

Coloca una capa de capacidades entre el cliente de IA y el ERP. El contrato describe acciones de negocio como consultar clientes, obtener pedidos o recuperar indicadores. La implementación interna puede evolucionar sin obligar al cliente de IA a conocer todos los detalles del ERP o del proveedor del modelo.

La arquitectura gana cuando el modelo deja de ser el centro

El salto desde un chatbot experimental hacia una plataforma de IA empresarial ocurre cuando dejamos de pensar únicamente en prompts y empezamos a diseñar contratos, capacidades, permisos y límites.

Conectar IA a los datos de una empresa no significa conectar el LLM directamente a toda la empresa. Significa construir una frontera controlada entre la inteligencia y las capacidades corporativas.

MCP puede ocupar precisamente ese espacio: un contrato de interoperabilidad que permite construir clientes de IA y servidores de herramientas sin convertir cada integración en una dependencia propietaria.

Sobre el Autor: Eduardo Martínez Agrelo

AI & Data Architect

Eduardo Martínez Agrelo es AI & Data Architect, especializado en arquitectura de datos, inteligencia artificial y diseño de plataformas empresariales. Su enfoque combina ingeniería de datos, arquitectura cloud, sistemas de IA y decisiones de diseño orientadas a producción, escalabilidad, seguridad y eficiencia de costes.

© 2026 Eduardo Martínez Agrelo · AI & Data Architect