PostgreSQL MCP server
Commit 9. Nov. 2026Ermöglicht KI-Assistenten den strukturierten Zugriff auf PostgreSQL-Datenbanken für die Schema-Exploration, das Data Profiling sowie sichere Lese- und Schreiboperationen.
Auch bekannt als ralscha/postgresql-mcp
- Stars
- 0
- Tools
- 24
- Downloads, 30 Tage
- —
- Neueste Version
- —
- Letzter Commit
- 9. Nov. 2026
- Lizenz
- MIT
Was ist PostgreSQL MCP?
PostgreSQL ist ein MCP server. Ermöglicht KI-Assistenten den strukturierten Zugriff auf PostgreSQL-Datenbanken für die Schema-Exploration, das Data Profiling sowie sichere Lese- und Schreiboperationen. Er stellt 24 Tools bereit, etwa search_schema, describe_table, list_table.
Zusammenfassung generiert aus dem README des Projekts
Über PostgreSQL MCP server
Dieser Server ermöglicht es, KI-Assistenten mit PostgreSQL-Datenbanken für die Schema-Exploration und das Datenmanagement zu verbinden. Er bietet eine strukturierte Schnittstelle für Entwickler, um Aufgaben zu erledigen, die von einfachen Tabellenbeschreibungen bis hin zu komplexen Beziehungsanalysen und der Überprüfung der Query-Performance reichen. Der Server unterstützt sowohl die lokale stdio-Kommunikation als auch den Remote-HTTP-Transport, was eine flexible Integration in verschiedene Client-Setups erlaubt.
Die Sicherheit wird durch ein abgestuftes Zugriffsmodell verwaltet, das über die Variable POSTGRESQL_ACCESS_LEVEL gesteuert wird. Nutzer können im READONLY-Modus für die Schema-Suche und das Data Profiling arbeiten, im DML-RW-Modus zum Einfügen oder Aktualisieren von Zeilen oder im DDL-RW-Modus zum Erstellen und Löschen von Tabellen. Um versehentlichen Datenverlust zu vermeiden, enthält der Server ein Bestätigungssystem für Mutationen, das die betroffenen Zeilen anzeigt, bevor Schreibvorgänge ausgeführt werden, sofern POSTGRESQL_REQUIRE_CONFIRMATION aktiv ist.
Technische Features umfassen die Query-Erklärung via JSON-Execution-Plans, das automatische Dekodieren von jsonb-Daten und verbindliche Zeilenlimits, um den Client nicht zu überlasten. Entwickler können Verbindungsdetails wie Host, Port und SSL-Modus über Umgebungsvariablen konfigurieren und HTTP-Endpoints mittels Bearer-Token absichern.
Was du damit machen kannst
- 1Datenbank-Schemastrukturen analysierenLass die KI nach spezifischen Tabellen suchen oder die Spalten und Keys innerhalb einer Datenbank beschreiben.
- 2Langsame SQL-Queries optimierenFordere einen Execution Plan an, um zu verstehen, warum eine bestimmte Abfrage eine schlechte Performance hat.
- 3Tabellen-Statistiken profilierenErhalte eine Zusammenfassung von Zeilenanzahlen, Null-Werten und Datenverteilungen für eine bestimmte Tabelle.
Geschrieben aus dem README des Projekts. Jeder Use Case wurde gegen ein Zitat daraus geprüft.
PostgreSQL MCP tools 24
Erkannt aus dem READMEsearch_schemadescribe_tablelist_tablelist_databaseslist_environmentsprofile_tableinspect_relationshipsinspect_dependenciesexplain_queryread_datatest_connectionvalidate_environment_config
| search_schema | — | |
| describe_table | — | |
| list_table | — | |
| list_databases | — | |
| list_environments | — | |
| profile_table | — | |
| inspect_relationships | — | |
| inspect_dependencies | — | |
| explain_query | — | |
| read_data | — | |
| test_connection | — | |
| validate_environment_config | — |
Alle 24 Tools anzeigenWeniger Tools anzeigen
list_schemaslist_extensionslist_viewslist_triggersshow_create_tabletable_sizeinsert_dataupdate_datadelete_datacreate_tablecreate_indexdrop_table
| list_schemas | — | |
| list_extensions | — | |
| list_views | — | |
| list_triggers | — | |
| show_create_table | — | |
| table_size | — | |
| insert_data | — | |
| update_data | — | |
| delete_data | — | |
| create_table | — | |
| create_index | — | |
| drop_table | — |
Konfiguration
POSTGRESQL_ACCESS_LEVELPOSTGRESQL_DATABASEPOSTGRESQL_HOSTPOSTGRESQL_HTTP_ADDRPOSTGRESQL_HTTP_PATHPOSTGRESQL_PASSWORDPOSTGRESQL_SSLMODEPOSTGRESQL_TRANSPORTPOSTGRESQL_USER
| Name | Beschreibung | Typ |
|---|---|---|
| POSTGRESQL_ACCESS_LEVEL | — | |
| POSTGRESQL_DATABASE | — | |
| POSTGRESQL_HOST | — | |
| POSTGRESQL_HTTP_ADDR | — | |
| POSTGRESQL_HTTP_PATH | — | |
| POSTGRESQL_PASSWORD | — | |
| POSTGRESQL_SSLMODE | — | |
| POSTGRESQL_TRANSPORT | — | |
| POSTGRESQL_USER | — |
Automatisierte Checks
Geluften am 14. Nov. 2026Vollständiger Bericht →Noch nicht verifiziert. Ein Server benötigt einen Score von 80, keine kritischen Befunde und genug Daten für unsere Prüfung. Wie die Checks funktionieren · Was du für mehr Punkte verbessern kannst
- Source Repository verknüpft und erreichbarralscha/postgresql-mcp is public and reachablegithub.com/ralscha/postgresql-mcp ↗Bestanden
- Paket nennt dieses Repository als QuelleNicht geprüft
- Build-Provenienz (Sigstore-Attestierung)Nicht geprüft
- Open Source Lizenz (OSI)MITspdx.org/licenses/MIT.html ↗Bestanden
- Commit oder Release im letzten JahrLast commit or release 2026-11-09github.com/ralscha/postgresql-mcp ↗Bestanden
- OpenSSF ScorecardNicht geprüft
- Package-Name ähnelt keinem populären PackageNicht geprüft
- Keine kritischen Advisories im Paket oder seinen AbhängigkeitenNicht geprüft
- Keine versteckten Anweisungen an das Modell24 tool descriptions and the README read; no override phrases, credential paths or hidden charactersBestanden
- Destruktive Tools sind markiertNicht geprüft
- Remote-Endpoint beantwortet den MCP-HandshakeNicht geprüft
README
Auf GitHub ansehenpostgresql-mcp
An MCP (Model Context Protocol) server that gives AI assistants structured, read-optimized access to PostgreSQL databases. It exposes schema exploration, data profiling, relationship analysis, query explanation, and safe read/write operations through a standardized MCP interface.
Features
- 24 MCP tools covering schema search, table description, data profiling, relationship/dependency inspection, query explanation, connection testing, schema/extension/view/trigger listing, CREATE TABLE DDL generation, table sizing, and tiered write access
- Tiered access model via
POSTGRESQL_ACCESS_LEVEL:READONLY(default),DML-RW(adds insert/update/delete),DDL-RW(adds create/drop table/index) - SQL-safe design with identifier validation, exact named-parameter binding, single-statement checks, and database-enforced read-only transactions
- Authoritative row limits that cap
read_dataresults even when the submitted query contains its own largerLIMIT - Mutation confirmation with preview mode that shows affected rows before executing writes when
POSTGRESQL_REQUIRE_CONFIRMATIONis enabled - Explain plan via
EXPLAIN (FORMAT JSON)for understanding query performance - Connection testing that validates connectivity and reports latency
- Environment listing showing current host, database, and access-level configuration
- Optional HTTP bearer authentication, same-origin protection, request-size limits, and graceful shutdown
Installation
Download the latest release for your platform from the Releases page.
Usage
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
POSTGRESQL_HOST |
Yes | — | PostgreSQL hostname or IP |
POSTGRESQL_DATABASE |
Yes | — | Database name |
POSTGRESQL_USER |
Yes | — | Login username |
POSTGRESQL_PASSWORD |
Yes | — | Login password |
POSTGRESQL_PORT |
No | 5432 |
PostgreSQL port |
POSTGRESQL_SSLMODE |
No | prefer |
SSL mode: disable, allow, prefer, require, verify-ca, verify-full |
POSTGRESQL_ACCESS_LEVEL |
No | READONLY |
READONLY, DML-RW, or DDL-RW |
POSTGRESQL_CONNECTION_TIMEOUT |
No | 30 |
Connection timeout in seconds |
POSTGRESQL_QUERY_TIMEOUT |
No | 120 |
Query timeout in seconds |
POSTGRESQL_MAX_ROWS_DEFAULT |
No | 1000 |
Default row limit for queries |
POSTGRESQL_REQUIRE_CONFIRMATION |
No | true |
Require confirm flag for writes |
POSTGRESQL_TRANSPORT |
No | stdio |
MCP transport: stdio or http |
POSTGRESQL_HTTP_ADDR |
No | 127.0.0.1:8080 |
HTTP listen address when POSTGRESQL_TRANSPORT=http |
POSTGRESQL_HTTP_PATH |
No | /mcp |
Stateless Streamable HTTP endpoint path when POSTGRESQL_TRANSPORT=http |
POSTGRESQL_HTTP_BEARER_TOKEN |
No | — | Require Authorization: Bearer <token> for HTTP requests |
Running as an MCP Server
By default, the server communicates over stdio. Configure your MCP client to launch it:
{
"mcpServers": {
"postgresql": {
"command": "/path/to/bin/postgresql-mcp",
"env": {
"POSTGRESQL_HOST": "localhost",
"POSTGRESQL_DATABASE": "YourDatabase",
"POSTGRESQL_USER": "postgres",
"POSTGRESQL_PASSWORD": "YourPassword",
"POSTGRESQL_SSLMODE": "disable",
"POSTGRESQL_ACCESS_LEVEL": "READONLY"
}
}
}
}
To serve MCP using the stateless Streamable HTTP transport, set POSTGRESQL_TRANSPORT=http:
POSTGRESQL_TRANSPORT=http \
POSTGRESQL_HTTP_ADDR=127.0.0.1:8080 \
POSTGRESQL_HTTP_PATH=/mcp \
/path/to/bin/postgresql-mcp
Then configure a Streamable HTTP MCP client to connect to:
http://localhost:8080/mcp
Set POSTGRESQL_HTTP_BEARER_TOKEN when the endpoint is reachable by anything other than a trusted local client. Binding to a non-loopback address without authentication exposes every tool allowed by POSTGRESQL_ACCESS_LEVEL.
Access Levels
READONLY(default) — Schema exploration, data reading, profiling, relationship inspection, query explanation, connection testing, schema listing, extensions, views, triggers, CREATE TABLE DDL generation, table sizing. 18 tools.DML-RW— All read-only tools plusinsert_data,update_data,delete_data. 21 tools.DDL-RW— All DML tools pluscreate_table,create_index,drop_table. 24 tools.
Mutations (update_data, delete_data, drop_table) require a "confirm": true flag when POSTGRESQL_REQUIRE_CONFIRMATION is enabled (the default). Without confirmation, the server returns a preview of the affected rows instead.
update_data and delete_data predicates use named placeholders. For example, use "where": "id = $id AND tenant = $tenant" with "params": {"id": 42, "tenant": "acme"}. Every placeholder must have a value and every supplied parameter must be used.
Query results decode json/jsonb into structured JSON, encode bytea as base64, and suffix duplicate column names (id, id_2, and so on) so joined results do not silently lose values.
MCP Tools
Read-Only (READONLY)
| Tool | Description |
|---|---|
search_schema |
Search tables and columns by name pattern with pagination |
describe_table |
Get columns, primary keys, foreign keys, and indexes for a table |
list_table |
List tables, optionally filtered by schema and name |
list_databases |
List all databases on the server |
list_environments |
Show current connection and access-level configuration |
profile_table |
Row count, null counts, distinct counts, min/max when supported, with optional data samples |
inspect_relationships |
List foreign keys going out of and into a table |
inspect_dependencies |
Find objects (views, functions) that depend on a table |
explain_query |
Get the JSON execution plan for a read-only query |
read_data |
Execute a read-only SELECT query with row limits |
test_connection |
Ping the server and return latency and server version info |
validate_environment_config |
Validate that all environment variables are correctly configured |
list_schemas |
List all user schemas with owner and description |
list_extensions |
List installed PostgreSQL extensions with version |
list_views |
List views with their SQL definitions |
list_triggers |
List triggers with event, timing, and definition |
show_create_table |
Generate CREATE TABLE DDL including defaults, generated/identity columns, and table constraints |
table_size |
Table and index sizes, toast size, and estimated row counts, optionally for one table |
DML (DML-RW)
| Tool | Description |
|---|---|
insert_data |
Insert one or more rows into a table |
update_data |
Update rows matching a WHERE clause (with optional preview) |
delete_data |
Delete rows matching a WHERE clause (with optional preview) |
DDL (DDL-RW)
| Tool | Description |
|---|---|
create_table |
Create a table with column definitions, primary keys, and identity columns |
create_index |
Create a standard or unique index on specified columns |
drop_table |
Drop a table (with optional preview/confirmation) |
License
MIT License. See LICENSE for details.
PostgreSQL MCP Fragen
Welche Tools bietet PostgreSQL MCP?
Er stellt 24 Tools bereit, darunter search_schema, describe_table, list_table, list_databases, list_environments.
Welche Zugriffsebenen sind verfügbar?
Der Server unterstützt drei abgestufte Zugriffsebenen: READONLY (Standard), DML-RW (fügt insert/update/delete hinzu) und DDL-RW (fügt create/drop table/index hinzu).
Wie kann ich sicherstellen, dass Schreiboperationen sicher sind?
Du kannst eine Bestätigung für Mutationen aktivieren. Mit einem Preview-Modus werden die betroffenen Zeilen angezeigt, bevor Schreibvorgänge ausgeführt werden, indem du POSTGRESQL_REQUIRE_CONFIRMATION auf true setzt.
Kann ich diesen Server über HTTP nutzen?
Ja, indem du die Umgebungsvariable POSTGRESQL_TRANSPORT auf 'http' setzt, kannst du den MCP über einen zustandslosen Streamable HTTP Endpoint bereitstellen.
Wie geht der Server mit großen Abfrageergebnissen um?
Der Server nutzt verbindliche Zeilenlimits, um die Ergebnisse des read_data Tools zu begrenzen, selbst wenn die Abfrage selbst eine größere LIMIT-Klausel enthält.