Postgres MCP Server

Proporciona acceso seguro a bases de datos PostgreSQL utilizando el ORM Kysely.

Documentación

Servidor MCP de Postgres

npm version Tests GitHub issues

Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona acceso seguro a bases de datos PostgreSQL a través de Kysely ORM. Este servidor permite que Claude Desktop interactúe con bases de datos PostgreSQL usando lenguaje natural.

Características

  • Herramientas MCP: Ejecución de consultas, listado de tablas, inspección de esquemas e información de restricciones
  • Seguridad de tipos: Soporte completo de TypeScript con entradas/salidas tipadas
  • Agrupación de conexiones: Límites de conexión configurables con tiempo de espera de inactividad
  • Manejo de errores: Mensajes de error claros para problemas de conexión y consultas
  • Seguridad: Consultas parametrizadas para prevenir inyección SQL

Instalación

npx postgres-mcp-server

Configuración

Crea un archivo .env con tus credenciales de base de datos:

DB_HOST=127.0.0.1
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=your_password_here
DB_NAME=postgres
DB_SSL=true

Herramientas Disponibles

HerramientaDescripciónParámetros RequeridosParámetros Opcionales
queryEjecuta consultas SQL con soporte de paginaciónsql (string)pageSize (1-500), offset (number), parameters (array)
describe_tableObtiene la estructura de la tabla y detalles de columnasschema (string), table (string)-
list_tablesLista todas las tablas en un esquemaschema (string)-
list_schemasLista todos los esquemas en la base de datos-includeSystemSchemas (boolean)
get_constraintsObtiene restricciones de tabla (PK, FK, etc.)schema (string), table (string)-
list_indexesLista índices para una tabla o esquemaschema (string)table (string)
list_viewsLista vistas en un esquemaschema (string)-
list_functionsLista funciones y procedimientosschema (string)-
explain_queryObtiene el plan de ejecución de consultassql (string)analyze (boolean), format (text/json/xml/yaml)
get_table_statsObtiene el tamaño de la tabla y estadísticasschema (string)table (string)

Características Clave

  • Paginación: La herramienta de consulta soporta hasta 500 filas por página con manejo automático de LIMIT/OFFSET
  • Seguridad: Las consultas parametrizadas previenen la inyección SQL, modo READ_ONLY por defecto
  • Seguridad de tipos: Soporte completo de TypeScript con validación de esquema Zod

Configuración de Claude Desktop

Agrega este servidor a tu archivo de configuración de Claude Desktop:

Edita claude_desktop_config.json:

{
  "mcpServers": {
    "postgres-mcp-server": {
      "command": "npx",
      "args": ["postgres-mcp-server"],
      "env": {
        "DB_HOST": "127.0.0.1",
        "DB_PORT": "5432",
        "DB_USER": "postgres",
        "DB_PASSWORD": "your_password_here",
        "DB_NAME": "your_database_name",
        "DB_SSL": "true"
      }
    }
  }
}

Ubicaciones de Archivos de Configuración

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Desarrollo

# Clone and install dependencies
git clone https://github.com/abiswas97/postgres-mcp-server.git
cd postgres-mcp-server
npm install

# Run in development mode with hot reload
npm run dev

# Build for production
npm run build

# Run tests
npm run test

# Run specific test suites
npm run test:unit
npm run test:integration

Variables de Entorno

VariableDefaultDescripción
DB_HOST127.0.0.1Host de PostgreSQL
DB_PORT5432Puerto de PostgreSQL
DB_USERpostgresUsuario de la base de datos
DB_PASSWORDrequeridoContraseña de la base de datos
DB_NAMEpostgresNombre de la base de datos
DB_SSLtrueHabilitar conexión SSL
READ_ONLYtrueRestringir a consultas SELECT/WITH/EXPLAIN
QUERY_TIMEOUT30000Tiempo de espera de consulta en milisegundos
MAX_PAGE_SIZE500Máximo de filas por página
DEFAULT_PAGE_SIZE100Tamaño de página predeterminado cuando no se especifica

Licencia

ISC