Model Context Protocol (MCP)

3 min de leitura

Model Context Protocol (MCP)

O PgArachne suporta nativamente o Model Context Protocol (MCP), um padrão aberto que permite a modelos de IA (como o Claude ou o Cursor) aceder de forma segura aos seus dados e funções como «ferramentas».

Como Funciona?

O PgArachne atua diretamente como um Servidor MCP. Em vez de escrever um servidor HTTP personalizado para cada projeto, basta executar o PgArachne sobre a sua base de dados. O PgArachne analisa automaticamente as suas funções SQL permitidas e expõe-as a clientes de IA via HTTP(S).

🛠️ Funções SQL como Ferramentas

Qualquer função SQL acessível através do endpoint JSON-RPC 2.0 do PgArachne torna-se automaticamente uma «ferramenta» disponível para a IA. O comportamento padrão (chamada a pgarachne.allowed_schemas()) expõe as funções armazenadas no schema api às quais o utilizador autenticado tem acesso (via GRANT EXECUTE). O modelo de linguagem vê o nome da função, os parâmetros e a descrição a partir dos comentários SQL.

Guia de Ligação

1 a. Autenticação — Token de API (recomendado para produção)

Para uma ligação de IA permanente, utilize um token de API de longa duração. O token deve ser gerado por um administrador (membro do papel pgarachne_admin):

-- Mudar para o papel de administrador
SET ROLE pgarachne_admin;

-- Gerar um novo token para o papel de destino (ex: 'app_user')
SELECT pgarachne.add_api_token('Claude Desktop', 'app_user');

Guarde a string retornada. Utilize-a como Authorization: Bearer SEU_TOKEN_API na configuração do cliente de IA.

1 b. Autenticação — Credenciais diretas (desenvolvimento e configurações simples)

Em alternativa, envie o nome de utilizador e a senha do PostgreSQL diretamente via HTTP Basic Authentication. Não é necessária nenhuma gestão de tokens de API, nem a execução de GRANT … TO pgarachne — o PgArachne conecta-se diretamente como o utilizador especificado.

Authorization: Basic <base64(utilizador:senha)>

Utilize esta abordagem para testes locais ou ferramentas internas onde as credenciais já são geridas de forma segura. Para integrações de IA em produção com clientes na nuvem, os tokens de API são preferíveis.

2. Claude Desktop

Adicione o PgArachne à configuração do Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "pgarachne": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-http",
        "--url",
        "https://sua-api.com/db/meu_banco/mcp"
      ],
      "env": {
        "Authorization": "Bearer SEU_TOKEN_API"
      }
    }
  }
}

Nota: HTTP(S) é obrigatório para a ligação. O exemplo utiliza a ponte npx server-http da Anthropic, que funciona como intermediário entre o MCP padrão (stdio) e o PgArachne (HTTP).

3. Cursor

Nas definições do Cursor (Settings > MCP), adicione um novo servidor comunicando diretamente via HTTP (ou utilizando a ponte mencionada acima, caso a sua versão do Cursor não suporte servidores MCP HTTP nativos):

  • Tipo: command (com ponte npx) ou http
  • Nome: PgArachne
  • URL: https://sua-api.com/db/meu_banco/mcp
  • Cabeçalho de Auth: Authorization: Bearer SEU_TOKEN_API

🌐 Acessibilidade Pública (Ngrok)

Se estiver a testar o PgArachne localmente e pretender ligá-lo a um cliente de IA baseado na nuvem (fora de instalações locais), o seu servidor deve ser publicamente acessível via um URL HTTP(S).

# Executar o ngrok para a porta HTTP do PgArachne (ex: 8080)
ngrok http 8080

Utilize então o endereço HTTPS gerado pelo Ngrok na configuração da IA.

Segurança

O endpoint MCP respeita integralmente o sistema de permissões do PostgreSQL:

  • Autenticação: Cada requisição requer um token de API válido, um JWT ou credenciais HTTP Basic; requisições não autenticadas são rejeitadas imediatamente.
  • Autorização: A IA pode ver e chamar apenas as funções nos schemas permitidos para as quais o papel autenticado possui GRANT EXECUTE.
  • RLS: A Row-Level Security está totalmente ativa — a IA vê apenas as linhas às quais o papel específico tem acesso.

Consulte Segurança e Autenticação para uma comparação completa de todos os métodos de autenticação suportados.