MCP server de PostgreSQL
Commit 9 nov 2026Proporciona a los asistentes de IA acceso estructurado a bases de datos PostgreSQL para la exploración de esquemas, perfilado de datos y operaciones seguras de lectura y escritura.
También conocido como ralscha/postgresql-mcp
- Stars
- 0
- Herramientas
- 24
- Descargas, 30 días
- —
- Última versión
- —
- Último commit
- 9 nov 2026
- Licencia
- MIT
¿Qué es PostgreSQL MCP?
PostgreSQL es un MCP server. Proporciona a los asistentes de IA acceso estructurado a bases de datos PostgreSQL para la exploración de esquemas, perfilado de datos y operaciones seguras de lectura y escritura. Expone 24 herramientas, como search_schema, describe_table, list_table.
Resumen generado a partir del README del proyecto
Acerca del MCP server de PostgreSQL
Este servidor permite conectar asistentes de IA a bases de datos PostgreSQL para la exploración de esquemas y la gestión de datos. Proporciona una interfaz estructurada para que los desarrolladores realicen tareas que van desde descripciones simples de tablas hasta análisis de relaciones complejas e inspección del rendimiento de consultas. El servidor admite tanto la comunicación local mediante stdio como el transporte remoto por HTTP, lo que permite una integración flexible en diversas configuraciones de clientes.
La seguridad se gestiona mediante un modelo de acceso por niveles controlado por la variable POSTGRESQL_ACCESS_LEVEL. Los usuarios pueden operar en modo READONLY para la búsqueda de esquemas y el perfilado de datos, en DML-RW para insertar o actualizar filas, o en DDL-RW para crear y eliminar tablas. Para evitar la pérdida accidental de datos, el servidor incluye un sistema de confirmación de mutaciones que muestra las filas afectadas antes de ejecutar las escrituras cuando POSTGRESQL_REQUIRE_CONFIRMATION está activo.
Las características técnicas incluyen la explicación de consultas mediante planes de ejecución en JSON, la decodificación automática de datos jsonb y límites de filas autoritativos para evitar saturar al cliente. Los desarrolladores pueden configurar los detalles de conexión como host, puerto y modo SSL a través de variables de entorno, y pueden asegurar los endpoints HTTP utilizando tokens de portador (bearer tokens).
Qué puedes hacer con él
- 1Analizar estructuras de esquemas de bases de datosPide a la IA que encuentre tablas específicas o que describa las columnas y claves dentro de una base de datos.
- 2Optimizar consultas SQL lentasSolicita un plan de ejecución para entender por qué una consulta específica tiene un rendimiento deficiente.
- 3Perfilado de estadísticas de tablasObtén un resumen de recuentos de filas, valores nulos y distribuciones de datos para una tabla específica.
Escrito a partir del README del proyecto. Cada caso de uso se verifica con una cita del mismo.
Herramientas de PostgreSQL MCP 24
Detectado desde el 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 | — |
Mostrar las 24 herramientasMostrar menos herramientas
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 | — |
Configuración
POSTGRESQL_ACCESS_LEVELPOSTGRESQL_DATABASEPOSTGRESQL_HOSTPOSTGRESQL_HTTP_ADDRPOSTGRESQL_HTTP_PATHPOSTGRESQL_PASSWORDPOSTGRESQL_SSLMODEPOSTGRESQL_TRANSPORTPOSTGRESQL_USER
| Nombre | Descripción | Tipo |
|---|---|---|
| POSTGRESQL_ACCESS_LEVEL | — | |
| POSTGRESQL_DATABASE | — | |
| POSTGRESQL_HOST | — | |
| POSTGRESQL_HTTP_ADDR | — | |
| POSTGRESQL_HTTP_PATH | — | |
| POSTGRESQL_PASSWORD | — | |
| POSTGRESQL_SSLMODE | — | |
| POSTGRESQL_TRANSPORT | — | |
| POSTGRESQL_USER | — |
Verificaciones automáticas
Ejecutado 14 nov 2026Informe completo →Aún no verificado. Un servidor necesita una puntuación de 80, ningún hallazgo grave y suficientes datos para que podamos revisarlo. Cómo funcionan las verificaciones · Qué corregir para obtener más puntos
- Repositorio de origen vinculado y accesibleralscha/postgresql-mcp is public and reachablegithub.com/ralscha/postgresql-mcp ↗Aprobado
- El paquete indica este repositorio como su origenNo verificado
- Procedencia de la compilación (atestación de Sigstore)No verificado
- Licencia de código abierto (OSI)MITspdx.org/licenses/MIT.html ↗Aprobado
- Commit o lanzamiento en el último añoLast commit or release 2026-11-09github.com/ralscha/postgresql-mcp ↗Aprobado
- OpenSSF ScorecardNo verificado
- El nombre del paquete no es similar a un paquete popularNo verificado
- No hay avisos críticos en el paquete ni en sus dependenciasNo verificado
- Sin instrucciones ocultas para el modelo24 tool descriptions and the README read; no override phrases, credential paths or hidden charactersAprobado
- Las herramientas destructivas están etiquetadasNo verificado
- El endpoint remoto responde al handshake de MCPNo verificado
README
Ver en 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.
Preguntas sobre PostgreSQL MCP
¿Qué herramientas proporciona PostgreSQL MCP?
Expone 24 herramientas, incluidas search_schema, describe_table, list_table, list_databases, list_environments.
¿Qué niveles de acceso están disponibles?
El servidor admite tres niveles de acceso escalonados: READONLY (predeterminado), DML-RW (añade insert/update/delete) y DDL-RW (añade create/drop table/index).
¿Cómo puedo asegurar que las operaciones de escritura sean seguras?
Puedes habilitar la confirmación de mutaciones con un modo de vista previa que muestra las filas afectadas antes de ejecutar las escrituras, configurando POSTGRESQL_REQUIRE_CONFIRMATION en true.
¿Puedo usar este servidor a través de HTTP?
Sí, al establecer la variable de entorno POSTGRESQL_TRANSPORT en 'http', puedes servir el MCP a través de un endpoint de streamable HTTP sin estado.
¿Cómo maneja el servidor los resultados de consultas grandes?
El servidor utiliza límites de filas autoritativos para restringir los resultados de la herramienta read_data, incluso si la consulta contiene una cláusula LIMIT mayor.