Go MCP Postgres
Un servidor MCP independiente para interactuar con bases de datos PostgreSQL. Admite operaciones CRUD, un modo de solo lectura y verificación de planes de consulta.
Documentación
go-mcp-postgres
Resumen
Copie el código de https://github.com/Zhwt/go-mcp-mysql/ y con ayuda de IA, cambié la base de datos de mysql a postgres.
Servidor de Model Context Protocol (MCP) de cero carga, listo para usar, para interactuar con Postgres y automatización. No se necesita entorno Node.js ni Python. Este servidor proporciona herramientas para realizar operaciones CRUD en bases de datos y tablas de MySQL, y un modo de solo lectura para evitar operaciones de escritura sorpresa. También puede hacer que el servidor MCP verifique el plan de consulta usando una declaración EXPLAIN antes de ejecutar la consulta agregando un indicador --with-explain-check.
Tenga en cuenta que esto es un trabajo en progreso y puede que aún no esté listo para uso en producción.
Instalación
-
Obtenga la última versión y colóquela en su
$PATHo en algún lugar de fácil acceso. -
O si tiene Go instalado, puede compilarlo desde el código fuente:
go install -v github.com/guoling2008/go-mcp-postgres@latest
Uso
Método A: Usando argumentos de línea de comandos para 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, debe reemplazar go-mcp-postgres con la ruta completa al binario: por ejemplo: si coloca el binario en la carpeta Downloads, puede usar la siguiente ruta:
{
"mcpServers": {
"postgres": {
"command": "C:\\Users\\<username>\\Downloads\\go-mcp-postgres.exe",
"args": [
...
]
}
}
}
Método B: Usando argumentos de línea de comandos para modo sse
./go-mcp-postgres --t sse --ip x.x.x.x --port nnnn --dsn postgresql://user:pass@host:port/db --lang en
Indicadores Opcionales
--lang: Establecer opción de idioma (en/zh-CN), por defecto usa el idioma del sistema- Agregue un indicador
--read-onlypara habilitar el modo de solo lectura. En este modo, solo están disponibles las herramientas que comienzan conlist,read_ydesc_. Asegúrese de actualizar/reiniciar el servidor MCP después de agregar este indicador. - Por defecto, las consultas CRUD se ejecutarán primero con una declaración
EXPLAIN ?para verificar si el plan de consulta generado coincide con el patrón esperado. Agregue un indicador--with-explain-checkpara deshabilitar este comportamiento.
Herramientas
Soporte multilingüe: Todas las descripciones de herramientas se localizarán automáticamente según el parámetro lang
Si desea agregar soporte para su propio idioma, consulte la carpeta [locales](for i18n). El nuevo archivo locales/xxx/active-xx.toml debe crearse si desea usarlo en la línea de comandos.
Herramientas de Esquema
-
list_database- ${mcp.tool.list_database.desc}
- Parámetros: Ninguno
- Devuelve: Una lista de nombres de bases de datos coincidentes.
-
list_table- ${mcp.tool.list_table.desc}
- Parámetros:
name: Si se proporciona, lista las tablas con el nombre especificado. De lo contrario, lista todas las tablas.
- Devuelve: Una lista de nombres de tablas coincidentes.
-
create_table- ${mcp.tool.create_table.desc}
- Parámetros:
query: La consulta SQL para crear la tabla.
- Devuelve: x filas afectadas.
-
alter_table- Alterar una tabla existente en el servidor Postgres. Se informa al LLM que no elimine una tabla o columna existente.
- Parámetros:
query: La consulta SQL para alterar la tabla.
- Devuelve: x filas afectadas.
-
desc_table- Describir la estructura de una tabla.
- Parámetros:
name: El nombre de la tabla a describir.
- Devuelve: La estructura de la tabla.
Herramientas de Datos
-
read_query- Ejecutar una consulta SQL de solo lectura.
- Parámetros:
query: La consulta SQL a ejecutar.
- Devuelve: El resultado de la consulta.
-
write_query- Ejecutar una consulta SQL de escritura.
- Parámetros:
query: La consulta SQL a ejecutar.
- Devuelve: x filas afectadas, último id insertado: <last_insert_id>.
-
update_query- Ejecutar una consulta SQL de actualización.
- Parámetros:
query: La consulta SQL a ejecutar.
- Devuelve: x filas afectadas.
-
delete_query- Ejecutar una consulta SQL de eliminación.
- Parámetros:
query: La consulta SQL a ejecutar.
- Devuelve: x filas afectadas.
-
count_query- Consultar el número de filas en una tabla determinada.
- Parámetros:
name: El nombre de la tabla a contar.
- Devuelve: El número de filas de la tabla.
Muchas gracias a https://github.com/Zhwt/go-mcp-mysql/ nuevamente.
Licencia
MIT