Koskamo

mcp-dir Legal MCP

An open-source legal discovery tool for AI agents that searches public court databases. It allows users to find lawsuits by name, CPF, CNPJ, or case number, retrieve DJEN publications, and access sanctions and municipal mentions without requiring a login.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

mcp-dir Legal MCP logo, by mcp-dirCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by mcp-dir
MCP endpoint (Streamable HTTP)
https://api.mcp.ai/legal
Vendor documentation

What its tools do

30 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

30 of 30 have a description · 30 of 30 declare behavior hints · 0 of 26 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Find lawsuits by name, CPF, CNPJ or case number
  • Retrieve publications from the National Electronic Justice Diary (DJEN)
  • Access sanctions and municipal mentions attached to a legal dossier
  • Search for processes by party name across public tribunal portals

Source and maintenance

Community listingRegistry 0.1.0
Maintenance checked

Protocol and capabilities

Server
Legal MCP 0.9.410
MCP protocol negotiated in check
2025-11-25
Tools
30 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

MCP.AI platform v0.9.410 | Adapters: legal vunknown. When the user asks about the version (e.g. "qual a versão", "which version"), call the show_version tool. NEW MCPs/tools/integrations (capabilities not already in this toolkit) come from the official mcp.ai catalog: the `marketplace` tool (action=search) finds and runs them. You are not authenticated yet. Call the authenticate tool first — it will give the user a browser link to log in and copy a token. No other tools will work until authenticated.

Tools

30 advertised

djen_search_comunicacoes
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

