Skip to main content
Glama
ferronicardoso

mcp-postgresql

Servidor MCP para PostgreSQL

Publicación de Docker GHCR Node.js

Servidor MCP orientado a producción para PostgreSQL, que expone operaciones de base de datos a clientes MCP (Claude Desktop, VS Code Copilot, Cursor y hosts compatibles).

Características

  • Ejecución de consultas (SELECT, INSERT, UPDATE, DELETE)

  • Descubrimiento de bases de datos e introspección de esquemas

  • Inspección de metadatos de tablas (columnas, tipos, nulabilidad, valores por defecto, PK)

  • Descubrimiento de índices y claves foráneas

  • Configuración basada en entorno para despliegue seguro

Related MCP server: Azure Database for PostgreSQL MCP Server

Herramientas disponibles

Herramienta

Descripción

execute_query

Ejecuta una sentencia SQL y devuelve filas o el número de filas afectadas

list_tables

Lista tablas desde INFORMATION_SCHEMA.TABLES (filtro de esquema opcional)

describe_table

Devuelve metadatos de columnas de tabla y marcadores de clave primaria

list_databases

Lista todas las bases de datos de PostgreSQL

get_table_indexes

Lista índices de tabla con definiciones y banderas PK/único

get_foreign_keys

Lista claves foráneas de tabla y destinos referenciados

Requisitos

  • Node.js 18+

  • Acceso a una instancia de PostgreSQL

  • Conectividad de red desde el host MCP a PostgreSQL (host:puerto)

Configuración

Configure los ajustes de conexión usando variables de entorno:

Variable

Requerida

Por defecto

Descripción

PGHOST (o POSTGRES_HOST)

No

localhost

Host o IP de PostgreSQL

PGPORT (o POSTGRES_PORT)

No

5432

Puerto TCP de PostgreSQL

PGDATABASE (o POSTGRES_DB)

No

postgres

Base de datos por defecto

PGUSER (o POSTGRES_USER)

Usuario de la base de datos

PGPASSWORD (o POSTGRES_PASSWORD)

Contraseña de la base de datos

PGSSL (o POSTGRES_SSL)

No

false

Habilita SSL/TLS

PGPOOL_MAX

No

10

Máximo de conexiones del pool

PGPOOL_IDLE_TIMEOUT_MS

No

30000

Tiempo de espera de inactividad del pool (ms)

MCP_TRANSPORT

No

stdio

Modo de transporte: stdio (por defecto, para npx/Claude Desktop/VS Code) o http (HTTP Streamable, para Docker/clientes remotos como n8n)

MCP_HTTP_PORT

No

3002

Puerto para el servidor HTTP (solo se usa cuando MCP_TRANSPORT=http)

MCP_HTTP_HOST

No

0.0.0.0

Dirección de enlace para el servidor HTTP (solo se usa cuando MCP_TRANSPORT=http)

Uso

Ejecutar directamente desde GitHub

npx github:ferronicardoso/mcp-postgresql

Claude Code (CLI)

claude mcp add postgresql --scope user -- npx -y github:ferronicardoso/mcp-postgresql

--scope controla dónde se almacena el registro del servidor:

Ámbito

Almacenado en

Visible para

local (por defecto)

local al proyecto, sin seguimiento

solo para ti, solo en este proyecto

project

.mcp.json en la raíz del proyecto

cualquiera que clone el repositorio (haz commit para compartir)

user

tu configuración global de Claude Code

para ti, en todos los proyectos

Las variables de entorno se pueden pasar con banderas repetidas --env CLAVE=VALOR antes de --, por ejemplo:

Bash (Linux/macOS/WSL):

claude mcp add postgresql --scope user \
  --env PGHOST=localhost \
  --env PGPORT=5432 \
  --env PGDATABASE=postgres \
  --env PGUSER=postgres \
  --env PGPASSWORD=your-password \
  -- npx -y github:ferronicardoso/mcp-postgresql

PowerShell:

claude mcp add postgresql --scope user `
  --env PGHOST=localhost `
  --env PGPORT=5432 `
  --env PGDATABASE=postgres `
  --env PGUSER=postgres `
  --env PGPASSWORD=your-password `
  -- npx -y github:ferronicardoso/mcp-postgresql

Codex CLI

Bash (Linux/macOS/WSL):

