pgEdge PostgreSQL MCP Server

MCP PostgreSQL Enterprise 100% Open Source com consultas em linguagem natural e busca híbrida (pgvector+BM25)

Documentação

Servidor MCP pgEdge Postgres e Agente de Linguagem Natural

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

O servidor MCP (Model Context Protocol) pgEdge Postgres permite consultas SQL em bancos de dados PostgreSQL por meio de clientes compatíveis com MCP. O Agente de Linguagem Natural fornece funcionalidades de apoio que permitem usar linguagem natural para formar consultas SQL.

Versões Suportadas: PostgreSQL 14 e superiores.

NÃO PARA APLICAÇÕES PÚBLICAS: Este servidor MCP fornece aos LLMs acesso de leitura a todo o esquema e dados do seu banco. Ele deve ser usado apenas para ferramentas internas, fluxos de trabalho de desenvolvedores ou ambientes onde todos os usuários são confiáveis. Para aplicações públicas, considere o Servidor RAG pgEdge em vez disso. Consulte o guia Escolhendo a Solução Certa para detalhes.

Início Rápido

O guia de Início Rápido cobre instalação e configuração para todos os clientes suportados:

ClienteTransporteMelhor Para
CLI (Stdio)StdioDesenvolvimento local de usuário único
CLI (HTTP)HTTPAcesso multiusuário ou remoto
Interface WebHTTPInterface de chat baseada em navegador
Claude CodeStdioAgente CLI da Anthropic
Claude DesktopStdioAplicativo desktop da Anthropic
CursorStdioEditor de código com IA
WindsurfStdioEditor de código Codeium
VS Code CopilotStdioAgente GitHub Copilot

Para uma demonstração guiada com dados de exemplo, consulte a Demonstração de Início Rápido com Northwind.

Principais Recursos

  • Proteção Somente Leitura - Todas as consultas são executadas em transações somente leitura por padrão
  • Recursos - Acesse estatísticas do PostgreSQL e muito mais
  • Ferramentas - Execução de consultas, análise de esquema, pesquisa híbrida avançada (BM25+MMR), geração de embeddings, leitura de recursos e muito mais
  • Prompts - Fluxos de trabalho guiados para configuração de pesquisa semântica, exploração de banco de dados, diagnóstico de consultas e muito mais
  • Cliente de Chat de Produção - Cliente Go completo com cache de prompts da Anthropic (redução de 90% nos custos)
  • Modo HTTP/HTTPS - Acesso direto à API com autenticação de usuário e token
  • Interface Web - Interface moderna baseada em React com chat com IA para interação com banco de dados em linguagem natural
  • Suporte a Docker - Imagens pré-construídas no Registro de Contêineres do GitHub com implantação via Docker Compose
  • Seguro - Suporte a TLS, autenticação de usuário e token, aplicação de somente leitura
  • Recarga Automática - Recarga automática de arquivos de autenticação sem reiniciar o servidor

Desenvolvimento

Pré-requisitos

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

Configuração do Linter

O projeto usa golangci-lint v1.x. Instale-o com:

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

Nota: O arquivo de configuração .golangci.yml é compatível com golangci-lint v1.x (não v2).

Compilação

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

Testes

# 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

Testes da Interface Web

A interface web possui uma suíte de testes abrangente. Consulte web/TEST_SUMMARY.md para detalhes.

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

Segurança

  • Aplicação de transações somente leitura (configurável por banco de dados)
  • Autenticação de usuário e token de API com expiração
  • Suporte a TLS/HTTPS
  • Hash SHA256 de tokens
  • Aplicação de permissões de arquivo (0600)
  • Validação e sanitização de entrada

Consulte o Guia de Segurança para documentação abrangente de segurança.

Solução de Problemas

Ferramentas não visíveis no Claude Desktop?

  • Use caminhos absolutos na configuração
  • Reinicie o Claude Desktop completamente
  • Verifique a sintaxe do JSON

Erros de conexão com o banco de dados?

  • Certifique-se de que a conexão com o banco de dados esteja configurada antes de iniciar o servidor (via arquivo de configuração, variáveis de ambiente ou flags de linha de comando)
  • Verifique se o PostgreSQL está em execução: pg_isready
  • Verifique se os parâmetros de conexão estão corretos

Consulte o Guia de Solução de Problemas para soluções detalhadas.

Suporte

Para relatar um problema com o software, visite: Issues do GitHub

Para mais informações, visite docs.pgedge.com

Este projeto é licenciado sob a Licença PostgreSQL.