pgEdge PostgreSQL MCP Server

100% Open Source Enterprise PostgreSQL MCP con consultas en lenguaje natural, búsqueda híbrida (pgvector+BM25)

Documentación

pgEdge Postgres MCP Server y Agente de Lenguaje Natural

CI - MCP Server CI - CLI Client CI - Web Client CI - Docker CI - Documentation

El servidor pgEdge Postgres Model Context Protocol (MCP) permite consultas SQL contra bases de datos PostgreSQL a través de clientes compatibles con MCP. El Agente de Lenguaje Natural proporciona funcionalidad de soporte que le permite usar lenguaje natural para formular consultas SQL.

Versiones compatibles: PostgreSQL 14 y superiores.

NO PARA APLICACIONES PÚBLICAS: Este servidor MCP proporciona a los LLM acceso de lectura a todo el esquema y los datos de su base de datos. Solo debe usarse para herramientas internas, flujos de trabajo de desarrollo, o entornos donde todos los usuarios sean de confianza. Para aplicaciones públicas, considere el pgEdge RAG Server en su lugar. Consulte la guía Elegir la solución adecuada para obtener más detalles.

Inicio rápido

La guía de Inicio rápido cubre la instalación y configuración para todos los clientes compatibles:

ClienteTransporteMejor para
CLI (Stdio)StdioDesarrollo local de un solo usuario
CLI (HTTP)HTTPAcceso multiusuario o remoto
Web UIHTTPInterfaz de chat basada en navegador
Claude CodeStdioAgente CLI de Anthropic
Claude DesktopStdioAplicación de escritorio de Anthropic
CursorStdioEditor de código con IA
WindsurfStdioEditor de código de Codeium
VS Code CopilotStdioAgente de GitHub Copilot

Para una demostración guiada con datos de ejemplo, consulte la Demo de inicio rápido con Northwind.

Características principales

  • Protección de solo lectura - Todas las consultas se ejecutan en transacciones de solo lectura por defecto
  • Recursos - Acceso a estadísticas de PostgreSQL y más
  • Herramientas - Ejecución de consultas, análisis de esquema, búsqueda híbrida avanzada (BM25+MMR), generación de embeddings, lectura de recursos y más
  • Prompts - Flujos de trabajo guiados para configuración de búsqueda semántica, exploración de bases de datos, diagnóstico de consultas y más
  • Cliente de chat de producción - Cliente Go completo con caché de prompts de Anthropic (reducción del 90% en costos)
  • Modo HTTP/HTTPS - Acceso directo a la API con autenticación de usuario y token
  • Interfaz web - Interfaz moderna basada en React con chat impulsado por IA para interacción con bases de datos en lenguaje natural
  • Soporte Docker - Imágenes preconstruidas en GitHub Container Registry con despliegue mediante Docker Compose
  • Seguro - Soporte TLS, autenticación de usuario y token, aplicación de solo lectura
  • Recarga en caliente - Recarga automática de archivos de autenticación sin reiniciar el servidor

Desarrollo

Requisitos previos

  • Go 1.21 o superior
  • PostgreSQL 14 o superior (para pruebas)
  • golangci-lint v1.x (para linting)

Configuración del linter

El proyecto usa golangci-lint v1.x. Instálelo con:

go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest

Nota: El archivo de configuración .golangci.yml es compatible con golangci-lint v1.x (no v2).

Compilación

git clone https://github.com/pgEdge/pgedge-postgres-mcp.git
cd pgedge-postgres-mcp
make build

Pruebas

# Run all tests
make test

# Run server tests with a database
export TEST_PGEDGE_POSTGRES_CONNECTION_STRING=\
  "postgres://localhost/postgres?sslmode=disable"
go test ./...

# Run with coverage
go test -v -cover ./...

# Run linting
make lint

Pruebas de la interfaz web

La interfaz web tiene un conjunto completo de pruebas. Consulte web/TEST_SUMMARY.md para obtener detalles.

cd web
npm test                # Run all tests
npm run test:watch      # Watch mode
npm run test:coverage   # With coverage

Seguridad

  • Aplicación de transacciones de solo lectura (configurable por base de datos)
  • Autenticación de usuario y token de API con expiración
  • Soporte TLS/HTTPS
  • Hash de tokens SHA256
  • Aplicación de permisos de archivo (0600)
  • Validación y saneamiento de entradas

Consulte la Guía de seguridad para obtener documentación completa de seguridad.

Solución de problemas

¿No ve las herramientas en Claude Desktop?

  • Use rutas absolutas en la configuración
  • Reinicie Claude Desktop por completo
  • Verifique la sintaxis JSON

¿Errores de conexión a la base de datos?

  • Asegúrese de que la conexión a la base de datos esté configurada antes de iniciar el servidor (mediante archivo de configuración, variables de entorno o banderas de línea de comandos)
  • Verifique que PostgreSQL esté en ejecución: pg_isready
  • Verifique que los parámetros de conexión sean correctos

Consulte la Guía de solución de problemas para obtener soluciones detalladas.

Soporte

Para informar un problema con el software, visite: GitHub Issues

Para obtener más información, visite docs.pgedge.com

Este proyecto está licenciado bajo la Licencia PostgreSQL.