codex mcp add postgresql \
  --env PGHOST=localhost \
  --env PGPORT=5432 \
  --env PGDATABASE=postgres \
  --env PGUSER=postgres \
  --env PGPASSWORD=your-password \
  npx -- -y github:ferronicardoso/mcp-postgresql

PowerShell:

codex mcp add postgresql `
  --env PGHOST=localhost `
  --env PGPORT=5432 `
  --env PGDATABASE=postgres `
  --env PGUSER=postgres `
  --env PGPASSWORD=your-password `
  npx -- -y github:ferronicardoso/mcp-postgresql

Esto registra el servidor en ~/.codex/config.toml. Para eliminarlo, ejecuta codex mcp remove postgresql.

Configuración de Claude Desktop

%APPDATA%\\Claude\\claude_desktop_config.json:

{
  "mcpServers": {
    "postgresql": {
      "command": "npx",
      "args": ["github:ferronicardoso/mcp-postgresql"],
      "env": {
        "PGHOST": "localhost",
        "PGPORT": "5432",
        "PGDATABASE": "postgres",
        "PGUSER": "postgres",
        "PGPASSWORD": "your-password"
      }
    }
  }
}

Configuración MCP de VS Code

.vscode/mcp.json:

{
  "servers": {
    "postgresql": {
      "command": "npx",
      "args": ["github:ferronicardoso/mcp-postgresql"],
      "env": {
        "PGHOST": "localhost",
        "PGPORT": "5432",
        "PGDATABASE": "postgres",
        "PGUSER": "postgres",
        "PGPASSWORD": "your-password"
      }
    }
  }
}

Ejecutar con Docker (transporte HTTP)

La imagen publicada se ejecuta en modo HTTP Streamable por defecto, para usar como endpoint MCP remoto (por ejemplo, desde el nodo Cliente MCP de n8n o cualquier cliente compatible con HTTP Streamable):

Bash (Linux/macOS/WSL):

docker run -d --name mcp-postgresql \
  -p 3002:3002 \
  -e PGHOST=host.docker.internal \
  -e PGPORT=5432 \
  -e PGDATABASE=postgres \
  -e PGUSER=postgres \
  -e PGPASSWORD=your-password \
  ghcr.io/ferronicardoso/mcp-postgresql:latest

PowerShell:

docker run -d --name mcp-postgresql `
  -p 3002:3002 `
  -e PGHOST=host.docker.internal `
  -e PGPORT=5432 `
  -e PGDATABASE=postgres `
  -e PGUSER=postgres `
  -e PGPASSWORD=your-password `
  ghcr.io/ferronicardoso/mcp-postgresql:latest

El endpoint MCP está disponible en http://localhost:3002/mcp.

Desarrollo local

git clone https://github.com/ferronicardoso/mcp-postgresql
cd mcp-postgresql
npm install
npm run build

Inicia el servidor compilado:

npm start

Flujo de trabajo de compilación y commit

Este repositorio rastrea intencionalmente dist/ para soportar el uso de npx github:usuario/repo.

El proyecto utiliza un hook pre-commit de Husky para:

  1. compilar TypeScript (npm run build)

  2. preparar los artefactos generados (git add dist)

Alternativa manual:

npm run build
git add dist

Notas de seguridad

  • Nunca hagas commit de credenciales reales o archivos .env.

  • Prefiere usuarios de base de datos con mínimos privilegios para uso en producción.

  • Para redes públicas o no confiables, habilita el cifrado (PGSSL=true) y configura los certificados adecuadamente.

Licencia

MIT © Raphael Augusto Ferroni Cardoso

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    An extensible MCP server for database operations that supports PostgreSQL for managing schemas, tables, data, and user permissions. It features automatic migration recording for DDL changes and integrates with various AI-powered editors like Cursor, Zed, and Claude Code.
    22
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol (MCP) Server that allows AI models to securely interact with data hosted in Azure Database for PostgreSQL. It enables natural language querying, schema exploration, and data management through MCP clients like Claude Desktop and Visual Studio Code.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A production-ready MCP server for PostgreSQL — built for Claude Desktop, Claude Code, and any MCP-compatible AI agent.
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    A Model Context Protocol (MCP) server that provides secure database access to PostgreSQL through Kysely ORM, enabling Claude Desktop to interact with PostgreSQL databases using natural language.
    22
    1
    ISC

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ferronicardoso/mcp-postgresql'

If you have feedback or need assistance with the MCP directory API, please join our Discord server