{"openapi":"3.1.0","info":{"title":"RAGJur — Jurimetria e Busca Jurisprudencial","version":"2.4.0","description":"REST bridge das 14 tools do MCP RAGJur (Beans Tech Inova Simples (I.S.), CNPJ 64.160.205/0001-17): jurimetria e busca em ~62M decisões judiciais brasileiras. Para a API completa use https://api.ragjur.ai/api/v1/openapi.json."},"servers":[{"url":"https://mcp.ragjur.ai","description":"Production"},{"url":"http://localhost:8080","description":"Local development"}],"security":[{"ApiKeyAuth":[]},{"OAuth2":["ragjur:read"]}],"paths":{"/api/tools/buscar_jurisprudencia":{"post":{"operationId":"buscar_jurisprudencia","summary":"Buscar jurisprudência","description":"Busque decisões judiciais por palavras-chave em 67M+ julgados de 55 tribunais brasileiros (BM25). Use quando o usuário pedir precedentes, ementas ou acórdãos sobre um tema. Filtre por tribunal (fonte), turma, relator, classe e período; pagine com \"pagina\" (50 por página).","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":3,"description":"Termos de busca (ex: \"dano moral consumidor banco\")"},"fonte":{"type":"string","description":"Código do tribunal (ex: stj_integras, tst_jurisprudencia, tjsp_cjsg)"},"turma":{"type":"string","description":"Órgão julgador específico"},"relator":{"type":"string","description":"Nome do relator/juiz"},"classe":{"type":"string","description":"Classe processual (ex: REsp, AgInt, HC)"},"dataInicio":{"type":"string","description":"Data início YYYY-MM-DD"},"dataFim":{"type":"string","description":"Data fim YYYY-MM-DD"},"pagina":{"type":"number","minimum":1,"maximum":200,"description":"Página (1-200, 50 resultados/página)"}},"required":["query"],"additionalProperties":false}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"array"}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"502":{"description":"Upstream API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}}}},"/api/tools/panorama_tema":{"post":{"operationId":"panorama_tema","summary":"Panorama do tema","description":"Obtenha a visão geral de um tema: taxa de provimento, categorias de resultado e tendência. Use antes de ajuizar ou para dimensionar as chances de uma tese. Parâmetros: busca (tema), fonte e turma opcionais.","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"busca":{"type":"string","minLength":3,"description":"Tema jurídico para analisar"},"fonte":{"type":"string","description":"Tribunal (ex: stj_integras)"},"turma":{"type":"string","description":"Turma/câmara específica"}},"required":["busca"],"additionalProperties":false}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"array"}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"502":{"description":"Upstream API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}}}},"/api/tools/divergencia_turmas":{"post":{"operationId":"divergencia_turmas","summary":"Divergência entre turmas","description":"Detecte divergência de entendimento entre turmas/câmaras de um tribunal sobre um tema. Use para fundamentar recurso por dissídio ou escolher o órgão mais favorável. Parâmetros: busca (tema) e fonte opcional.","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"busca":{"type":"string","minLength":3,"description":"Tema jurídico"},"fonte":{"type":"string","description":"Tribunal"}},"required":["busca"],"additionalProperties":false}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"array"}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"502":{"description":"Upstream API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}}}},"/api/tools/evolucao_jurisprudencial":{"post":{"operationId":"evolucao_jurisprudencial","summary":"Evolução jurisprudencial","description":"Mostre como o entendimento sobre um tema evoluiu por trimestre (tendência crescente, decrescente ou estável). Use para verificar se uma tese está ganhando ou perdendo força. Parâmetros: busca, fonte e turma opcionais.","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"busca":{"type":"string","minLength":3,"description":"Tema jurídico"},"fonte":{"type":"string","description":"Tribunal"},"turma":{"type":"string","description":"Turma/câmara"}},"required":["busca"],"additionalProperties":false}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"array"}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"502":{"description":"Upstream API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}}}},"/api/tools/predicao_resultado":{"post":{"operationId":"predicao_resultado","summary":"Predição de resultado","description":"Estime estatisticamente o resultado provável de um caso combinando taxa histórica, tendência temporal, perfil do tribunal e intervalo de confiança. Use quando o usuário perguntar \"qual a chance de ganhar\". Parâmetros: busca; fonte, turma e relator opcionais.","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"busca":{"type":"string","minLength":3,"description":"Tema/tese jurídica"},"fonte":{"type":"string","description":"Tribunal"},"turma":{"type":"string","description":"Turma"},"relator":{"type":"string","description":"Relator"}},"required":["busca"],"additionalProperties":false}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"array"}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"502":{"description":"Upstream API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}}}},"/api/tools/perfil_relator":{"post":{"operationId":"perfil_relator","summary":"Perfil do relator","description":"Analise o perfil de um relator/juiz num tema: taxa de provimento, termos mais usados e tendências recentes. Use para conhecer o julgador antes de sustentar ou recorrer. Parâmetros: busca (tema); fonte e turma opcionais.","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"busca":{"type":"string","minLength":3,"description":"Tema jurídico"},"fonte":{"type":"string","description":"Tribunal"},"turma":{"type":"string","description":"Turma"}},"required":["busca"],"additionalProperties":false}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"array"}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"502":{"description":"Upstream API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}}}},"/api/tools/dna_turma":{"post":{"operationId":"dna_turma","summary":"DNA da turma","description":"Extraia os termos estatisticamente significativos que caracterizam as decisões de uma turma sobre um tema. Use para adaptar a linguagem da peça ao órgão julgador. Parâmetros: busca; fonte e turma opcionais.","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"busca":{"type":"string","minLength":3,"description":"Tema jurídico"},"fonte":{"type":"string","description":"Tribunal"},"turma":{"type":"string","description":"Turma"}},"required":["busca"],"additionalProperties":false}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"array"}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"502":{"description":"Upstream API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}}}},"/api/tools/clusters_tematicos":{"post":{"operationId":"clusters_tematicos","summary":"Clusters temáticos","description":"Agrupe decisões semelhantes em clusters temáticos (embeddings) e revele sub-temas e abordagens distintas. Use para mapear as correntes dentro de um assunto amplo. Parâmetros: busca; fonte e número de clusters (2-10) opcionais.","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"busca":{"type":"string","minLength":3,"description":"Tema jurídico"},"fonte":{"type":"string","description":"Tribunal"},"clusters":{"type":"number","minimum":2,"maximum":10,"description":"Número de clusters (2-10, padrão 5)"}},"required":["busca"],"additionalProperties":false}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"array"}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"502":{"description":"Upstream API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}}}},"/api/tools/estrategia_juiz":{"post":{"operationId":"estrategia_juiz","summary":"Estratégia para o julgador","description":"Gere análise estratégica completa de um juiz/relator para um tema: perfil, tendência, argumentos que ressoam, índice de rigor e recomendações. Use ao preparar sustentação ou peça dirigida a um julgador específico. Parâmetros obrigatórios: relator, tema, fonte.","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"relator":{"type":"string","minLength":3,"description":"Nome do relator/juiz"},"tema":{"type":"string","minLength":3,"description":"Tema jurídico"},"fonte":{"type":"string","description":"Tribunal (obrigatório, ex: stj_integras)"},"turma":{"type":"string","description":"Turma"}},"required":["relator","tema","fonte"],"additionalProperties":false}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"array"}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"502":{"description":"Upstream API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}}}},"/api/tools/verificar_citacao":{"post":{"operationId":"verificar_citacao","summary":"Verificar citações","description":"Verifique se as citações jurisprudenciais de um texto existem e estão corretas (anti-alucinação). Use sempre que revisar peças ou textos com precedentes gerados por IA. Parâmetros: content (texto); mode \"rapido\" ou \"deep\".","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","minLength":20,"description":"Texto contendo citações jurídicas para verificar"},"mode":{"type":"string","enum":["rapido","deep"],"description":"Modo: rapido (local) ou deep (busca completa)"}},"required":["content"],"additionalProperties":false}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"array"}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"502":{"description":"Upstream API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}}}},"/api/tools/gerar_peca":{"post":{"operationId":"gerar_peca","summary":"Gerar peça processual","description":"Redija minuta de peça processual (petição inicial, contestação, recurso ou parecer) fundamentada em jurisprudência real do índice. Use quando o usuário pedir uma minuta. Parâmetros: tipo, tema, fonte, fatos e lado (autor/reu).","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tipo":{"type":"string","enum":["peticao_inicial","contestacao","recurso","parecer"],"description":"Tipo da peça"},"tema":{"type":"string","minLength":3,"description":"Tema/tese principal"},"fonte":{"type":"string","description":"Tribunal de referência"},"fatos":{"type":"string","minLength":10,"description":"Resumo dos fatos do caso"},"lado":{"type":"string","enum":["autor","reu"],"description":"Lado representado"}},"required":["tipo","tema","fonte","fatos","lado"],"additionalProperties":false}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"array"}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"502":{"description":"Upstream API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}}}},"/api/tools/similaridade":{"post":{"operationId":"similaridade","summary":"Decisões similares","description":"Encontre decisões semanticamente similares a um texto (ementa, tese ou fatos) via embeddings vetoriais. Use quando a busca por palavras-chave não bastar ou o usuário fornecer um trecho. Parâmetros: texto; fonte e limite (1-20) opcionais.","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"texto":{"type":"string","minLength":10,"description":"Texto para buscar similares (ementa, tese, fato)"},"fonte":{"type":"string","description":"Restringir a um tribunal"},"limite":{"type":"number","minimum":1,"maximum":20,"description":"Número de resultados (1-20)"}},"required":["texto"],"additionalProperties":false}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"array"}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"502":{"description":"Upstream API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}}}},"/api/tools/chat_juridico":{"post":{"operationId":"chat_juridico","summary":"Chat jurídico com fontes","description":"Responda perguntas jurídicas com IA fundamentada em decisões reais recuperadas do índice. Use para perguntas abertas que exijam resposta em prosa com precedentes. Parâmetros: pergunta e fonte (tribunal de referência).","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pergunta":{"type":"string","minLength":5,"description":"Pergunta jurídica"},"fonte":{"type":"string","description":"Tribunal de referência para grounding"}},"required":["pergunta","fonte"],"additionalProperties":false}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"array"}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"502":{"description":"Upstream API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}}}},"/api/tools/tempo_tramitacao":{"post":{"operationId":"tempo_tramitacao","summary":"Tempo de tramitação","description":"Obtenha estatísticas de tempo de tramitação de um tema: mediana, percentis e variação por turma e ano. Use para estimar prazos de julgamento. Parâmetros: busca; fonte e turma opcionais.","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"busca":{"type":"string","minLength":3,"description":"Tema jurídico"},"fonte":{"type":"string","description":"Tribunal"},"turma":{"type":"string","description":"Turma"}},"required":["busca"],"additionalProperties":false}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"array"}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"502":{"description":"Upstream API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}}}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"API key for RAGJur. Obtain at ragjur.ai"},"OAuth2":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://mcp.ragjur.ai/oauth/authorize","tokenUrl":"https://mcp.ragjur.ai/oauth/token","refreshUrl":"https://mcp.ragjur.ai/oauth/token","scopes":{"ragjur:read":"Busca jurisprudencial e jurimetria (somente leitura)"}}}}}}}