go-mcp-postgres

by guoling2008
Verified
MIT License
4
  • Linux
  • Apple

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Provides tools for interacting with PostgreSQL databases, including CRUD operations, schema management (listing databases and tables, describing table structures, creating and altering tables), and executing SQL queries with optional query plan validation and read-only mode protection.

go-mcp-postgres

Descripción general

Copié el código de https://github.com/Zhwt/go-mcp-mysql/ y, con la ayuda de IA, cambié la base de datos de MySQL a Postgres. Servidor de Protocolo de Contexto de Modelo (MCP) listo para usar y sin carga para interactuar con Postgres y la automatización. No se requiere un entorno Node.js ni Python. Este servidor proporciona herramientas para realizar operaciones CRUD en bases de datos y tablas MySQL, y un modo de solo lectura para evitar escrituras inesperadas. También puedes hacer que el servidor MCP revise el plan de consulta mediante una sentencia EXPLAIN antes de ejecutar la consulta, añadiendo el indicador --with-explain-check .

Tenga en cuenta que este es un trabajo en progreso y es posible que aún no esté listo para su uso en producción.

Instalación

  1. Obtén la última versión y colócala en tu $PATH o en algún lugar al que puedas acceder fácilmente.
  2. O si tienes Go instalado, puedes compilarlo desde la fuente:
go install -v github.com/guoling2008/go-mcp-postgres@latest

Uso

Método A: Uso de argumentos de línea de comandos para el modo stdio

{ "mcpServers": { "postgres": { "command": "go-mcp-postgres", "args": [ "--dsn", "postgresql://user:pass@host:port/db" ] } } }

Nota: Para aquellos que colocan el binario fuera de su $PATH , deben reemplazar go-mcp-postgres con la ruta completa al binario: por ejemplo: si coloca el binario en la carpeta Descargas , puede usar la siguiente ruta:

{ "mcpServers": { "postgres": { "command": "C:\\Users\\<username>\\Downloads\\go-mcp-postgres.exe", "args": [ ... ] } } }

Método B: Uso de argumentos de línea de comandos para el modo sse

./go-mcp-postgres --t sse --ip xxxx --port nnnn --dsn postgresql://usuario:contraseña@host:puerto/db --lang es

Banderas opcionales

  • --lang : establece la opción de idioma (en/zh-CN), el valor predeterminado es el idioma del sistema
  • Agregue el indicador --read-only para habilitar el modo de solo lectura. En este modo, solo están disponibles las herramientas que empiezan por list , read_ y desc_ . Asegúrese de actualizar/reiniciar el servidor MCP después de agregar este indicador.
  • De forma predeterminada, las consultas CRUD se ejecutan primero con una instrucción EXPLAIN ? para comprobar si el plan de consulta generado coincide con el patrón esperado. Agregue el indicador --with-explain-check para desactivar este comportamiento.

Herramientas

Compatibilidad con varios idiomas: todas las descripciones de las herramientas se localizarán automáticamente según el parámetro de idioma.

Si desea añadir compatibilidad con su propio idioma, consulte la carpeta [locales](para i18n). Debe crear el nuevo archivo locales/xxx/active-xx.toml si desea usarlo en la línea de comandos.

Herramientas de esquema

  1. list_database
    • ${mcp.tool.list_database.desc}
    • Parámetros: Ninguno
    • Devuelve: una lista de nombres de bases de datos coincidentes.
  2. list_table
    • ${mcp.tool.list_table.desc}
    • Parámetros:
      • name : si se proporciona, enumera las tablas con el nombre especificado; de lo contrario, enumera todas las tablas.
    • Devuelve: una lista de nombres de tablas coincidentes.
  3. create_table
    • ${mcp.tool.create_table.desc}
    • Parámetros:
      • query : La consulta SQL para crear la tabla.
    • Devuelve: x filas afectadas.
  4. alter_table
    • Modificar una tabla existente en el servidor Postgres. Se informa al LLM que no debe eliminar ninguna tabla o columna existente.
    • Parámetros:
      • query : La consulta SQL para alterar la tabla.
    • Devuelve: x filas afectadas.
  5. desc_table
    • Describe la estructura de una tabla.
    • Parámetros:
      • name : El nombre de la tabla a describir.
    • Devuelve: La estructura de la tabla.

Herramientas de datos

  1. read_query
    • Ejecutar una consulta SQL de solo lectura.
    • Parámetros:
      • query : La consulta SQL a ejecutar.
    • Devuelve: El resultado de la consulta.
  2. write_query
    • Ejecutar una consulta SQL de escritura.
    • Parámetros:
      • query : La consulta SQL a ejecutar.
    • Devuelve: x filas afectadas, último ID de inserción: <last_insert_id>.
  3. update_query
    • Ejecutar una consulta SQL de actualización.
    • Parámetros:
      • query : La consulta SQL a ejecutar.
    • Devuelve: x filas afectadas.
  4. delete_query
    • Ejecutar una consulta SQL de eliminación.
    • Parámetros:
      • query : La consulta SQL a ejecutar.
    • Devuelve: x filas afectadas.
  5. count_query
    • Consultar el número de filas de una tabla determinada.
    • Parámetros:
      • name : El nombre de la tabla a contar.
    • Devuelve: El número de fila de la tabla.

Muchas gracias nuevamente a https://github.com/Zhwt/go-mcp-mysql/ .

Licencia

Instituto Tecnológico de Massachusetts (MIT)

-
security - not tested
A
license - permissive license
-
quality - not tested

¿Qué es go-mcp-postgres? go-mcp-postgres es un servidor de Protocolo de Contexto de Modelo (MCP) diseñado para interactuar con bases de datos Postgres, lo que permite realizar operaciones CRUD sencillas y automatizarlas sin necesidad de un entorno Node.js o Python.

  1. Overview
    1. Installation
      1. Usage
        1. Method A: Using Command Line Arguments for stdio mode
        2. Method B: Using Command Line Arguments for sse mode
        3. Optional Flags
      2. Tools
        1. Schema Tools
        2. Data Tools
      3. License
        ID: 1gjecq0j89