djen_search_comunicacoes input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "meio": {
      "type": "string"
    },
    "texto": {
      "type": "string"
    },
    "pagina": {
      "type": "number"
    },
    "uf_oab": {
      "type": "string"
    },
    "data_fim": {
      "type": "string"
    },
    "nome_parte": {
      "type": "string"
    },
    "numero_oab": {
      "type": "string"
    },
    "data_inicio": {
      "type": "string"
    },
    "nome_advogado": {
      "type": "string"
    },
    "sigla_tribunal": {
      "type": "string"
    },
    "numero_processo": {
      "type": "string"
    },
    "itens_por_pagina": {
      "type": "number"
    }
  }
}
djen_search_comunicacoes annotations
{
  "title": "djen_search_comunicacoes",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
djen_processos_por_parte
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

djen_processos_por_parte input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "nome_parte"
  ],
  "properties": {
    "pagina": {
      "type": "number"
    },
    "data_fim": {
      "type": "string"
    },
    "nome_parte": {
      "type": "string"
    },
    "data_inicio": {
      "type": "string"
    },
    "sigla_tribunal": {
      "type": "string"
    },
    "itens_por_pagina": {
      "type": "number"
    }
  }
}
djen_processos_por_parte annotations
{
  "title": "djen_processos_por_parte",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
djen_get_certidao
Advertised by the server during the last successful anonymous check.
Advertised read-only

Retorna a URL da certidão (PDF) de uma comunicação do DJEN pelo seu hash (campo `hash` retornado na busca).

djen_get_certidao input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "hash"
  ],
  "properties": {
    "hash": {
      "type": "string"
    }
  }
}
djen_get_certidao annotations
{
  "title": "djen_get_certidao",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
processos_buscar_por_nome
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

processos_buscar_por_nome input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "nome"
  ],
  "properties": {
    "nome": {
      "type": "string"
    },
    "platforms": {
      "type": "array",
      "items": {
        "enum": [
          "esaj",
          "pje",
          "eproc",
          "projudi"
        ],
        "type": "string"
      }
    },
    "tribunais": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "max_results": {
      "type": "number"
    }
  }
}
processos_buscar_por_nome annotations
{
  "title": "processos_buscar_por_nome",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
processos_buscar_por_documento
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

processos_buscar_por_documento input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "documento"
  ],
  "properties": {
    "documento": {
      "type": "string"
    },
    "platforms": {
      "type": "array",
      "items": {
        "enum": [
          "esaj",
          "pje",
          "eproc",
          "projudi"
        ],
        "type": "string"
      }
    },
    "tribunais": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "max_results": {
      "type": "number"
    },
    "nome_titular": {
      "type": "string"
    }
  }
}
processos_buscar_por_documento annotations
{
  "title": "processos_buscar_por_documento",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
processos_obter_pecas
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

processos_obter_pecas input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "numero_cnj"
  ],
  "properties": {
    "formato": {
      "enum": [
        "markdown",
        "pdf"
      ],
      "type": "string"
    },
    "peca_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "tribunal": {
      "type": "string"
    },
    "numero_cnj": {
      "type": "string"
    }
  }
}
processos_obter_pecas annotations
{
  "title": "processos_obter_pecas",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
processos_get_resultado
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

processos_get_resultado input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "job_id"
  ],
  "properties": {
    "job_id": {
      "type": "string"
    },
    "job_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
processos_get_resultado annotations
{
  "title": "processos_get_resultado",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
cnpj_consultar
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

cnpj_consultar input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "cnpj"
  ],
  "properties": {
    "cnpj": {
      "type": "string"
    }
  }
}
cnpj_consultar annotations
{
  "title": "cnpj_consultar",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
cnpj_processos
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

cnpj_processos input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "cnpj"
  ],
  "properties": {
    "cnpj": {
      "type": "string"
    },
    "incluir_socios": {
      "type": "boolean"
    }
  }
}
cnpj_processos annotations
{
  "title": "cnpj_processos",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
cpf_validar
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

cpf_validar input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "cpf"
  ],
  "properties": {
    "cpf": {
      "type": "string"
    }
  }
}
cpf_validar annotations
{
  "title": "cpf_validar",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
cpf_processos
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

cpf_processos input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "cpf"
  ],
  "properties": {
    "cpf": {
      "type": "string"
    },
    "nome": {
      "type": "string"
    }
  }
}
cpf_processos annotations
{
  "title": "cpf_processos",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
transparencia_sancoes
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

transparencia_sancoes input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "cpf_cnpj"
  ],
  "properties": {
    "cpf_cnpj": {
      "type": "string"
    }
  }
}
transparencia_sancoes annotations
{
  "title": "transparencia_sancoes",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
transparencia_pep
Advertised by the server during the last successful anonymous check.
Advertised read-only

Verifica se um CPF é de Pessoa Exposta Politicamente (PEP) e retorna função/órgão/período. Importante para compliance/KYC.

transparencia_pep input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "cpf"
  ],
  "properties": {
    "cpf": {
      "type": "string"
    }
  }
}
transparencia_pep annotations
{
  "title": "transparencia_pep",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
transparencia_despesas_favorecido
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

transparencia_despesas_favorecido input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "cpf_cnpj"
  ],
  "properties": {
    "cpf_cnpj": {
      "type": "string"
    },
    "mes_ano_fim": {
      "type": "string"
    },
    "mes_ano_inicio": {
      "type": "string"
    }
  }
}
transparencia_despesas_favorecido annotations
{
  "title": "transparencia_despesas_favorecido",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
transparencia_despesas_documentos
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

transparencia_despesas_documentos input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "cpf_cnpj"
  ],
  "properties": {
    "ano": {
      "type": "number"
    },
    "fase": {
      "enum": [
        "empenho",
        "liquidacao",
        "pagamento"
      ],
      "type": "string"
    },
    "pagina": {
      "type": "number"
    },
    "cpf_cnpj": {
      "type": "string"
    },
    "ordenacao": {
      "type": "number"
    }
  }
}
transparencia_despesas_documentos annotations
{
  "title": "transparencia_despesas_documentos",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
querido_diario_buscar
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

querido_diario_buscar input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "termo"
  ],
  "properties": {
    "size": {
      "type": "number"
    },
    "termo": {
      "type": "string"
    },
    "data_fim": {
      "type": "string"
    },
    "data_inicio": {
      "type": "string"
    },
    "territory_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
querido_diario_buscar annotations
{
  "title": "querido_diario_buscar",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
jurisprudencia_buscar
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

jurisprudencia_buscar input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "termo"
  ],
  "properties": {
    "max": {
      "type": "number"
    },
    "tipo": {
      "type": "string"
    },
    "termo": {
      "type": "string"
    },
    "data_de": {
      "type": "string"
    },
    "ordenar": {
      "enum": [
        "relevancia",
        "recencia"
      ],
      "type": "string"
    },
    "data_ate": {
      "type": "string"
    },
    "tribunais": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
jurisprudencia_buscar annotations
{
  "title": "jurisprudencia_buscar",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
jurisprudencia_sumulas
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

jurisprudencia_sumulas input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "termo"
  ],
  "properties": {
    "max": {
      "type": "number"
    },
    "termo": {
      "type": "string"
    }
  }
}
jurisprudencia_sumulas annotations
{
  "title": "jurisprudencia_sumulas",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
jurisprudencia_documento
Advertised by the server during the last successful anonymous check.
Advertised read-only

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` (o `id` já identifica o tribunal, basta repassá-lo), 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.

jurisprudencia_documento input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "id": {
      "type": "string"
    },
    "ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "tribunal": {
      "type": "string"
    },
    "numeracao": {
      "type": "string"
    }
  }
}
jurisprudencia_documento annotations
{
  "title": "jurisprudencia_documento",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
legal_dossie
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

legal_dossie input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "cpf": {
      "type": "string"
    },
    "cnpj": {
      "type": "string"
    },
    "nome": {
      "type": "string"
    },
    "nome_titular": {
      "type": "string"
    },
    "max_processos": {
      "type": "number"
    },
    "incluir_socios": {
      "type": "boolean"
    },
    "sigla_tribunal": {
      "type": "string"
    },
    "incluir_sancoes": {
      "type": "boolean"
    },
    "numero_processo": {
      "type": "string"
    },
    "incluir_andamento": {
      "type": "boolean"
    },
    "incluir_mencoes_municipais": {
      "type": "boolean"
    }
  }
}
legal_dossie annotations
{
  "title": "legal_dossie",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
legal_monitorar
Advertised by the server during the last successful anonymous check.

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.

legal_monitorar input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "uf": {
      "type": "string"
    },
    "oab": {
      "type": "string"
    },
    "cnpj": {
      "type": "string"
    },
    "nome": {
      "type": "string"
    },
    "label": {
      "type": "string"
    },
    "sigla_tribunal": {
      "type": "string"
    },
    "intervalo_horas": {
      "type": "number"
    },
    "numero_processo": {
      "type": "string"
    }
  }
}
legal_monitorar annotations
{
  "title": "legal_monitorar",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
legal_listar_monitoramentos
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lista os monitoramentos ativos do workspace.

legal_listar_monitoramentos input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
legal_listar_monitoramentos annotations
{
  "title": "legal_listar_monitoramentos",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
legal_remover_monitoramento
Advertised by the server during the last successful anonymous check.

Remove (desativa) um monitoramento pelo seu id (`watch_id`). Bulk support: accepts watch_ids for batched execution.

legal_remover_monitoramento input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "watch_id"
  ],
  "properties": {
    "watch_id": {
      "type": "string"
    },
    "watch_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
legal_remover_monitoramento annotations
{
  "title": "legal_remover_monitoramento",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
legal_checar_novidades
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

legal_checar_novidades input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "watch_id": {
      "type": "string"
    },
    "watch_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
legal_checar_novidades annotations
{
  "title": "legal_checar_novidades",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
show_version
Advertised by the server during the last successful anonymous check.
Advertised read-only

Show the current MCP platform and adapter versions.

show_version input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
show_version annotations
{
  "title": "Show Version",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
report_bug
Advertised by the server during the last successful anonymous check.

Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.

report_bug input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "message"
  ],
  "properties": {
    "context": {
      "type": "string",
      "default": ""
    },
    "message": {
      "type": "string"
    },
    "conversation": {
      "type": "string",
      "default": "[]"
    }
  }
}
report_bug annotations
{
  "title": "Report Bug",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
connect
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

connect input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
connect annotations
{
  "title": "Connection Status",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
toolkit_info
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.

toolkit_info input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
toolkit_info annotations
{
  "title": "Toolkit Info",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
marketplace
Advertised by the server during the last successful anonymous check.
Open-world

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.

marketplace input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "limit": {
      "type": "number",
      "default": 10
    },
    "query": {
      "type": "string",
      "default": ""
    },
    "action": {
      "enum": [
        "search",
        "describe",
        "install",
        "uninstall",
        "subscribe",
        "cancel",
        "resume",
        "report_bug",
        "request_mcp",
        "list_tools",
        "invoke",
        "search_prompts",
        "get_prompt",
        "publish_prompt"
      ],
      "type": "string",
      "default": "search"
    },
    "mcp_id": {
      "type": "string",
      "default": ""
    },
    "message": {
      "type": "string",
      "default": ""
    },
    "tool_id": {
      "type": "string",
      "default": ""
    },
    "arguments": {
      "type": "string",
      "default": "{}"
    },
    "immediate": {
      "type": "boolean",
      "default": false
    },
    "tier_slug": {
      "type": "string",
      "default": ""
    },
    "prompt_body": {
      "type": "string",
      "default": ""
    },
    "prompt_slug": {
      "type": "string",
      "default": ""
    },
    "prompt_tool": {
      "type": "string",
      "default": ""
    },
    "prompt_vars": {
      "type": "string",
      "default": "{}"
    },
    "conversation": {
      "type": "string",
      "default": "[]"
    },
    "prompt_title": {
      "type": "string",
      "default": ""
    },
    "request_name": {
      "type": "string",
      "default": ""
    },
    "cancel_reason": {
      "enum": [
        "too_expensive",
        "missing_features",
        "switched_service",
        "unused",
        "customer_service",
        "too_complex",
        "low_quality",
        "other"
      ],
      "type": "string"
    },
    "cancel_comment": {
      "type": "string",
      "default": ""
    },
    "prompt_targets": {
      "type": "array",
      "items": {
        "enum": [
          "claude",
          "chatgpt",
          "cursor",
          "lovable"
        ],
        "type": "string"
      },
      "default": []
    },
    "report_context": {
      "type": "string",
      "default": ""
    },
    "prompt_category": {
      "type": "string",
      "default": ""
    },
    "request_details": {
      "type": "string",
      "default": ""
    },
    "prompt_description": {
      "type": "string",
      "default": ""
    }
  }
}
marketplace annotations
{
  "title": "Marketplace",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
authenticate
Advertised by the server during the last successful anonymous check.

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.

authenticate input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "token": {
      "type": "string"
    }
  }
}
authenticate annotations
{
  "title": "Authenticate",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
514 ms
95th percentile latency
514 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 514 ms · metadata changed · 30 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http legal-mcp https://api.mcp.ai/legal

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add legal-mcp --url https://api.mcp.ai/legal

Cursor

Merge this server into .cursor/mcp.json in your project, then enable legal-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "legal-mcp": {
      "url": "https://api.mcp.ai/legal"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "legal-mcp": {
      "type": "streamableHttp",
      "url": "https://api.mcp.ai/legal",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start legal-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "legal-mcp": {
      "type": "http",
      "url": "https://api.mcp.ai/legal"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http legal-mcp https://api.mcp.ai/legal

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://api.mcp.ai/legal

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "legal-mcp": {
      "serverUrl": "https://api.mcp.ai/legal"
    }
  }
}

Let your agent find its tools

Find servers like mcp-dir Legal MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.