Skip to main content
Glama

Enhanced PostgreSQL MCP Server

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.

-
security - not tested
F
license - not found
-
quality - not tested

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