JurisprudênciaIA MCP · OAuth 2.1 · Google

Instale o servidor MCP e conecte seu primeiro cliente, do zero.

Você não precisa de conhecimento técnico avançado. Cada etapa mostra exatamente o que digitar, o que aparecer e como confirmar que deu certo — do clone ao primeiro search no Claude ou Codex.

Leva cerca de 25 minutos Nenhum segredo exposto no código Controle total por allowlist
Passo a passo completo
Antes de começar: você precisa de uma conta Cloudflare (o plano gratuito funciona), um projeto Google Cloud para gerar as credenciais OAuth e o Node.js 22+ instalado. Reservar 25 minutos e seguir os passos na ordem.

Clone o repositório e instale as dependências

  1. Abra o PowerShell ou o Prompt de Comando da sua máquina, na pasta onde quer manter o código.
  2. Rode o comando abaixo:
git clone https://github.com/brunoflma/jurisprudenciaia-mcp.git
cd jurisprudenciaia-mcp-private
npm install
O que aparece: o npm install termina com added X packages. Demora de 30 a 90 segundos.

Crie conta no Cloudflare e conecte o Wrangler

  1. Se ainda não tem, crie uma conta em dash.cloudflare.com. O plano Free é suficiente.
  2. Volte ao terminal na pasta do projeto e autentique o Wrangler:
npx wrangler login
  1. Confirme que entrou com a conta certa:
npx wrangler whoami
O que aparece: wrangler whoami mostra seu e-mail e a Account ID. Guarde esses dados.

Crie os dois namespaces KV (um para cache, um para sessões)

O servidor precisa de dois storages no Cloudflare. Cada comando abaixo devolve um ID que você vai guardar:

npx wrangler kv namespace create JURIS_CACHE
npx wrangler kv namespace create OAUTH_KV
Guarde: o output traz algo como { "id": "abc123..." } para cada namespace. Anote os dois IDs — serão usados no próximo passo.

Edite o wrangler.jsonc com seus dados

Abra o arquivo wrangler.jsonc na raiz do projeto (Notepad, VSCode, bloco de notas — qualquer um) e substitua:

  1. "id": "replace-with-your-juris-cache-kv-id" → ID gerado pelo Passo 03 para JURIS_CACHE
  2. "id": "replace-with-your-oauth-kv-id" → ID gerado pelo Passo 03 para OAUTH_KV
  3. Se já souber a URL pública final, também ajuste MCP_PUBLIC_ORIGIN e MCP_GOOGLE_CALLBACK_ORIGIN (se não souber ainda, o Passo 06 mostra como descobrir)
# O wrangler.jsonc já vem com a estrutura pronta.
# Só substitua os placeholders entre aspas pelos IDs do Passo 03.

Crie o projeto no Google Cloud e gere as credenciais OAuth

  1. Crie um projeto novo em Google Cloud Console (nome sugestivo, ex.: JurisprudênciaIA MCP).
  2. Em APIs e Serviços → Tela de consentimento OAuth, escolha Externo e preencha só o necessário (nome do app e um e-mail de contato).
  3. Em Credenciais → Criar credenciais → ID do cliente OAuth, selecione Aplicativo da Web.
  4. Nome sugestivo: jurisprudenciaia-mcp-oauth.
  5. Em URIs de redirecionamento autorizados, cole (ajuste para o seu domínio):
https://mcp.seu-dominio.com/oauth/google/callback
Importante: use https://, domínio real (sem IP, sem localhost). Confirme a barra final em /oauth/google/callback — sem / no final.
  1. Salve o ID do Cliente (vale público) e o Segredo do Cliente (privado, só vai no próximo passo).

Configure os segredos no Cloudflare e publique

Via terminal, rode três comandos. Cada um abre um prompt pedindo o valor — cole conforme abaixo:

6.1 · Segredo do Google

npx wrangler secret put MCP_GOOGLE_CLIENT_SECRET

Cole o Segredo do Cliente do Google.

6.2 · Lista de e-mails permitidos

npx wrangler secret put MCP_ALLOWED_EMAILS

Cole uma lista separada por vírgula, ex.: usu1@dominio.com,usu2@dominio.com. Só essas pessoas poderão fazer login no conector.

