Public lookup of Brazilian court cases (metadata + docket) via the CNJ/DataJud API. Free, no login.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
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.
| Argument | Type | Description |
|---|---|---|
| token | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"token": {
"type": "string"
}
}
}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.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Busca processo por número CNJ e tribunal. Retorna `tribunal`, `total`, `count` e `processos[]` (metadados e movimentações por instância). Só sem resultados inclui `ausencia`. Aceita número com ou sem máscara. Quando `processos` está vazio, `ausencia` traz o motivo provável (numero_invalido | tribunal_divergente | nao_publicado | carga_ausente | indeterminado) e a explicação. Com resultados, esse bloco não é retornado. Leia esse bloco antes de repetir a consulta em outra tool: a API pública do CNJ não publica processo em segredo de justiça, então `nao_publicado` NÃO significa que o processo não existe. O processo que sobe por recurso MANTÉM o número da origem: o AIRR/RR de um processo do TRT continua com o número do TRT no índice `tst` (e o REsp de TJ/TRF no `stj`). Quando o 2º grau registra esse recurso, a resposta inclui `instancia_superior`; para ver em que instância o processo está agora, use datajud_localizar_processo.
| Argument | Type | Description |
|---|---|---|
| tribunal* | string | |
| numero_processo* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"tribunal",
"numero_processo"
],
"properties": {
"tribunal": {
"enum": [
"tst",
"stj",
"tse",
"stm",
"trf1",
"trf2",
"trf3",
"trf4",
"trf5",
"trf6",
"tjac",
"tjal",
"tjam",
"tjap",
"tjba",
"tjce",
"tjdft",
"tjes",
"tjgo",
"tjma",
"tjmg",
"tjms",
"tjmt",
"tjpa",
"tjpb",
"tjpe",
"tjpi",
"tjpr",
"tjrj",
"tjrn",
"tjro",
"tjrr",
"tjrs",
"tjsc",
"tjse",
"tjsp",
"tjto",
"trt1",
"trt2",
"trt3",
"trt4",
"trt5",
"trt6",
"trt7",
"trt8",
"trt9",
"trt10",
"trt11",
"trt12",
"trt13",
"trt14",
"trt15",
"trt16",
"trt17",
"trt18",
"trt19",
"trt20",
"trt21",
"trt22",
"trt23",
"trt24",
"tre-ac",
"tre-al",
"tre-am",
"tre-ap",
"tre-ba",
"tre-ce",
"tre-df",
"tre-es",
"tre-go",
"tre-ma",
"tre-mg",
"tre-ms",
"tre-mt",
"tre-pa",
"tre-pb",
"tre-pe",
"tre-pi",
"tre-pr",
"tre-rj",
"tre-rn",
"tre-ro",
"tre-rr",
"tre-rs",
"tre-sc",
"tre-se",
"tre-sp",
"tre-to",
"tjmmg",
"tjmrs",
"tjmsp"
],
"type": "string"
},
"numero_processo": {
"type": "string"
}
}
}Localiza em que instância o processo está agora, só pelo número CNJ: consulta a origem e o tribunal superior (TRT → TST, TJ/TRF → STJ). O tribunal de origem é derivado do número e os dois índices são consultados em paralelo. Retorna `instancias[]` ordenadas (1º grau → 2º grau → superior) com tribunal, grau, classe, órgão julgador e último movimento, `instancia_mais_recente` e `consultas[]` (status de cada índice consultado). Consulta processual trabalhista no TST: o processo que sobe ao TST (recurso de revista, AIRR) MANTÉM o número do TRT de origem, então consultar só o TRT nunca mostra a fase no TST. Se um índice falhar, `consultas[]` traz o erro dele e o outro resultado continua valendo. Sem nenhum resultado, inclui `ausencia` (mesmo diagnóstico de datajud_get_processo). O STF não está no DataJud. Para a timeline completa de uma instância, use datajud_movimentos com o `tribunal` dela.
| Argument | Type | Description |
|---|---|---|
| numero_processo* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"numero_processo"
],
"properties": {
"numero_processo": {
"type": "string"
}
}
}Consulta movimentações por número CNJ e tribunal. Retorna `tribunal`, `numeroProcesso` e `instancias[]` (timeline e metadados). Só sem resultados inclui `ausencia`. Ideal para detectar movimentação nova. Quando `instancias` está vazio, `ausencia` traz o mesmo diagnóstico de datajud_get_processo (motivo provável + explicação). Com resultados, esse bloco não é retornado. Quando o 2º grau registra recurso ao tribunal superior (recurso de revista/AIRR → TST, recurso especial → STJ), inclui `instancia_superior` com o próximo passo: o processo mantém o mesmo número lá.
| Argument | Type | Description |
|---|---|---|
| tribunal* | string | |
| numero_processo* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"tribunal",
"numero_processo"
],
"properties": {
"tribunal": {
"enum": [
"tst",
"stj",
"tse",
"stm",
"trf1",
"trf2",
"trf3",
"trf4",
"trf5",
"trf6",
"tjac",
"tjal",
"tjam",
"tjap",
"tjba",
"tjce",
"tjdft",
"tjes",
"tjgo",
"tjma",
"tjmg",
"tjms",
"tjmt",
"tjpa",
"tjpb",
"tjpe",
"tjpi",
"tjpr",
"tjrj",
"tjrn",
"tjro",
"tjrr",
"tjrs",
"tjsc",
"tjse",
"tjsp",
"tjto",
"trt1",
"trt2",
"trt3",
"trt4",
"trt5",
"trt6",
"trt7",
"trt8",
"trt9",
"trt10",
"trt11",
"trt12",
"trt13",
"trt14",
"trt15",
"trt16",
"trt17",
"trt18",
"trt19",
"trt20",
"trt21",
"trt22",
"trt23",
"trt24",
"tre-ac",
"tre-al",
"tre-am",
"tre-ap",
"tre-ba",
"tre-ce",
"tre-df",
"tre-es",
"tre-go",
"tre-ma",
"tre-mg",
"tre-ms",
"tre-mt",
"tre-pa",
"tre-pb",
"tre-pe",
"tre-pi",
"tre-pr",
"tre-rj",
"tre-rn",
"tre-ro",
"tre-rr",
"tre-rs",
"tre-sc",
"tre-se",
"tre-sp",
"tre-to",
"tjmmg",
"tjmrs",
"tjmsp"
],
"type": "string"
},
"numero_processo": {
"type": "string"
}
}
}Avançado: envia uma query Elasticsearch crua pro índice do tribunal (escape hatch). `query` é SÓ a cláusula de busca (ex.: { match: { "classe.nome": "Apelação" } }); size, sort, _source e search_after vão nos campos próprios. Use search_after (valor `sort` do último hit) pra paginar além de 10.000 resultados. A API pública do CNJ é lenta em índices grandes: prefira size pequeno e `_source` com só os campos que precisa.
| Argument | Type | Description |
|---|---|---|
| from | number | |
| size | number | |
| sort | any | |
| query* | any | |
| _source | array | |
| tribunal* | string | |
| search_after | any |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"tribunal",
"query"
],
"properties": {
"from": {
"type": "number"
},
"size": {
"type": "number"
},
"sort": {},
"query": {},
"_source": {
"type": "array",
"items": {
"type": "string"
}
},
"tribunal": {
"enum": [
"tst",
"stj",
"tse",
"stm",
"trf1",
"trf2",
"trf3",
"trf4",
"trf5",
"trf6",
"tjac",
"tjal",
"tjam",
"tjap",
"tjba",
"tjce",
"tjdft",
"tjes",
"tjgo",
"tjma",
"tjmg",
"tjms",
"tjmt",
"tjpa",
"tjpb",
"tjpe",
"tjpi",
"tjpr",
"tjrj",
"tjrn",
"tjro",
"tjrr",
"tjrs",
"tjsc",
"tjse",
"tjsp",
"tjto",
"trt1",
"trt2",
"trt3",
"trt4",
"trt5",
"trt6",
"trt7",
"trt8",
"trt9",
"trt10",
"trt11",
"trt12",
"trt13",
"trt14",
"trt15",
"trt16",
"trt17",
"trt18",
"trt19",
"trt20",
"trt21",
"trt22",
"trt23",
"trt24",
"tre-ac",
"tre-al",
"tre-am",
"tre-ap",
"tre-ba",
"tre-ce",
"tre-df",
"tre-es",
"tre-go",
"tre-ma",
"tre-mg",
"tre-ms",
"tre-mt",
"tre-pa",
"tre-pb",
"tre-pe",
"tre-pi",
"tre-pr",
"tre-rj",
"tre-rn",
"tre-ro",
"tre-rr",
"tre-rs",
"tre-sc",
"tre-se",
"tre-sp",
"tre-to",
"tjmmg",
"tjmrs",
"tjmsp"
],
"type": "string"
},
"search_after": {}
}
}Busca processos em um tribunal por classe, órgão julgador e/ou assunto (códigos das tabelas do CNJ), paginada e ordenada por data de ajuizamento. DataJud NÃO indexa nome de parte nem OAB — pra isso use o MCP djen/legal.
| Argument | Type | Description |
|---|---|---|
| from | number | |
| size | number | |
| tribunal* | string | |
| sort_desc | boolean | |
| classe_codigo | number | |
| assunto_codigo | number | |
| numero_processo | string | |
| orgao_julgador_codigo | number |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"tribunal"
],
"properties": {
"from": {
"type": "number"
},
"size": {
"type": "number"
},
"tribunal": {
"enum": [
"tst",
"stj",
"tse",
"stm",
"trf1",
"trf2",
"trf3",
"trf4",
"trf5",
"trf6",
"tjac",
"tjal",
"tjam",
"tjap",
"tjba",
"tjce",
"tjdft",
"tjes",
"tjgo",
"tjma",
"tjmg",
"tjms",
"tjmt",
"tjpa",
"tjpb",
"tjpe",
"tjpi",
"tjpr",
"tjrj",
"tjrn",
"tjro",
"tjrr",
"tjrs",
"tjsc",
"tjse",
"tjsp",
"tjto",
"trt1",
"trt2",
"trt3",
"trt4",
"trt5",
"trt6",
"trt7",
"trt8",
"trt9",
"trt10",
"trt11",
"trt12",
"trt13",
"trt14",
"trt15",
"trt16",
"trt17",
"trt18",
"trt19",
"trt20",
"trt21",
"trt22",
"trt23",
"trt24",
"tre-ac",
"tre-al",
"tre-am",
"tre-ap",
"tre-ba",
"tre-ce",
"tre-df",
"tre-es",
"tre-go",
"tre-ma",
"tre-mg",
"tre-ms",
"tre-mt",
"tre-pa",
"tre-pb",
"tre-pe",
"tre-pi",
"tre-pr",
"tre-rj",
"tre-rn",
"tre-ro",
"tre-rr",
"tre-rs",
"tre-sc",
"tre-se",
"tre-sp",
"tre-to",
"tjmmg",
"tjmrs",
"tjmsp"
],
"type": "string"
},
"sort_desc": {
"type": "boolean"
},
"classe_codigo": {
"type": "number"
},
"assunto_codigo": {
"type": "number"
},
"numero_processo": {
"type": "string"
},
"orgao_julgador_codigo": {
"type": "number"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| limit | number | |
| query | string | |
| action | string | |
| mcp_id | string | |
| message |
Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.
| Argument | Type | Description |
|---|---|---|
| context | string | |
| message* | string | |
| conversation | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"message"
],
"properties": {
"context": {
"type": "string",
"default": ""
},
"message": {
"type": "string"
},
"conversation": {
"type": "string",
"default": "[]"
}
}
}Show the current MCP platform and adapter versions.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}| string |
| tool_id | string |
| arguments | string |
| immediate | boolean |
| tier_slug | string |
| prompt_body | string |
| prompt_slug | string |
| prompt_tool | string |
| prompt_vars | string |
| conversation | string |
| prompt_title | string |
| request_name | string |
| cancel_reason | string |
| cancel_comment | string |
| prompt_targets | array |
| report_context | string |
| prompt_category | string |
| request_details | string |
| prompt_description | string |
{
"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": ""
}
}
}