pgEdge PostgreSQL MCP Server

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

Documentación

Servidor MCP de pgEdge Postgres y Agente de Lenguaje Natural

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

El servidor MCP (Protocolo de Contexto de Modelo) de pgEdge Postgres 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 Soportadas: PostgreSQL 14 y superiores.

NO PARA APLICACIONES DE CARA AL PÚBLICO: Este servidor MCP proporciona a los LLM acceso de lectura a todo el esquema y los datos de su base de datos. Solo debe utilizarse para herramientas internas, flujos de trabajo de desarrollo, o entornos donde todos los usuarios sean de confianza. Para aplicaciones de cara al público, considere el Servidor RAG de pgEdge en su lugar. Consulte la guía Elegir la Solución Correcta para más detalles.

Inicio Rápido

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

ClienteTransporteMejor Para
CLI (Stdio)StdioDesarrollo local de un solo usuario
CLI (HTTP)HTTPAcceso multiusuario o remoto
Interfaz WebHTTPInterfaz 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 demo guiada con datos de ejemplo, consulte la Demo de Inicio Rápido con Northwind.

Características Clave

  • 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 esquemas, 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 con todas las funciones y caché de prompts de Anthropic (reducción de costos del 90%)
  • Modo HTTP/HTTPS - Acceso directo a la API con autenticación de usuarios y tokens
  • Interfaz Web - Interfaz moderna basada en React con chat impulsado por IA para la interacción con bases de datos en lenguaje natural
  • Soporte Docker - Imágenes preconstruidas en Registro de Contenedores de GitHub con despliegue mediante Docker Compose
  • Seguro - Soporte TLS, autenticación de usuarios y tokens, 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 utiliza 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 con 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 más 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 usuarios y tokens de API con expiración
  • Soporte TLS/HTTPS
  • Hash de tokens SHA256
  • Aplicación de permisos de archivos (0600)
  • Validación y saneamiento de entradas

Consulte la Guía de Seguridad para documentación completa sobre 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
  • Compruebe que los parámetros de conexión sean correctos

Consulte la Guía de Solución de Problemas para soluciones detalladas.

Soporte

Para informar un problema con el software, visite: Problemas en GitHub

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

Este proyecto está licenciado bajo la Licencia PostgreSQL.