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
- Acerca del Servidor MCP de pgEdge Postgres
- Instalación del Servidor MCP
- Configuración del Servidor MCP
- Especificación de Preferencias de Configuración
- Uso de Variables de Entorno para Especificar Opciones
- Inclusión de Embeddings de Proveedores en un Archivo de Configuración
- Configuración del Agente para Múltiples Bases de Datos
- Configuración de Servicios de Soporte; HTTP, systemd y nginx
- Uso de un Archivo de Secreto de Cifrado
- Habilitación o Deshabilitación de Funciones
- Configuración y Uso de una Aplicación Cliente
- Revisión de los Registros del Servidor
- Autenticación y Seguridad
- Referencia
- Temas Avanzados
- Para Desarrolladores
- Para Desarrolladores - Resumen
- Protocolo MCP
- Referencia de API
- Navegador de API
- Ejemplos de Clientes
- Construcción de Clientes de Chat
- Contribuciones
- Acceso a la Ayuda en Línea
- Solución de Problemas
- Notas de la Versión
- Licencia
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:
| Cliente | Transporte | Mejor Para |
|---|---|---|
| CLI (Stdio) | Stdio | Desarrollo local de un solo usuario |
| CLI (HTTP) | HTTP | Acceso multiusuario o remoto |
| Interfaz Web | HTTP | Interfaz de chat basada en navegador |
| Claude Code | Stdio | Agente CLI de Anthropic |
| Claude Desktop | Stdio | Aplicación de escritorio de Anthropic |
| Cursor | Stdio | Editor de código con IA |
| Windsurf | Stdio | Editor de código de Codeium |
| VS Code Copilot | Stdio | Agente 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.