PostgreSQL MCP sunucusu
Commit 9 Kas 2026Yapay zeka asistanlarına şema keşfi, veri profilleme ve güvenli okuma/yazma işlemleri için PostgreSQL veritabanlarına yapılandırılmış erişim sağlar.
Ayrıca bilinen adı ralscha/postgresql-mcp
- Yıldızlar
- 0
- Araçlar
- 24
- İndirmeler, 30 gün
- —
- En son sürüm
- —
- Son commit
- 9 Kas 2026
- Lisans
- MIT
PostgreSQL MCP nedir?
PostgreSQL bir MCP sunucusudur. Yapay zeka asistanlarına şema keşfi, veri profilleme ve güvenli okuma/yazma işlemleri için PostgreSQL veritabanlarına yapılandırılmış erişim sağlar. 24 araç sunar; örneğin search_schema, describe_table, list_table.
Özet, projenin README dosyasından oluşturuldu
PostgreSQL MCP sunucusu hakkında
Bu sunucu, yapay zeka asistanlarını şema keşfi ve veri yönetimi için PostgreSQL veritabanlarına bağlamanızı sağlar. Geliştiricilerin basit tablo açıklamalarından karmaşık ilişki analizlerine ve sorgu performansı incelemelerine kadar çeşitli görevleri yerine getirmeleri için yapılandırılmış bir arayüz sunar. Sunucu, hem yerel stdio iletişimini hem de uzak HTTP transportunu destekleyerek çeşitli istemci kurulumlarına esnek entegrasyon imkanı tanır.
Güvenlik, POSTGRESQL_ACCESS_LEVEL değişkeni ile kontrol edilen kademeli bir erişim modeli üzerinden yönetilir. Kullanıcılar; şema arama ve veri profilleme için READONLY modunda, satır ekleme veya güncelleme için DML-RW modunda veya tablo oluşturma ve silme işlemleri için DDL-RW modunda çalışabilirler. Kazara veri kaybını önlemek için sunucu, POSTGRESQL_REQUIRE_CONFIRMATION aktif olduğunda yazma işlemleri yürütülmeden önce etkilenen satırları gösteren bir mutasyon onay sistemi içerir.
Teknik özellikler arasında JSON execution plan'lar aracılığıyla sorgu açıklaması, jsonb verilerinin otomatik olarak decode edilmesi ve istemciyi aşırı yüklemeyi önlemek için yetkili satır limitleri yer alır. Geliştiriciler; host, port ve SSL mode gibi bağlantı ayrıntılarını ortam değişkenleri aracılığıyla yapılandırabilir ve HTTP uç noktalarını bearer token kullanarak güvenli hale getirebilirler.
Neler yapabilirsiniz
- 1Veritabanı şema yapılarını analiz edinYapay zekadan belirli tabloları bulmasını veya bir veritabanındaki sütunları ve anahtarları açıklamasını isteyin.
- 2Yavaş SQL sorgularını optimize edinBelirli bir sorgunun neden düşük performans gösterdiğini anlamak için bir execution plan talep edin.
- 3Tablo istatistiklerini profilleyinBelirli bir tablo için satır sayıları, null değerler ve veri dağılımlarının bir özetini alın.
Projenin README dosyasından alınmıştır. Her kullanım durumu, oradaki bir alıntı ile kontrol edilir.
PostgreSQL MCP araçları 24
README dosyasından algılandısearch_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 | — |
24 aracın tümünü gösterDaha az araç göster
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 | — |
Yapılandırma
POSTGRESQL_ACCESS_LEVELPOSTGRESQL_DATABASEPOSTGRESQL_HOSTPOSTGRESQL_HTTP_ADDRPOSTGRESQL_HTTP_PATHPOSTGRESQL_PASSWORDPOSTGRESQL_SSLMODEPOSTGRESQL_TRANSPORTPOSTGRESQL_USER
| Ad | Açıklama | Sunucu |
|---|---|---|
| POSTGRESQL_ACCESS_LEVEL | — | |
| POSTGRESQL_DATABASE | — | |
| POSTGRESQL_HOST | — | |
| POSTGRESQL_HTTP_ADDR | — | |
| POSTGRESQL_HTTP_PATH | — | |
| POSTGRESQL_PASSWORD | — | |
| POSTGRESQL_SSLMODE | — | |
| POSTGRESQL_TRANSPORT | — | |
| POSTGRESQL_USER | — |
Otomatik kontroller
Çalıştırıldı 14 Kas 2026Tam rapor →Henüz doğrulanmadı. Bir sunucunun 80 puana, ciddi bir bulgu olmamasına ve kontrol edebilmemiz için yeterli veriye ihtiyacı vardır. Kontroller nasıl çalışır · Daha fazla puan için nelerin düzeltileceği
- Kaynak deposu bağlantılı ve erişilebilirralscha/postgresql-mcp is public and reachablegithub.com/ralscha/postgresql-mcp ↗Geçti
- Paket, bu depoyu kaynağı olarak gösteriyorKontrol edilmedi
- Derleme kökeni (Sigstore onayı)Kontrol edilmedi
- Açık kaynak lisansı (OSI)MITspdx.org/licenses/MIT.html ↗Geçti
- Son bir yıl içinde commit veya sürüm mevcutLast commit or release 2026-11-09github.com/ralscha/postgresql-mcp ↗Geçti
- OpenSSF ScorecardKontrol edilmedi
- Paket adı popüler bir pakete yakın değilKontrol edilmedi
- Pakette veya bağımlılıklarında kritik uyarı yokKontrol edilmedi
- Modele yönelik gizli talimat yok24 tool descriptions and the README read; no override phrases, credential paths or hidden charactersGeçti
- Yıkıcı araçlar etiketlenmişKontrol edilmedi
- Uzak uç nokta MCP el sıkışmasına yanıt veriyorKontrol edilmedi
postgresql-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 soruları
PostgreSQL MCP hangi araçları sunar?
24 araç sunar; bunlar arasında search_schema, describe_table, list_table, list_databases, list_environments yer alır.
Hangi erişim seviyeleri mevcuttur?
Sunucu üç kademeli erişim seviyesini destekler: READONLY (varsayılan), DML-RW (insert/update/delete ekler) ve DDL-RW (create/drop table/index ekler).
Yazma işlemlerinin güvenli olduğundan nasıl emin olabilirim?
POSTGRESQL_REQUIRE_CONFIRMATION değişkenini true olarak ayarlayarak, yazma işlemleri yürütülmeden önce etkilenen satırları gösteren bir önizleme modu ile mutasyon onayını etkinleştirebilirsiniz.
Bu sunucuyu HTTP üzerinden kullanabilir miyim?
Evet, POSTGRESQL_TRANSPORT ortam değişkenini 'http' olarak ayarlayarak, MCP'yi stateless bir streamable HTTP uç noktası üzerinden sunabilirsiniz.
Sunucu büyük sorgu sonuçlarını nasıl işler?
Sorgunun kendisi daha büyük bir LIMIT ifadesi içerse bile, sunucu read_data aracından gelen sonuçları sınırlandırmak için yetkili satır limitleri kullanır.