# Claude Postgres abfragen lassen

> Das Team fragt die Entwickler nach Zahlen, die in der Datenbank liegen.

Dieses Setup ist für Engineering- und Datenteams, die immer wieder dieselben Datenbankfragen für Kollegen beantworten. Claude verbindet sich über einen MCP-Server mit einer Nur-Lese-Rolle mit Postgres, schreibt und startet SQL und postet wiederkehrende Kennzahlen in Slack. So können Kollegen Fragen in normaler Sprache stellen, ohne Zugriff auf die Produktion zu bekommen.

## Schritte

1. **Nur-Lese-Rolle anlegen**: Legen Sie eine eigene Postgres-Rolle mit LOGIN an und vergeben Sie USAGE nur auf die nötigen Schemas und SELECT nur auf die nötigen Tabellen. Setzen Sie default_transaction_read_only und ein statement_timeout für die Rolle, damit lange oder schreibende Abfragen sofort scheitern. Verwenden Sie nie den Datenbanknutzer Ihrer Anwendung.
   Tipp: Wechseln Sie per SET ROLE zur neuen Rolle und prüfen Sie, dass ein INSERT fehlschlägt.
2. **Auf ein Replikat zeigen**: Verbinden Sie den Agenten mit einem Read Replica oder einer Reporting-Kopie der Produktion. Gibt es nur die Primärdatenbank, nutzen Sie die Nur-Lese-Rolle und ein niedriges Verbindungslimit. Beschränken Sie den Netzwerkzugang auf den Rechner, auf dem der MCP-Server läuft.
   Tipp: Ein statement_timeout von wenigen Sekunden stoppt ausufernde Joins.
3. **Server im KI-Host registrieren**: Fügen Sie einen Postgres-MCP-Server hinzu, etwa Postgres MCP Pro im eingeschränkten Modus oder einen anderen Nur-Lese-Server, mit dem Connection-String der Rolle. Registrieren Sie ihn in der Konfiguration von Claude Desktop, in den MCP-Einstellungen von Cursor oder per claude mcp add in Claude Code. Legen Sie den Connection-String in eine Umgebungsvariable, nicht in eine eingecheckte Datei.
   Tipp: Suchen Sie in der Server-Doku nach einem Read-only- oder Restricted-Schalter und aktivieren Sie ihn.
4. **Schema beschreiben**: Schreiben Sie kurze Notizen zu den wichtigsten Tabellen: was eine Zeile bedeutet, wie Tabellen verknüpft sind und welche Spalten Beträge oder Daten enthalten. Hinterlegen Sie sie in einem Claude-Projekt, einer CLAUDE.md oder in Cursor-Regeln. Lassen Sie Claude zu jeder Antwort das ausgeführte SQL zeigen.
   Tipp: Definieren Sie Begriffe wie aktiver Kunde, damit die Zahlen zu Ihren Dashboards passen.
5. **Antworten teilen**: Verbinden Sie den Slack-MCP-Server und beschränken Sie ihn auf einen Kennzahlen-Kanal. Claude postet die Frage, die Zahl und das verwendete SQL. Für regelmäßige Zahlen starten Sie Claude Code per Cron oder CI mit derselben Konfiguration.
   Tipp: Mit dem SQL im Post kann jeder das Ergebnis nachvollziehen.

## Prompts zum Ausprobieren

- Wie viele neue Konten wurden in den letzten acht Wochen pro Woche angelegt? Zeig mir das SQL.
- Welche zehn Kunden hatten letzten Monat den höchsten Bestellwert, und wie sieht das im Vergleich zum Vormonat aus?
- Erklär mir, was die Tabelle subscriptions speichert und wie sie mit invoices zusammenhängt.
- Finde Bestellungen, die länger als 48 Stunden auf pending stehen, und poste die Anzahl in #kennzahlen.
- Schreib eine Abfrage für die wöchentliche Abwanderung nach unserer Definition von aktivem Kunden, aber führe sie noch nicht aus.

## Was Sie brauchen

- Eine Postgres-Datenbank, in der Sie Rollen und Rechte anlegen dürfen
- Idealerweise ein Read Replica oder eine Reporting-Kopie
- Claude Desktop, Claude Code oder Cursor
- Ein Slack-Kanal für gemeinsame Kennzahlen

## Grenzen

- Claude kann SQL schreiben, das läuft, aber eine andere Frage beantwortet. Wichtige Zahlen brauchen eine menschliche Prüfung.
- Große Ergebnismengen werden gekürzt oder zusammengefasst. Fragen Sie nach Aggregaten statt nach Rohzeilen.
- Der Agent kennt nur das Schema und Ihre Notizen. Geschäftslogik im Anwendungscode bleibt für ihn unsichtbar.

## Sicherheitshinweise

- Nur eine Datenbankrolle mit Leserechten.
- Tabellen mit personenbezogenen Daten ausschließen, wenn möglich.
- Replikat statt Primärdatenbank bevorzugen.

## MCP-Server

- [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

## Häufige Fragen

**Kann der Agent Daten ändern oder löschen?**

Nicht, wenn Sie den Schritten folgen: Die Rolle hat nur SELECT-Rechte und Nur-Lese-Transaktionen. Viele MCP-Server bieten zusätzlich einen Nur-Lese-Modus, der eigentliche Schutz ist aber die Datenbankrolle.

**Welche Hosts funktionieren?**

Claude Desktop, Claude Code und Cursor unterstützen lokale MCP-Server mit Befehl und Umgebungsvariablen. Für geplante Läufe eignet sich Claude Code am besten.

**Was ist mit personenbezogenen Daten?**

Abfrageergebnisse laufen durch das Modell. Nehmen Sie Tabellen oder Spalten mit Personendaten aus den Rechten heraus oder stellen Sie eine View ohne sie bereit. Prüfen Sie vorher die Datenschutzregeln Ihres Unternehmens.

**Was, wenn die Antworten falsch sind?**

Falsche Zahlen entstehen meist durch falsche Joins oder Definitionen. Lesen Sie das SQL, das Claude zeigt, und ergänzen Sie die Korrektur in Ihren Notizen.

## Tools

- **[Supabase](https://suiteintent.com/t/supabase?m=DE)**: Gehostetes Postgres mit Auth und Speicher. · Ideal für: Backend für eine mit KI gebaute App · Gratis-Tarif
- **[Slack](https://suiteintent.com/t/slack?m=DE)**: Team-Chat in Channels. · Ideal für: Interne Abstimmung ohne E-Mail-Flut · Gratis-Tarif · Gratis für Non-Profits
