Skip to main content
Glama

MCP PostgreSQL Server

by Maxim2324

Servidor PostgreSQL MCP

Un servidor Modelo-Controlador-Proveedor (MCP) que:

  • Se conecta a una base de datos PostgreSQL
  • Expone esquemas de tablas como recursos
  • Proporciona herramientas para ejecutar consultas SQL de solo lectura
  • Incluye indicaciones para tareas comunes de análisis de datos.

Características

  • Exploración de esquemas : explore esquemas, tablas y columnas de bases de datos
  • Ejecución de consultas de solo lectura : ejecute consultas SQL de forma segura en su base de datos
  • Indicaciones de análisis de datos : Plantillas SQL prediseñadas para tareas de análisis comunes
  • Visualización de datos : generar datos para visualización
  • Exploración de relaciones : visualice relaciones de tablas y claves externas
  • Documentación de API : Especificación OpenAPI generada automáticamente

Arquitectura

Esta aplicación sigue el patrón Modelo-Controlador-Proveedor (MCP):

  • Capa de modelo : interacción directa con la base de datos
  • Capa de proveedor : lógica empresarial y procesamiento de datos
  • Capa de controlador : puntos finales de API y manejo de solicitudes

Características de seguridad

  • Validación de consultas de solo lectura
  • Protección contra inyección SQL
  • Limitación de velocidad
  • Consultas parametrizadas
  • Soporte de autenticación
  • Configuración de CORS

Instalación

  1. Clonar el repositorio:
    git clone <repository-url> cd mcp-postgres-server
  2. Instalar dependencias:
    npm install
  3. Cree un archivo .env basado en .env.template :
    cp .env.template .env
  4. Actualice el archivo .env con las credenciales de su base de datos PostgreSQL.
  5. Iniciar el servidor:
    npm start

Configuración

Toda la configuración se gestiona a través de variables de entorno:

  • Servidor : Puerto, entorno, configuración CORS
  • Base de datos : Detalles de conexión, configuración del grupo
  • Seguridad : configuración de JWT, limitación de velocidad
  • Consulta : Límites de ejecución, límites de tamaño de resultados

Puntos finales de API

Puntos finales del esquema

  • GET /api/schemas - Listar todos los esquemas
  • GET /api/schemas/:schema/tables - Listar tablas en un esquema
  • GET /api/schemas/:schema/tables/:table - Obtener detalles del esquema de la tabla
  • GET /api/schemas/:schema/relationships - Obtener relaciones de tablas
  • GET /api/structure - Obtener la estructura completa de la base de datos
  • GET /api/search?q=term - Buscar en tablas y columnas

Puntos finales de consulta

  • POST /api/query - Ejecutar una consulta SQL
  • POST /api/query/explain - Obtener el plan de ejecución de la consulta
  • GET /api/schemas/:schema/tables/:table/sample - Obtener datos de muestra
  • GET /api/schemas/:schema/tables/:table/stats - Obtener estadísticas de la tabla

Puntos finales del mensaje de análisis

  • GET /api/prompts - Plantillas de indicaciones para el análisis de listas
  • GET /api/prompts/:templateId - Obtener detalles de la plantilla de solicitud
  • POST /api/prompts/:templateId/generate - Generar SQL a partir de la plantilla
  • GET /api/schemas/:schema/tables/:table/analysis/suggest - Obtener sugerencias de análisis

Consultas de ejemplo

Consulta de tabla básica

// API request fetch('/api/query', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ sql: 'SELECT * FROM users LIMIT 10' }) }) .then(response => response.json()) .then(data => console.log(data));

Uso de indicaciones de análisis

// Get suggested analysis for a table fetch('/api/schemas/public/tables/orders/analysis/suggest') .then(response => response.json()) .then(suggestions => { // Use a suggestion const suggestionId = suggestions.data[0].templateId; const params = suggestions.data[0].params; // Generate SQL from the template return fetch(`/api/prompts/${suggestionId}/generate`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ params }) }); }) .then(response => response.json()) .then(data => { // Execute the generated SQL return fetch('/api/query', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ sql: data.data.sql }) }); }) .then(response => response.json()) .then(results => console.log(results));

Desarrollo

  • Ejecutar en modo de desarrollo: npm run dev
  • Ejecutar pruebas: npm test
  • Código de pelusa: npm run lint

Licencia

Instituto Tecnológico de Massachusetts (MIT)

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Un servidor que se conecta a bases de datos PostgreSQL y proporciona herramientas para explorar esquemas de forma segura, ejecutar consultas SQL de solo lectura y realizar análisis de datos con plantillas prediseñadas.

  1. Características
    1. Arquitectura
      1. Características de seguridad
        1. Instalación
          1. Configuración
            1. Puntos finales de API
              1. Puntos finales del esquema
              2. Puntos finales de consulta
              3. Puntos finales del mensaje de análisis
            2. Consultas de ejemplo
              1. Consulta de tabla básica
              2. Uso de indicaciones de análisis
            3. Desarrollo
              1. Licencia

                Related MCP Servers

                • A
                  security
                  A
                  license
                  A
                  quality
                  Facilitates management and optimization of PostgreSQL databases, offering analysis, setup guidance, and debugging, while ensuring secure and efficient database operations.
                  Last updated -
                  3
                  6
                  12
                  TypeScript
                  AGPL 3.0
                  • Linux
                  • Apple
                • -
                  security
                  F
                  license
                  -
                  quality
                  Provides read-only access to PostgreSQL databases, enabling users to inspect database schemas and execute read-only queries through a Model Context Protocol server.
                  Last updated -
                  3
                  JavaScript
                • -
                  security
                  F
                  license
                  -
                  quality
                  A server that allows AI models to interact with PostgreSQL databases through a standardized protocol, providing database schema information and SQL query execution capabilities.
                  Last updated -
                  JavaScript
                • -
                  security
                  F
                  license
                  -
                  quality
                  A Model Context Protocol server that enables interaction with PostgreSQL databases to list tables, retrieve schemas, and execute read-only SQL queries.
                  Last updated -
                  16,948
                  JavaScript
                  • Linux
                  • Apple

                View all related MCP servers

                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/Maxim2324/mcp-server-test'

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