Conectar PostgreSQL a un agente IA mediante MCP. Háblale a tu base de datos.

14 de enero de 2026

Conectar PostgreSQL a un agente IA mediante MCP. Háblale a tu base de datos.

Me encontraba en una situación que probablemente te suene familiar. Tenía un proyecto antiguo, una aplicación web funcional que lleva años funcionando, alimentada por una base de datos PostgreSQL que... bueno, digamos que ha vivido su propia vida.

Cada cierto tiempo, el cliente pedía información que no se podía ver en la aplicación web, por lo que era necesario consultar directamente la base de datos. Y cada vez, me enfrentaba al mismo ritual:

  1. Abrir el cliente de base de datos
  2. Recordar qué tabla almacena qué información (la documentación estaba, sabes, "actualizada")
  3. Escribir consultas SQL que parecían novelas de misterio con múltiples JOINs
  4. Esperar varios minutos mientras la base de datos trabajaba
  5. Formatear los resultados para que fueran comprensibles

No era técnicamente difícil, pero sí increíblemente lento y repetitivo. Y no nos engañemos, hacer consultas SQL no es divertido.

Primer Intento de solución: "IA, Ayúdame a Escribir SQL"

Como buen desarrollador del siglo XXI, mi primer pensamiento fue: "¿Puede la IA ayudarme con esto?". Empecé a usar chats con modelos de IA para generar las consultas SQL.

El proceso era algo así:

Yo: Necesito una consulta que me muestre estos datos.

IA: Aquí tienes la consulta SQL:

Funcionaba... hasta que no funcionaba. El problema fundamental: la IA no conocía mi base de datos. Tenía que explicarle constantemente:

"La tabla usuarios se llama realmente clientes" "Los campos de fecha están en formato timestamp" "La relación entre clientes y pedidos es a través de cliente_id, no usuario_id" "Ten cuidado que hay clientes inactivos en la tabla clientes_baja"

Cada consulta me llevaba más tiempo explicando el contexto que escribiendo SQL yo mismo. Era como tener que entrenar a alguien cada vez que quería hacer una pregunta, bueno, de hecho era literalmente así.

El Momento MCP: Cuando Todo Cambió

Investigando sobre cómo las IAs podrían conectarse directamente a bases de datos, apareció MCP (Model Context Protocol). Y fue como si se encendiera una bombilla.

MCP no es un modelo ni una IA nueva, es un protocolo que permite a los modelos interactuar con herramientas externas (bases de datos, APIs, sistemas locales) de forma estructurada.

¿Y si en lugar de explicarle a la IA cómo es mi base de datos, pudiera simplemente dejarla hablar con ella directamente?

Dejé de pensar en "cómo genero mejores consultas SQL" y empecé a pensar en "cómo conecto la IA directamente a mis datos".

La diferencia es sutil pero fundamental:

Eliminaba el intermediario (yo) y con ello, toda la fricción.

Experimento #1: Gemini-cli y la Vía Fácil

Empecé con Gemini-cli porque descubrí que tenía un sistema de extensiones ya maduro. Entre ellas, una extensión oficial para PostgreSQL.

La instalación fue ridiculamente sencilla:

gemini extensions install https://github.com/gemini-cli-extensions/postgres

Configuré las variables de entorno, y en minutos, tenía una IA que podía consultar mi base de datos real. El momento mágico fue cuando pregunté (ejemplo figurado):

Yo: "Muéstrame todos los clientes de Madrid"

Gemini: "Tengo 3 clientes en Madrid: Ana García, Carlos López y María Pérez. Ana se registró hace 2 semanas y ya ha hecho un pedido."

No me devolvió una consulta SQL, me devolvió una respuesta basada en los datos. La IA había ejecutado la consulta, interpretado los resultados, y me los presentó de forma natural.

Ventajas de este enfoque:

🚀 Experimento #2: Opencode y el Camino Manual

Como últimamente estoy experimentando bastante con Opencode (una herramienta que me está encantando), quise ver cómo podía lograr lo mismo con ellos. Aquí la historia fue diferente.

Opencode no tiene un sistema de extensiones predefinido como Gemini-cli. En su lugar, utiliza MCP de forma más nativa, pero requiere que configuremos los servicios MCP manualmente.

El proceso fue:

  1. Instalar postgres-mcp como paquete npm
  2. Configurar opencode.json para que usara este MCP local
  3. Ajustar las variables de entorno para que coincidieran

Aunque fue más manual que el enfoque de Gemini-cli, una vez funcionó, la experiencia fue igual de impresionante. La diferencia principal está en la filosofía:

Este Repositorio No Es el Proyecto, Es Mi Guía

He creado un pequeño repositorio en mi cuenta de GitHub con la configuración y una base de datos de ejemplo para probarlo. Es principalmente una documentación para mi yo del futuro. Pero como compartir es vivir, ahí queda, por si a alguien le es útil o quiere hacer pruebas.

Conclusiones

Si no te gustan, tengo otras. Pero:

← Volver al blog