# Que Claude consulte Postgres

> El equipo pide al departamento técnico cifras que están en la base de datos.

Esta configuración es para equipos de ingeniería y datos que responden una y otra vez las mismas preguntas sobre la base de datos. Claude se conecta a Postgres mediante un servidor MCP con un rol de solo lectura, escribe y ejecuta SQL y publica en Slack las cifras recurrentes. Al final, cualquiera puede preguntar en lenguaje normal sin tener acceso a producción.

## Pasos

1. **Crea un rol de lectura**: Crea un rol de Postgres dedicado con LOGIN y dale USAGE solo en los esquemas necesarios y SELECT solo en las tablas necesarias. Configura default_transaction_read_only y un statement_timeout en el rol para que las consultas largas o de escritura fallen rápido. No reutilices nunca el usuario de tu aplicación.
   Consejo: Haz SET ROLE al nuevo rol y prueba un INSERT para confirmar que falla.
2. **Apúntalo a una réplica**: Conecta el agente a una réplica de lectura o a una base de datos de informes copiada de producción. Si solo tienes la principal, usa el rol de solo lectura y un límite bajo de conexiones. Restringe la red para que solo el equipo que ejecuta el servidor MCP pueda llegar a ella.
   Consejo: Un statement_timeout de pocos segundos corta cualquier join desbocado.
3. **Regístralo en tu IA**: Añade un servidor MCP de Postgres, como Postgres MCP Pro en modo restringido u otro de solo lectura, con la cadena de conexión del rol. Regístralo en la configuración de Claude Desktop, en los ajustes MCP de Cursor o con claude mcp add en Claude Code. Guarda la cadena de conexión en una variable de entorno, no en un archivo versionado.
   Consejo: Busca en la documentación del servidor una opción de solo lectura o modo restringido y actívala.
4. **Describe el esquema**: Escribe unas notas breves sobre las tablas clave: qué representa cada fila, cómo se unen y qué columnas guardan importes o fechas. Añádelas a un proyecto de Claude, a CLAUDE.md o a las reglas de Cursor. Pide a Claude que muestre el SQL que ejecutó en cada respuesta para poder revisarlo.
   Consejo: Incluye definiciones de negocio como cliente activo para que las cifras cuadren con tus paneles.
5. **Comparte las respuestas**: Conecta el servidor MCP de Slack y limítalo a un canal de métricas. Pide a Claude que publique la pregunta, la cifra y el SQL utilizado. Para cifras programadas, ejecuta Claude Code desde cron o CI con la misma configuración.
   Consejo: Publica el SQL junto a la respuesta para que cualquiera pueda reproducirla.

## Prompts para probar

- ¿Cuántas cuentas nuevas se registraron cada semana en las últimas ocho semanas? Enséñame el SQL.
- ¿Qué diez clientes tuvieron más importe en pedidos el mes pasado y cómo se compara con el mes anterior?
- Explícame qué guarda la tabla subscriptions y cómo se relaciona con invoices.
- Busca pedidos que lleven más de 48 horas en pendiente y publica el número en #metricas.
- Escribe una consulta de bajas semanales con nuestra definición de cliente activo, pero no la ejecutes todavía.

## Qué necesitas

- Una base de datos Postgres en la que puedas crear roles y permisos
- Idealmente una réplica de lectura o copia para informes
- Claude Desktop, Claude Code o Cursor
- Un canal de Slack para las métricas compartidas

## Límites

- Claude puede escribir SQL que funciona pero responde a otra pregunta; las cifras importantes necesitan revisión humana.
- Los resultados grandes se truncan o resumen; pide agregados en lugar de filas sueltas.
- El agente solo conoce el esquema y tus notas; la lógica de negocio que vive en el código de la aplicación no la ve.

## Notas de seguridad

- Solo un rol de base de datos de lectura.
- Excluye tablas con datos personales salvo que sea imprescindible.
- Mejor una réplica que la base principal.

## Servidores MCP

- [Postgres MCP Server](https://github.com/modelcontextprotocol/servers-archived): database-read
- [Slack MCP Server](https://docs.slack.dev/ai/mcp-server): channel-read, message-write

## Preguntas frecuentes

**¿Puede el agente modificar o borrar datos?**

No si sigues los pasos: el rol solo tiene SELECT y transacciones de solo lectura. Muchos servidores MCP ofrecen además un modo de solo lectura, pero la protección real es el rol de la base de datos.

**¿Qué aplicaciones sirven?**

Claude Desktop, Claude Code y Cursor admiten servidores MCP locales configurados con un comando y variables de entorno. Claude Code es lo más sencillo para ejecuciones programadas.

**¿Y los datos personales?**

Los resultados pasan por el modelo, así que excluye de los permisos las tablas o columnas con datos personales, o expón una vista sin ellas. Revisa la política de datos de tu empresa antes de conectar datos de clientes.

**¿Y si las respuestas son incorrectas?**

Las cifras erróneas suelen venir de joins o definiciones de negocio mal planteados. Lee el SQL que muestra Claude y añade la corrección a tus notas para que la próxima respuesta mejore.

## Herramientas

- **[Supabase](https://suiteintent.com/t/supabase?m=ES)**: Postgres alojado con autenticación y almacenamiento. · Ideal para: Un backend para una app hecha con IA · Plan gratis
- **[Slack](https://suiteintent.com/t/slack?m=ES)**: Mensajería de equipo organizada en canales. · Ideal para: Sacar las conversaciones del equipo del email · Plan gratis · Gratis para ONG
