Skip to main content
Glama
GarethCott

Enhanced PostgreSQL MCP Server

by GarethCott

Servidor MCP de PostgreSQL (mejorado)

Un servidor de Protocolo de Contexto de Modelo que proporciona acceso de lectura y escritura a bases de datos PostgreSQL. Este servidor permite a los LLM inspeccionar esquemas de bases de datos, ejecutar consultas, modificar datos y crear o modificar objetos de esquemas de bases de datos.

Nota: Esta es una versión mejorada del servidor PostgreSQL MCP original de Anthropic. El servidor original proporciona acceso de solo lectura, mientras que esta versión mejorada añade capacidades de escritura y gestión de esquemas.

Componentes

Herramientas

Consulta de datos

  • consulta

    • Ejecutar consultas SQL de solo lectura contra la base de datos conectada

    • Entrada: sql (cadena): La consulta SQL a ejecutar

    • Todas las consultas se ejecutan dentro de una transacción de SOLO LECTURA

Modificación de datos

  • ejecutar

    • Ejecutar una sentencia SQL que modifica datos (INSERTAR, ACTUALIZAR, ELIMINAR)

    • Entrada: sql (cadena): La declaración SQL a ejecutar

    • Ejecutado dentro de una transacción con manejo adecuado de COMMIT/ROLLBACK

  • insertar

    • Insertar un nuevo registro en una tabla

    • Aporte:

      • table (cadena): el nombre de la tabla

      • data (objeto): pares clave-valor donde las claves son los nombres de las columnas y los valores son los datos a insertar

  • actualizar

    • Actualizar registros en una tabla

    • Aporte:

      • table (cadena): el nombre de la tabla

      • data (objeto): pares clave-valor para los campos a actualizar

      • where (cadena): La condición WHERE para identificar los registros a actualizar

  • borrar

    • Eliminar registros de una tabla

    • Aporte:

      • table (cadena): el nombre de la tabla

      • where (cadena): La condición WHERE para identificar los registros a eliminar

Gestión de esquemas

  • crearTabla

    • Crear una nueva tabla con columnas y restricciones específicas

    • Aporte:

      • tableName (cadena): El nombre de la tabla

      • columns (matriz): Matriz de definiciones de columnas con nombre, tipo y restricciones opcionales

      • constraints (matriz): matriz opcional de restricciones a nivel de tabla

  • crearFunción

    • Crear una función/procedimiento de PostgreSQL

    • Aporte:

      • name (cadena): Nombre de la función

      • parameters (cadena): parámetros de función

      • returnType (cadena): Tipo de retorno

      • language (cadena): Idioma (plpgsql, sql, etc.)

      • body (cadena): Cuerpo de la función

      • options (cadena): Opciones de función adicionales opcionales

  • crearDisparador

    • Crear un disparador en una tabla

    • Aporte:

      • name (cadena): nombre del disparador

      • tableName (cadena): Tabla a la que aplicar el disparador

      • functionName (cadena): Función a llamar

      • when (cadena): ANTES, DESPUÉS o EN LUGAR DE

      • events (matriz): Matriz de eventos (INSERTAR, ACTUALIZAR, ELIMINAR)

      • forEach (cadena): FILA o DECLARACIÓN

      • condition (cadena): condición WHEN opcional

  • crearÍndice

    • Crear un índice en una tabla

    • Aporte:

      • tableName (cadena): nombre de la tabla

      • indexName (cadena): nombre del índice

      • columns (matriz): columnas para indexar

      • unique (booleano): si el índice es único

      • type (cadena): tipo de índice opcional (BTREE, HASH, GIN, GIST, etc.)

      • where (cadena): condición opcional

  • alterarTabla

    • Modificar la estructura de una tabla

    • Aporte:

      • tableName (cadena): nombre de la tabla

      • operation (cadena): Operación (AGREGAR COLUMNA, ELIMINAR COLUMNA, etc.)

      • details (cadena): Detalles de la operación

Recursos

El servidor proporciona información de esquema para cada tabla de la base de datos:

  • Esquemas de tabla ( postgres://<host>/<table>/schema )

    • Información del esquema JSON para cada tabla

    • Incluye nombres de columnas y tipos de datos.

    • Descubierto automáticamente a partir de metadatos de la base de datos

Related MCP server: PostgreSQL MCP Server

Uso con Claude Desktop

Para usar este servidor con la aplicación Claude Desktop, agregue la siguiente configuración a la sección "mcpServers" de su claude_desktop_config.json :

Estibador

  • Al ejecutar Docker en macOS, use host.docker.internal si el servidor se ejecuta en la red del host (por ejemplo, localhost).

  • El nombre de usuario y la contraseña se pueden agregar a la URL de postgresql con postgresql://user:password@host:port/db-name

  • Agregue ?sslmode=no-verify si necesita omitir la verificación del certificado SSL

{
  "mcpServers": {
    "postgres": {
      "command": "docker",
      "args": [
        "run", 
        "-i", 
        "--rm", 
        "mcp/postgres", 
        "postgresql://host.docker.internal:5432/mydb"]
    }
  }
}

NPX

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://localhost/mydb"
      ]
    }
  }
}

Reemplace /mydb con el nombre de su base de datos.

Ejemplo de uso

Consultar datos

/query SELECT * FROM users LIMIT 5

Insertar datos

/insert table="users", data={"name": "John Doe", "email": "john@example.com"}

Actualizar datos

/update table="users", data={"status": "inactive"}, where="id='123'"

Crear una tabla

/createTable tableName="tasks", columns=[
  {"name": "id", "type": "SERIAL", "constraints": "PRIMARY KEY"}, 
  {"name": "title", "type": "VARCHAR(100)", "constraints": "NOT NULL"},
  {"name": "created_at", "type": "TIMESTAMP", "constraints": "DEFAULT CURRENT_TIMESTAMP"}
]

Crear una función y un disparador

/createFunction name="update_timestamp", parameters="", returnType="TRIGGER", language="plpgsql", body="BEGIN NEW.updated_at = NOW(); RETURN NEW; END;"

/createTrigger name="set_timestamp", tableName="tasks", functionName="update_timestamp", when="BEFORE", events=["UPDATE"], forEach="ROW"

Edificio

Estibador:

docker build -t mcp/postgres -f Dockerfile . 

Consideraciones de seguridad

  1. Todas las operaciones de modificación de datos utilizan transacciones con el manejo adecuado de COMMIT/ROLLBACK

  2. Cada operación devuelve el SQL que se ejecutó para la transparencia.

  3. El servidor utiliza consultas parametrizadas para operaciones de inserción/actualización para evitar la inyección de SQL

Licencia

Este servidor MCP cuenta con la licencia MIT. Esto significa que puede usar, modificar y distribuir el software libremente, sujeto a los términos y condiciones de la licencia MIT. Para más detalles, consulte el archivo de LICENCIA en el repositorio del proyecto.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    A
    maintenance
    A Model Context Protocol server that provides read-only access to PostgreSQL databases. This server enables LLMs to inspect database schemas and execute read-only queries.
    100,745
    90,042
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that provides read-only access to PostgreSQL databases, enabling LLMs to inspect database schemas and execute read-only queries.
    100,745
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that provides read-only access to PostgreSQL databases, enabling LLMs to inspect database schemas and execute read-only queries.
    100,745
    MIT

Appeared in Searches

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/GarethCott/enhanced-postgres-mcp-server'

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