MCP

PostgreSQL MCP: primeiro veja a estrutura das tabelas, depois execute uma consulta somente leitura

Para quem precisa inspecionar um schema PostgreSQL ou executar SQL somente leitura; você deve fornecer a string de conexão. Uma transação somente leitura ainda lê o banco e pode carregar senha: não é risco zero.

Official source · modelcontextprotocol/server-postgres

Install

npx -y @modelcontextprotocol/server-postgres postgresql://localhost/mydb

Para quem

Para fazer um modelo ver a estrutura de tabelas de um banco PostgreSQL e executar SQL somente leitura. A evidência afirma: este MCP oferece acesso somente leitura ao PostgreSQL, para inspecionar o schema e executar consultas somente leitura.

Você precisa fornecer uma URL postgresql:// conectável e aceitar que o modelo lerá estruturas de tabelas e resultados. Uma transação somente leitura não é «risco zero»: ainda conecta, ainda lê dados, e a URL pode carregar usuário e senha.

A evidência não lista clientes. A página oficial está na árvore servers-archived; a evidência não descreve à parte o estado de manutenção. Não presuma que ainda é a implementação principal recomendada.

Primeira tentativa em 3 minutos

Siga o caminho principal NPX; não trate Docker como instalação principal. Na configuração MCP do cliente use:

"command": "npx",
"args": [
  "-y",
  "@modelcontextprotocol/server-postgres",
  "postgresql://localhost/mydb"
]

Troque a última URL por um banco ao qual você tem acesso somente leitura. Usuário e senha podem ser escritos como na evidência: postgresql://user:password@host:port/db-name. Não cole uma conta de escrita de produção nem uma senha completa na conversa.

Pré-requisitos: a máquina tem npx; o banco permite conexões desse processo; na primeira vez, só inspecione o schema ou execute uma consulta que não altere dados.

Onde configurar: command / args do servidor MCP do cliente. O terceiro argumento é a string de conexão.

Primeira chamada de baixo risco: primeiro leia o recurso postgres://<host>/<table>/schema para ver nomes e tipos de colunas de uma tabela; ou chame a ferramenta query com uma string sql — a evidência garante execução numa transação READ ONLY. Não tente INSERT/UPDATE/DELETE para «verificar o somente leitura».

Sinal de sucesso: após conectar, o cliente lista recursos de schema de tabela, ou query devolve um resultado somente leitura. Se a conexão falhar, mude primeiro a URL (banco local, porta, nome do banco); não troque para Docker e chute. Sobre Docker a evidência só acrescenta: no macOS, se o serviço estiver no host, use host.docker.internal.

Casos de uso

Caso 1: descobrir quais colunas uma tabela tem. Leia postgres://<host>/<table>/schema. A evidência afirma que é um JSON schema descoberto automaticamente dos metadados, com nomes de coluna e tipos. Não há API de enumeração de nomes de tabela; substitua <host> e <table> conforme a conexão real. Não invente tabelas que você não vê.

Caso 2: executar uma consulta somente leitura numa tabela cuja existência já foi confirmada. Chame query; o único parâmetro é sql. A evidência garante execução numa transação READ ONLY; não documenta paginação, tempo limite nem o alcance do dialeto SQL executável. O que se confirma: este SQL é enviado como consulta somente leitura ao banco já conectado. Não assuma poder escrever tabelas temporárias ou chamar funções que mudam estado.

Limites de uso

É acesso somente leitura, não uma escrita reversível: a evidência não dá undo. A string de conexão pode conter senha — exposição de credenciais e do plano de dados. A única ferramenta é query. Docker e NPX são caminhos diferentes; o principal permanece NPX. A evidência não documenta pool de conexões, SSL nem imposição de papel somente leitura, e não diz que uma transação READ ONLY bloqueia todos os efeitos colaterais (algumas funções SQL ainda podem ter efeitos externos, mas a página não desenvolve). A página está numa árvore de repositório arquivado; a evidência não oferece pacote alternativo nem nota de migração.