PostgreSQL MCP server
Commit 14 Nov 2026Memberikan akses terstruktur bagi AI assistant ke database PostgreSQL untuk eksplorasi schema, profiling data, serta operasi read/write yang aman.
Juga dikenal sebagai ralscha/postgresql-mcp
- Stars
- 0
- Tools
- 24
- Unduhan, 30 hari
- —
- Versi terbaru
- —
- Commit terakhir
- 14 Nov 2026
- Lisensi
- MIT
Apa itu PostgreSQL MCP?
PostgreSQL adalah MCP server. Memberikan akses terstruktur bagi AI assistant ke database PostgreSQL untuk eksplorasi schema, profiling data, serta operasi read/write yang aman. Server ini menyediakan 24 tool, seperti search_schema, describe_table, list_table.
Ringkasan dibuat dari README proyek
Tentang PostgreSQL MCP server
Server ini memungkinkan Anda menghubungkan AI assistant ke database PostgreSQL untuk eksplorasi schema dan manajemen data. Server menyediakan interface terstruktur bagi developer untuk melakukan berbagai tugas, mulai dari deskripsi tabel sederhana hingga analisis relasi yang kompleks dan inspeksi performa query. Server ini mendukung komunikasi stdio lokal maupun transport HTTP jarak jauh, sehingga memungkinkan integrasi yang fleksibel ke berbagai setup client.
Keamanan dikelola melalui model akses bertingkat yang dikontrol oleh variabel POSTGRESQL_ACCESS_LEVEL. Anda dapat beroperasi dalam mode READONLY untuk pencarian schema dan profiling data, DML-RW untuk insert atau update baris, atau DDL-RW untuk membuat dan menghapus tabel. Untuk mencegah kehilangan data yang tidak disengaja, server menyertakan sistem konfirmasi mutasi yang menampilkan baris yang terdampak sebelum mengeksekusi write saat POSTGRESQL_REQUIRE_CONFIRMATION aktif.
Fitur teknis meliputi penjelasan query melalui execution plan JSON, decoding otomatis untuk data jsonb, dan limit baris otoritatif untuk mencegah client kelebihan beban. Developer dapat mengonfigurasi detail koneksi seperti host, port, dan SSL mode melalui environment variables, serta dapat mengamankan endpoint HTTP menggunakan bearer token.
Apa yang bisa Anda lakukan dengannya
- 1Analisis struktur schema databaseMinta AI untuk menemukan tabel spesifik atau mendeskripsikan kolom dan key di dalam sebuah database.
- 2Optimasi query SQL yang lambatMinta execution plan untuk memahami mengapa query tertentu memiliki performa yang buruk.
- 3Profiling statistik tabelDapatkan ringkasan jumlah baris, nilai null, dan distribusi data untuk tabel tertentu.
Ditulis berdasarkan README proyek. Setiap use case diperiksa terhadap kutipan dari README tersebut.
Tool PostgreSQL MCP 24
Terdeteksi dari 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 | — |
Tampilkan semua 24 toolTampilkan lebih sedikit tool
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 | — |
Konfigurasi
POSTGRESQL_ACCESS_LEVELPOSTGRESQL_DATABASEPOSTGRESQL_HOSTPOSTGRESQL_HTTP_ADDRPOSTGRESQL_HTTP_PATHPOSTGRESQL_PASSWORDPOSTGRESQL_SSLMODEPOSTGRESQL_TRANSPORTPOSTGRESQL_USER
| Nama | Deskripsi | Tipe |
|---|---|---|
| POSTGRESQL_ACCESS_LEVEL | — | |
| POSTGRESQL_DATABASE | — | |
| POSTGRESQL_HOST | — | |
| POSTGRESQL_HTTP_ADDR | — | |
| POSTGRESQL_HTTP_PATH | — | |
| POSTGRESQL_PASSWORD | — | |
| POSTGRESQL_SSLMODE | — | |
| POSTGRESQL_TRANSPORT | — | |
| POSTGRESQL_USER | — |
Pengecekan otomatis
Berjalan 14 Nov 2026Laporan lengkap →Belum diverifikasi. Sebuah server memerlukan skor 80, tidak ada temuan serius, dan data yang cukup untuk kami periksa. Cara kerja checks · Yang perlu diperbaiki untuk menambah poin
- Source repository terhubung dan dapat dijangkauralscha/postgresql-mcp is public and reachablegithub.com/ralscha/postgresql-mcp ↗Lolos
- Nama paket mencantumkan repositori ini sebagai sumbernyaTidak diperiksa
- Provenance build (atestasi Sigstore)Tidak diperiksa
- Lisensi open source (OSI)MITspdx.org/licenses/MIT.html ↗Lolos
- Ada commit atau release dalam satu tahun terakhirLast commit or release 2026-11-09github.com/ralscha/postgresql-mcp ↗Lolos
- OpenSSF ScorecardTidak diperiksa
- Nama package tidak mirip dengan package populerTidak diperiksa
- Tidak ada advisory kritis pada paket atau dependensinyaTidak diperiksa
- Tidak ada instruksi tersembunyi untuk model24 tool descriptions and the README read; no override phrases, credential paths or hidden charactersLolos
- Tools yang bersifat destruktif telah diberi labelTidak diperiksa
- Endpoint remote merespons handshake MCPTidak diperiksa
README
Lihat di GitHubpostgresql-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.
Pertanyaan tentang PostgreSQL MCP
Tool apa yang disediakan PostgreSQL MCP?
Server ini menyediakan 24 tool, termasuk search_schema, describe_table, list_table, list_databases, list_environments.
Apa saja level akses yang tersedia?
Server ini mendukung tiga tingkatan akses: READONLY (default), DML-RW (menambah fungsi insert/update/delete), dan DDL-RW (menambah fungsi create/drop table/index).
Bagaimana cara memastikan operasi write tetap aman?
Anda dapat mengaktifkan konfirmasi mutasi dengan mode preview yang menampilkan baris yang terdampak sebelum mengeksekusi write dengan mengatur POSTGRESQL_REQUIRE_CONFIRMATION ke true.
Apakah saya bisa menggunakan server ini melalui HTTP?
Ya, dengan mengatur environment variable POSTGRESQL_TRANSPORT ke 'http', Anda dapat menjalankan MCP melalui endpoint Streamable HTTP yang stateless.
Bagaimana server menangani hasil query yang besar?
Server menggunakan limit baris otoritatif untuk membatasi hasil dari tool read_data, meskipun query itu sendiri memiliki klausa LIMIT yang lebih besar.