6.3 · Variable pública: origem do Worker

Determine onde o servidor vai publicar. Pode ser um domínio próprio ou *.workers.dev.

Edite o wrangler.jsonc e coloque a mesma origem nos três campos:

  • MCP_PUBLIC_ORIGIN
  • MCP_GOOGLE_CALLBACK_ORIGIN
  • e no próprio routes (se usar domínio próprio)
Exemplo com domínio próprio: https://mcp.seu-dominio.com (sem / no final). Se usar *.workers.dev, o Wrangler mostra o endereço real ao publicar — guarde-o e use-o no Google Cloud (Passo 05).

6.4 · Publicar

npm run deploy:worker
O que aparece: o Wrangler termina com Deployed jurisprudenciaia-mcp e mostra a URL de produção.

Confirme que o servidor subiu

Rode:

curl https://mcp.seu-dominio.com/healthz
O que aparece: uma resposta JSON de saúde indicando que o Worker está no ar. Se aparecer 404 ou erro, revise o wrangler.jsonc e rode o deploy de novo.

Conecte no Claude (ou Codex)

Para usuários do Claude (Desktop ou Web):

  1. Abra Configurações → Conectores.
  2. Clique em Adicionar conector personalizado.
  3. Informe:
  • Nome: jurisprudenciaia
  • URL do servidor: https://mcp.seu-dominio.com/mcp
  • Deixe Client ID e Client Secret vazios (mesmo que apareçam)
Mockup do formulário do Claude com nome jurisprudenciaia e URL pública
O formulário real do Claude segue esse padrão. Mockup com dados fictícios.
  1. Clique em Adicionar. O Claude abre o browser para consentimento:
Mockup da página de autorização OAuth neutra do conector
A tela real usa autenticação Google. Somente o consentimento é exibido.
  1. Clique em Continuar com Google e escolha a conta que está na allowlist.
  2. Ao voltar ao Claude, o status fica Conectado:
Mockup do conector jurisprudenciaia com status conectado
O conector aparece com as três ferramentas habilitadas.
Para o Codex (CLI): configure em config.toml:
[mcp_servers.jurisprudenciaia]
url = "https://mcp.seu-dominio.com/mcp"
auth = "oauth"
enabled = true
Depois rode codex mcp login jurisprudenciaia no terminal.

Faça o primeiro teste

Em uma conversa nova do Claude:

Use a ferramenta pesquisar_jurisprudencia para pesquisar "negativação indevida dano moral" no STJ.

O conector responde com precedentes e fontes. Se aparecerem dados, está pronto para produção.

O que nunca deve aparecer em capturas de tela

  • E-mail ou avatar de qualquer usuário real
  • Tela de seleção de contas do Google
  • Client ID ou Client Secret
  • Token, cookie ou código OAuth
  • URL final de produção em código público
  • ID de conta ou projeto Cloudflare

Os mockups acima usam dados fictícios intencionalmente. Para o guia real, substitua pelos seus próprios dados de implantação ou mantenha os mockups como referência estrutural.

Problemas comuns

Erro no login do Google: "redirect_uri_mismatch"

O Google está exigindo que o callback registrado no Passo 05 coincida com o MCP_GOOGLE_CALLBACK_ORIGIN. Os dois precisam ser exatamente https://seu-dominio.com/oauth/google/callback. Ajuste no Google Cloud e no wrangler.jsonc, rode npm run deploy:worker outra vez e Tente o login de novo.

O e-mail está na allowlist mas o login não autoriza

Verifique se você rodou npx wrangler secret put MCP_ALLOWED_EMAILS depois da última edição do wrangler.jsonc. Segredos só valem a partir do próximo deploy.

O Claude diz "Failed to connect" depois de adicionar

Primeiro confirme que o Worker está no ar (curl https://seu-dominio.com/healthz). Depois confirme que a URL que você colou no Claude termina em /mcp (não só o domínio). Se continuar, desconecte, recrie o conector e faça o login Google novamente.

Preciso permitir mais pessoas no futuro

Sim. Rode npx wrangler secret put MCP_ALLOWED_EMAILS de novo com a lista ampliada (todos os e-mails, não só os novos). Rode npm run deploy:worker para republicar com o novo segredo.