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