Legal MCP (alternativa ao Jusbrasil)
Open-source alternative to Jusbrasil for AI: find lawsuits by name, CPF, CNPJ or case number and bui
사용해야 할까요
품질 및 안전성
발견 사항 (8)
- HIGH
- MEDIUMlegal_checar_novidades에서
- LOWdjen_get_certidao에서
- LOWquerido_diario_buscar에서
- LOWconnect에서
- LOWtransparencia_despesas_favorecido에서
- LOWtransparencia_despesas_documentos에서
- INFOlegal_checar_novidades에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"jusbrasil-mcp": {
"url": "https://api.mcp.ai/legal"
}
}
}원격 엔드포인트
https://api.mcp.ai/legalstreamable-http할 수 있는 일
도구 목록
도구 (30)
🟢djen_search_comunicacoes(numero_oab, uf_oab, nome_advogado, nome_parte, numero_processo, ...)
Busca publicações/intimações no Diário de Justiça Eletrônico Nacional (DJEN) por OAB, nome de advogado, número de processo, tribunal e data. Cada item traz o texto completo da comunicação. (É o Diário de Justiça — não é base de jurisprudência/ementas, nem cadastro de processos: só tem o que foi PUBLICADO, a partir de 2020 e com cada tribunal entrando numa data própria.) Resultado vazio NÃO devolve só `count: 0`: vem um bloco `ausencia` com o motivo provável (numero_invalido | fora_da_cobertura | sem_publicacao) — leia antes de concluir que o processo não existe, e confirme no `datajud_get_processo`, que é o índice histórico.
입력 스키마
{
"type": "object",
"properties": {
"numero_oab": {
"type": "string"
},
"uf_oab": {
"type": "string"
},
"nome_advogado": {
"type": "string"
},
"nome_parte": {
"type": "string"
},
"numero_processo": {
"type": "string"
},
"sigla_tribunal": {
"type": "string"
},
"data_inicio": {
"type": "string"
},
"data_fim": {
"type": "string"
},
"meio": {
"type": "string"
},
"texto": {
"type": "string"
},
"pagina": {
"type": "number"
},
"itens_por_pagina": {
"type": "number"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢djen_processos_por_parte(nome_parte, sigla_tribunal, data_inicio, data_fim, itens_por_pagina, ...)
DESCOBERTA por NOME de parte (grátis, sem captcha): busca o DJEN por quem figura no processo e agrupa por número — devolve a lista de processos da pessoa/empresa, com partes e tribunal. Cobre processos COM publicação no Diário a partir de 2020 (não o acervo histórico completo), então `count_processos: 0` NÃO significa que a pessoa não tem processo — nesse caso vem um bloco `ausencia` explicando. Para entrada por CPF/CNPJ ou processos dormentes, use as tools processos_* (engine). Com os numero_processo, enriqueça com datajud.
입력 스키마
{
"type": "object",
"properties": {
"nome_parte": {
"type": "string"
},
"sigla_tribunal": {
"type": "string"
},
"data_inicio": {
"type": "string"
},
"data_fim": {
"type": "string"
},
"itens_por_pagina": {
"type": "number"
},
"pagina": {
"type": "number"
}
},
"required": [
"nome_parte"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢djen_get_certidao(hash)
Retorna a URL da certidão (PDF) de uma comunicação do DJEN pelo seu hash (campo `hash` retornado na busca).
입력 스키마
{
"type": "object",
"properties": {
"hash": {
"type": "string"
}
},
"required": [
"hash"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢processos_buscar_por_nome(nome, platforms, tribunais, max_results)
DESCOBERTA: busca processos pelo NOME de uma parte (pessoa ou empresa) raspando os portais públicos dos tribunais (ESAJ/PJe/eproc/Projudi) — o gap que datajud (só por número) e djen (OAB/advogado) não cobrem. É ASSÍNCRONO e lento: retorna { job_id }; chame processos_get_resultado(job_id) para obter a lista. Com os numero_cnj, use datajud_*/djen_* para enriquecer de graça.
입력 스키마
{
"type": "object",
"properties": {
"nome": {
"type": "string"
},
"platforms": {
"type": "array",
"items": {
"type": "string",
"enum": [
"esaj",
"pje",
"eproc",
"projudi"
]
}
},
"tribunais": {
"type": "array",
"items": {
"type": "string"
}
},
"max_results": {
"type": "number"
}
},
"required": [
"nome"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢processos_buscar_por_documento(documento, nome_titular, platforms, tribunais, max_results)
DESCOBERTA por CPF ou CNPJ. CPF/CNPJ não são chave de busca pública nos tribunais, então o serviço resolve o documento em nome(s) e busca por NOME nos portais: CNPJ→razão social (automático) e CPF→`nome_titular`, que você PRECISA informar (CPF→nome não é dado público). ASSÍNCRONO: retorna { job_id }; faça o polling com processos_get_resultado(job_id). Sem o nome do titular do CPF, use processos_buscar_por_nome.
입력 스키마
{
"type": "object",
"properties": {
"documento": {
"type": "string"
},
"nome_titular": {
"type": "string"
},
"platforms": {
"type": "array",
"items": {
"type": "string",
"enum": [
"esaj",
"pje",
"eproc",
"projudi"
]
}
},
"tribunais": {
"type": "array",
"items": {
"type": "string"
}
},
"max_results": {
"type": "number"
}
},
"required": [
"documento"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢processos_obter_pecas(numero_cnj, tribunal, peca_ids, formato)
DOWNLOAD das DECISÕES PÚBLICAS de um processo (acórdãos/inteiro teor): busca as decisões públicas do processo, baixa o PDF e converte em Markdown (o teor da decisão), com link temporário. Escopo PÚBLICO (CNJ Res. 121/2010): retorna o inteiro teor das decisões/acórdãos, NÃO os autos completos (petições/documentos exigem credencial de advogado). É ASSÍNCRONO (captcha por busca): retorna { job_id }; faça o polling com processos_get_resultado(job_id). Quando 'done', cada item traz `markdown` (texto da decisão) + `pdf_url`/`expires_at` (link expira, nada fica arquivado). Use o numero_cnj de processos_get_resultado/datajud. Processo sem decisão pública (ex.: só 1º grau em andamento) volta lista vazia.
입력 스키마
{
"type": "object",
"properties": {
"numero_cnj": {
"type": "string"
},
"tribunal": {
"type": "string"
},
"peca_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"formato": {
"type": "string",
"enum": [
"markdown",
"pdf"
]
}
},
"required": [
"numero_cnj"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢processos_get_resultado(job_id, job_ids)
Polling de um job de busca (de processos_buscar_por_nome/documento). Retorna { status, progress, items[], errors[] }. status: queued|running|done|error. Quando 'done', items[] traz os processos (numero_cnj, partes, advogados/OAB, classe/assunto) prontos para enriquecer com datajud_*/djen_*. Continue chamando até 'done' (a busca é lenta). IMPORTANTE: um 'done' pode vir DEGRADADO, e nesse caso vem um bloco `aviso` — leia antes de usar os dados. `vinculacao_nome: "nao_confirmada"` significa que o resultado NÃO foi validado contra o nome buscado (não apresente como processo da pessoa sem conferir), e `tribunais_inacessiveis` lista portais que não responderam: isso NÃO quer dizer que o tribunal não tenha o processo. Bulk support: accepts job_ids for batched execution.
입력 스키마
{
"type": "object",
"properties": {
"job_id": {
"type": "string"
},
"job_ids": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"job_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢cnpj_consultar(cnpj)
Consulta cadastral de um CNPJ (grátis): razão social, nome fantasia, situação cadastral, CNAE principal, porte, município/UF e SÓCIOS (QSA). Útil pra identificar a empresa e seus sócios antes de buscar processos.
입력 스키마
{
"type": "object",
"properties": {
"cnpj": {
"type": "string"
}
},
"required": [
"cnpj"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢cnpj_processos(cnpj, incluir_socios)
DESCOBERTA por CNPJ: resolve o CNPJ em razão social (e sócios) e busca os processos por NOME no Diário (DJEN) — grátis, com número de processo completo. Opcionalmente inclui os processos dos sócios. Com os números, enriqueça com as tools datajud.
입력 스키마
{
"type": "object",
"properties": {
"cnpj": {
"type": "string"
},
"incluir_socios": {
"type": "boolean"
}
},
"required": [
"cnpj"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢cpf_validar(cpf)
Valida os dígitos verificadores de um CPF (mod 11) e informa se há broker de identidade disponível. Não revela a identidade do titular.
입력 스키마
{
"type": "object",
"properties": {
"cpf": {
"type": "string"
}
},
"required": [
"cpf"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢cpf_processos(cpf, nome)
DESCOBERTA por CPF: busca os processos da pessoa por NOME no Diário (DJEN), grátis. IMPORTANTE: CPF→nome não é dado público — informe o parâmetro `nome` (recomendado). Sem nome, só resolve se houver um broker pago configurado na plataforma; caso contrário retorna instrução pedindo o nome.
입력 스키마
{
"type": "object",
"properties": {
"cpf": {
"type": "string"
},
"nome": {
"type": "string"
}
},
"required": [
"cpf"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢transparencia_sancoes(cpf_cnpj)
Consulta sanções de uma pessoa ou empresa por CPF/CNPJ no Portal da Transparência (consolida CEIS — inidôneas/suspensas, CNEP — empresas punidas, e CEPIM — entidades impedidas). Retorna `tem_sancao` + lista com tipo, órgão, fundamentação e datas. Due diligence / compliance.
입력 스키마
{
"type": "object",
"properties": {
"cpf_cnpj": {
"type": "string"
}
},
"required": [
"cpf_cnpj"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢transparencia_pep(cpf)
Verifica se um CPF é de Pessoa Exposta Politicamente (PEP) e retorna função/órgão/período. Importante para compliance/KYC.
입력 스키마
{
"type": "object",
"properties": {
"cpf": {
"type": "string"
}
},
"required": [
"cpf"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢transparencia_despesas_favorecido(cpf_cnpj, mes_ano_inicio, mes_ano_fim)
DESPESAS recebidas por uma empresa ou pessoa (CPF/CNPJ) do Governo Federal num período: 'quanto a empresa recebeu da União'. Soma os recursos recebidos e quebra por órgão pagador e por mês. IMPORTANTE: cobre só o Executivo FEDERAL, não inclui estados nem municípios (cada ente tem portal próprio). Sem datas, usa os últimos 12 meses.
입력 스키마
{
"type": "object",
"properties": {
"cpf_cnpj": {
"type": "string"
},
"mes_ano_inicio": {
"type": "string"
},
"mes_ano_fim": {
"type": "string"
}
},
"required": [
"cpf_cnpj"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢transparencia_despesas_documentos(cpf_cnpj, ano, fase, ordenacao, pagina)
Documentos de despesa (Empenho, Liquidação ou Pagamento) emitidos pelo Governo Federal para um favorecido (CPF/CNPJ) num ano, item-a-item: data, documento, espécie, valor, órgão, elemento de despesa e nº do processo. `fase` default = 3 (Pagamento, o dinheiro efetivamente pago). Só Executivo FEDERAL. Para o total agregado use transparencia_despesas_favorecido.
입력 스키마
{
"type": "object",
"properties": {
"cpf_cnpj": {
"type": "string"
},
"ano": {
"type": "number"
},
"fase": {
"type": "string",
"enum": [
"empenho",
"liquidacao",
"pagamento"
]
},
"ordenacao": {
"type": "number"
},
"pagina": {
"type": "number"
}
},
"required": [
"cpf_cnpj"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢querido_diario_buscar(termo, territory_ids, data_inicio, data_fim, size)
Busca em diários oficiais MUNICIPAIS (milhares de prefeituras) por termo/nome — útil pra menções fora do Judiciário: licitações, nomeações, contratos, sanções municipais. Complementa o DJEN (que é judicial). Cada resultado traz trechos (excerpts) + URL do diário. Para nome exato, use aspas no termo.
입력 스키마
{
"type": "object",
"properties": {
"termo": {
"type": "string"
},
"territory_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"data_inicio": {
"type": "string"
},
"data_fim": {
"type": "string"
},
"size": {
"type": "number"
}
},
"required": [
"termo"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢jurisprudencia_buscar(termo, tipo, tribunais, data_de, data_ate, ...)
Busca jurisprudência (acórdãos, súmulas, orientações jurisprudenciais, temas) por termo ou tese. Devolve, por registro: identificação da decisão, órgão julgador, relator, data, o trecho que casou a busca e o link para o documento no site oficial. Quando o registro traz `texto_integral_disponivel: true`, o inteiro teor pode ser lido com jurisprudencia_documento usando o `id`. Alguns registros vêm sem relator/órgão/número quando a publicação não permite afirmar esses campos — campo nulo é ausência de informação na fonte, não defeito. Informe `tribunais` para restringir a busca; sem isso a pesquisa é ampla. Zero resultado não significa que a decisão não exista: costuma ser vocabulário (o termo do tribunal difere do coloquial) ou filtro estreito demais. No termo funcionam os operadores: espaço = E, "entre aspas" = frase exata, OR = ou, -palavra = exclui.
입력 스키마
{
"type": "object",
"properties": {
"termo": {
"type": "string"
},
"tipo": {
"type": "string"
},
"tribunais": {
"type": "array",
"items": {
"type": "string"
}
},
"data_de": {
"type": "string"
},
"data_ate": {
"type": "string"
},
"ordenar": {
"type": "string",
"enum": [
"relevancia",
"recencia"
]
},
"max": {
"type": "number"
}
},
"required": [
"termo"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢jurisprudencia_sumulas(termo, max)
Busca SÚMULAS (incluindo vinculantes) por termo. Atalho do jurisprudencia_buscar com tipo=Súmula. Quando o texto completo do enunciado está disponível ele vem na ementa, e enunciado cancelado/revogado é marcado no próprio texto.
입력 스키마
{
"type": "object",
"properties": {
"termo": {
"type": "string"
},
"max": {
"type": "number"
}
},
"required": [
"termo"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢jurisprudencia_documento(id, numeracao, tribunal, ids)
Lê o INTEIRO TEOR de uma decisão (texto completo do acórdão, não o resumo). Use o campo `id` de um resultado de jurisprudencia_buscar que traga `texto_integral_disponivel: true`, ou o número CNJ do processo. Resultado sem `id` não é legível por aqui, abra a `url`. Quando o processo tem mais de uma decisão, as outras vêm listadas em `outras_decisoes_do_processo`. Bulk support: accepts ids for batched execution.
입력 스키마
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"numeracao": {
"type": "string"
},
"tribunal": {
"type": "string"
},
"ids": {
"type": "array",
"items": {
"type": "string"
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢legal_dossie(nome, cnpj, cpf, nome_titular, numero_processo, ...)
Raio-X jurídico de uma pessoa ou empresa: descobre os processos e (opcional) o andamento, num relatório consolidado. Aceita `nome`, `cnpj`, `cpf` (com `nome_titular`) ou `numero_processo` — informe APENAS um. Retorna a lista de processos (número, partes, tribunal) + um aviso. IMPORTANTE: confirme sempre o número e o andamento no site oficial do tribunal — os dados podem estar incompletos/desatualizados.
입력 스키마
{
"type": "object",
"properties": {
"nome": {
"type": "string"
},
"cnpj": {
"type": "string"
},
"cpf": {
"type": "string"
},
"nome_titular": {
"type": "string"
},
"numero_processo": {
"type": "string"
},
"incluir_andamento": {
"type": "boolean"
},
"incluir_socios": {
"type": "boolean"
},
"incluir_sancoes": {
"type": "boolean"
},
"incluir_mencoes_municipais": {
"type": "boolean"
},
"max_processos": {
"type": "number"
},
"sigla_tribunal": {
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪legal_monitorar(numero_processo, nome, cnpj, oab, uf, ...)
Cria um monitoramento: avisa quando houver NOVIDADE — nova movimentação (numero_processo), novo processo de uma pessoa/empresa (nome/cnpj), ou nova publicação/intimação de uma OAB (oab+uf). Os alertas chegam pelo webhook do install (evento legal.movimentacao_nova); use legal_checar_novidades para checar na hora.
입력 스키마
{
"type": "object",
"properties": {
"numero_processo": {
"type": "string"
},
"nome": {
"type": "string"
},
"cnpj": {
"type": "string"
},
"oab": {
"type": "string"
},
"uf": {
"type": "string"
},
"sigla_tribunal": {
"type": "string"
},
"intervalo_horas": {
"type": "number"
},
"label": {
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢legal_listar_monitoramentos
Lista os monitoramentos ativos do workspace.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴legal_remover_monitoramento(watch_id, watch_ids)
Remove (desativa) um monitoramento pelo seu id (`watch_id`). Bulk support: accepts watch_ids for batched execution.
입력 스키마
{
"type": "object",
"properties": {
"watch_id": {
"type": "string"
},
"watch_ids": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"watch_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢legal_checar_novidades(watch_id, watch_ids)
Checa AGORA se há novidade nos monitoramentos (sem esperar o ciclo automático). Passe `watch_id` para um específico, ou nada para checar todos. Atualiza o estado e retorna o que mudou. Bulk support: accepts watch_ids for batched execution.
입력 스키마
{
"type": "object",
"properties": {
"watch_id": {
"type": "string"
},
"watch_ids": {
"type": "array",
"items": {
"type": "string"
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢show_version
Show the current MCP platform and adapter versions.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡report_bug(message, context, conversation)
Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.
입력 스키마
{
"type": "object",
"properties": {
"message": {
"type": "string"
},
"context": {
"default": "",
"type": "string"
},
"conversation": {
"default": "[]",
"type": "string"
}
},
"required": [
"message"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢connect
Returns connection status and URLs. When all providers are connected, returns authenticated:true and empty pending[]. When credentials are missing, returns connect_url for the toolkit and per-install URLs.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢toolkit_info
Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡marketplace(action, query, mcp_id, limit, tier_slug, ...)
The official mcp.ai marketplace — the in-platform catalog of every MCP/tool, AND the way to run them. Covers capability requests like "find an MCP that does X", "consulta um CPF", "is there a tool for Y". Core flow: action=search discovers MCPs by intent → describe returns one MCP's full profile (every tool with its id + params, pricing, auth) so you pick the right tool_id → invoke RUNS that tool. KEY: invoke works even when the MCP is NOT installed — it runs the tool pontualmente (one-off), without adding the MCP to the toolkit and without bloating the tool list. If the MCP needs a credential/login, invoke returns a connect link; if it is paid and the wallet is empty, invoke returns a checkout/top-up link (the user opens it, then you retry). Use install only to make an MCP PERMANENT in the active toolkit (its tools then show up natively in future sessions); prefer invoke for a single/occasional use. list_tools lists what is callable right now. subscribe/cancel handle per-MCP billing; report_bug sends feedback; request_mcp asks us to build a NEW MCP when nothing fits. Search/describe flag installed_in_toolkit vs installed_in_workspace. Writes (install/uninstall/subscribe/cancel and the one-off install behind invoke) require workspace owner/admin. It also carries the mcp.ai PROMPT LIBRARY, which is about ready-made prompt TEXT rather than MCPs: search_prompts finds one, get_prompt returns its full text with {{variables}} filled, and publish_prompt saves a prompt and returns a shareable mcp.ai/p/<slug> link that opens without login.
입력 스키마
{
"type": "object",
"properties": {
"action": {
"default": "search",
"type": "string",
"enum": [
"search",
"describe",
"install",
"uninstall",
"subscribe",
"cancel",
"resume",
"report_bug",
"request_mcp",
"list_tools",
"invoke",
"search_prompts",
"get_prompt",
"publish_prompt"
]
},
"query": {
"default": "",
"type": "string"
},
"mcp_id": {
"default": "",
"type": "string"
},
"limit": {
"default": 10,
"type": "number"
},
"tier_slug": {
"default": "",
"type": "string"
},
"immediate": {
"default": false,
"type": "boolean"
},
"cancel_reason": {
"type": "string",
"enum": [
"too_expensive",
"missing_features",
"switched_service",
"unused",
"customer_service",
"too_complex",
"low_quality",
"other"
]
},
"cancel_comment": {
"default": "",
"type": "string"
},
"message": {
"default": "",
"type": "string"
},
"report_context": {
"default": "",
"type": "string"
},
"conversation": {
"default": "[]",
"type": "string"
},
"request_name": {
"default": "",
"type": "string"
},
"request_details": {
"default": "",
"type": "string"
},
"tool_id": {
"default": "",
"type": "string"
},
"arguments": {
"default": "{}",
"type": "string"
},
"prompt_slug": {
"default": "",
"type": "string"
},
"prompt_vars": {
"default": "{}",
"type": "string"
},
"prompt_category": {
"default": "",
"type": "string"
},
"prompt_tool": {
"default": "",
"type": "string"
},
"prompt_title": {
"default": "",
"type": "string"
},
"prompt_description": {
"default": "",
"type": "string"
},
"prompt_body": {
"default": "",
"type": "string"
},
"prompt_targets": {
"default": [],
"type": "array",
"items": {
"type": "string",
"enum": [
"claude",
"chatgpt",
"cursor",
"lovable"
]
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡authenticate(token)
MCP.AI for IDE agents (Cursor, etc.): log in in the browser, copy the access token. Best: add it to this server's config as a header `Authorization: Bearer <token>` for a permanent, non-expiring connection. Or paste it here for a session-only login: call with { token: "<jwt>" } after the user pastes, or with no args to get the link.
입력 스키마
{
"type": "object",
"properties": {
"token": {
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}커뮤니티
증거