MCP PostgreSQL Server

Un servidor que permite a los modelos de IA interactuar con bases de datos PostgreSQL a través de una interfaz estandarizada.

Documentación

MCP PostgreSQL Server

Un servidor de Protocolo de Contexto de Modelo que proporciona operaciones de base de datos PostgreSQL. Este servidor permite que los modelos de IA interactúen con bases de datos PostgreSQL a través de una interfaz estandarizada.

Instalación

Instalación Manual

npm install mcp-postgres-server

O ejecute directamente con:

npx mcp-postgres-server

Configuración

El servidor requiere las siguientes variables de entorno:

{
  "mcpServers": {
    "postgres": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-postgres-server"],
      "env": {
        "PG_HOST": "your_host",
        "PG_PORT": "5432",
        "PG_USER": "your_user",
        "PG_PASSWORD": "your_password",
        "PG_DATABASE": "your_database"
      }
    }
  }
}

Herramientas Disponibles

1. connect_db

Establece la conexión con la base de datos PostgreSQL utilizando las credenciales proporcionadas.

use_mcp_tool({
  server_name: "postgres",
  tool_name: "connect_db",
  arguments: {
    host: "localhost",
    port: 5432,
    user: "your_user",
    password: "your_password",
    database: "your_database"
  }
});

2. query

Ejecuta consultas SELECT con parámetros opcionales de sentencias preparadas. Soporta tanto marcadores de posición de estilo PostgreSQL ($1, $2) como de estilo MySQL (?).

use_mcp_tool({
  server_name: "postgres",
  tool_name: "query",
  arguments: {
    sql: "SELECT * FROM users WHERE id = $1",
    params: [1]
  }
});

3. execute

Ejecuta consultas INSERT, UPDATE o DELETE con parámetros opcionales de sentencias preparadas. Soporta tanto marcadores de posición de estilo PostgreSQL ($1, $2) como de estilo MySQL (?).

use_mcp_tool({
  server_name: "postgres",
  tool_name: "execute",
  arguments: {
    sql: "INSERT INTO users (name, email) VALUES ($1, $2)",
    params: ["John Doe", "john@example.com"]
  }
});

4. list_schemas

Lista todos los esquemas en la base de datos conectada.

use_mcp_tool({
  server_name: "postgres",
  tool_name: "list_schemas",
  arguments: {}
});

5. list_tables

Lista las tablas en la base de datos conectada. Acepta un parámetro de esquema opcional (por defecto, 'public').

// List tables in the 'public' schema (default)
use_mcp_tool({
  server_name: "postgres",
  tool_name: "list_tables",
  arguments: {}
});

// List tables in a specific schema
use_mcp_tool({
  server_name: "postgres",
  tool_name: "list_tables",
  arguments: {
    schema: "my_schema"
  }
});

6. describe_table

Obtiene la estructura de una tabla específica. Acepta un parámetro de esquema opcional (por defecto, 'public').

// Describe a table in the 'public' schema (default)
use_mcp_tool({
  server_name: "postgres",
  tool_name: "describe_table",
  arguments: {
    table: "users"
  }
});

// Describe a table in a specific schema
use_mcp_tool({
  server_name: "postgres",
  tool_name: "describe_table",
  arguments: {
    table: "users",
    schema: "my_schema"
  }
});

Características

  • Manejo seguro de conexiones con limpieza automática
  • Soporte de sentencias preparadas para parámetros de consulta
  • Soporte tanto para marcadores de posición de estilo PostgreSQL ($1, $2) como de estilo MySQL (?)
  • Manejo integral de errores y validación
  • Soporte de TypeScript
  • Gestión automática de conexiones
  • Soporta sintaxis y características específicas de PostgreSQL
  • Soporte multi-esquema para operaciones de base de datos

Seguridad

  • Utiliza sentencias preparadas para prevenir la inyección SQL
  • Soporta el manejo seguro de contraseñas mediante variables de entorno
  • Valida las consultas antes de su ejecución
  • Cierra automáticamente las conexiones al finalizar

Manejo de Errores

El servidor proporciona mensajes de error detallados para problemas comunes:

  • Fallos de conexión
  • Consultas inválidas
  • Parámetros faltantes
  • Errores de base de datos

Licencia

MIT