# Astrea (Aurum)

> Reporting and queries over Astrea (Aurum), Brazilian legal-practice software: cases per client, cale

- name: io.github.mcp-dir/astrea-mcp
- version: 0.1.0
- connection class: unknown (unknown)
- trust: 66/100
- quality: 74/100 (needs work)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.mcp-dir%2Fastrea-mcp
- tools: https://api.protogrid.dev/v1/servers/io.github.mcp-dir%2Fastrea-mcp/tools

**Not classified yet.** The remote endpoints have not been probed successfully, or the listing has nothing to connect to.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "astrea-mcp": {
      "type": "http",
      "url": "https://api.mcp.ai/p_astrea"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 29
- freshness: 65
- provenance: 80
- drivers: +repository +namespace-matches-repo -unreachable(1 failures) ~updated-132d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 74/100 (needs work)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 8 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 38 of 38 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- warn `tools.token_cost`: about 11,643 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 50 (weight 15)

- pass `stability.changes`: 1 tool changes in 30 days
- fail `stability.rug_pull`: 1 tools kept their name but changed most of their description in 30 days; review before trusting them

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 38, about 11,643 tokens to load them all
- tool set hash: f97ceb98e69ecd45e7b1933f8f4e0769
- tools last changed: 2026-10-02T21:18:40.945Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.mcp-dir/astrea-mcp.svg)](https://protogrid.dev/servers/io.github.mcp-dir/astrea-mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-02 `astrea_documento_upload` changed (description, inputSchema) **meaning changed**
  - before: Anexa um DOCUMENTO a um processo do Astrea (PDF de petição, comprovante, certidão, decisão, etc.). O arquivo fica vinculado ao PROCESSO, na área Documentos (o Astrea não anexa arquivo dentro de um andamento/tarefa, o vínculo é sempre no processo). - case_id: id do processo (ver astrea_processos). - attachments: um ou mais arquivos. Por arquivo, informe UMA das formas: file_url (baixa da URL), file_base64 (conteúdo em base64) ou upload_code (de um upload grande via curl). file_name é obrigatório com file_url/file_base64. - description: descrição do documento (se omitir, usa o nome dos arquivos). - responsible_id: opcional, id do membro responsável (ver astrea_responsaveis); se omitir, fica no usuário da integração. Bulk support: accepts case_ids, responsible_ids for batched execution.
  - after: Anexa um DOCUMENTO a um processo do Astrea (PDF de petição, comprovante, certidão, decisão, etc.). O arquivo fica vinculado ao PROCESSO, na área Documentos (o Astrea não anexa arquivo dentro de um andamento/tarefa, o vínculo é sempre no processo). - case_id: id do processo (ver astrea_processos). - attachments: um ou mais arquivos. Por arquivo, informe UMA forma: file_url (a plataforma baixa da URL, precisa abrir sem login), upload_id (arquivo já enviado, veja abaixo) ou file_base64 (só arquivo pequeno cujos bytes você REALMENTE tem; NUNCA pra anexo da conversa). file_name é obrigatório com file_url/file_base64. - Arquivo ANEXADO na conversa ou no computador do usuário: NÃO tente ler o conteúdo nem montar file_base64 (você recebe o texto extraído, não os bytes do arquivo, e o upload sairia corrompido). Chame esta tool SEM arquivo, passando file_path se souber o caminho do anexo: ela devolve um comando pronto de upload. Execute esse comando no seu sandbox de execução de código (ou peça pro usuário rodar no terminal) e chame de novo com o `upload_id` E o `file_name` que ela devolveu. Com vários anexos, passe um item por arquivo (com file_path, se souber) e a tool devolve um comando por arquivo. - description: descrição do documento (se omitir, usa o nome dos arquivos). - responsible_id: opcional, id do membro responsável (ver astrea_responsaveis); se omitir, fica no usuário da integração. - Os mesmos arquivos no mesmo processo nos últimos 30 minutos NÃO são enviados de novo (a resposta vem com duplicado_evitado). Só passe permitir_duplicado=true se o usuário pediu explicitamente outra cópia. Bulk support: accepts case_ids, responsible_ids for batched execution.

Full history: https://api.protogrid.dev/v1/servers/io.github.mcp-dir%2Fastrea-mcp/changes

## Remotes

- https://api.mcp.ai/p_astrea (streamable-http, auth none, reachable false, uptime30d 0.96581197)

## Packages

_none_

## Tools (38)

- `astrea_agenda_global`: Agenda do escritório no Astrea — audiências (HEARING), reuniões/eventos (EVENT), prazos (DEADLINE) e tarefas (TASK).
Ações:
- global: todas as atividades numa janela de datas (date_from/date_to em AAAA-MM-DD).
- por_cliente: as atividades agrupadas por cliente (via processo vinculado; avulsas vão em "(sem cliente)").

[Flattened action: global]
- `astrea_agenda_por_cliente`: Agenda do escritório no Astrea — audiências (HEARING), reuniões/eventos (EVENT), prazos (DEADLINE) e tarefas (TASK).
Ações:
- global: todas as atividades numa janela de datas (date_from/date_to em AAAA-MM-DD).
- por_cliente: as atividades agrupadas por cliente (via processo vinculado; avulsas vão em "(sem cliente)").

[Flattened action: por_cliente]
- `astrea_andamento_criar`: Lança um andamento (histórico) MANUAL num processo do Astrea — registra um ato/observação na timeline do processo (não é captura automática do tribunal).
- case_id: id do processo (ver astrea_processos).
- description: texto do andamento (aceita HTML simples; texto puro vira um parágrafo).
- date: data/hora do andamento em ISO (ex.: 2026-06-30 ou 2026-06-30T13:00:00Z); omita para usar agora.
- responsible_id: opcional, id do membro que PRATICOU o ato (ver astrea_responsaveis). Se omitir, o andamento fica assinado pelo usuário da integração, não pelo advogado — passe o id da pessoa para a timeline mostrar quem de fato praticou.

Bulk support: accepts case_ids, responsible_ids for batched execution.
- `astrea_andamentos`: Andamentos (timeline/histórico) de um processo no Astrea — base para gerar relatórios ao cliente.
Cada andamento traz date, type, description, responsible. type que começa com AUTOMATIC = captura automática do tribunal; os demais são manuais.

Bulk support: accepts case_ids for batched execution.
- `astrea_caso_criar`: Cria um CASO extrajudicial/consultivo novo no Astrea. No Astrea o caso é uma pasta SEM número CNJ e SEM tribunal, entidade distinta de processo. Use para consultoria, contratos, procedimentos administrativos, licitações, retainer etc., destravando a automação (andamento, tarefa, prazo, documento) sobre a pasta.
Obrigatório: titulo, e o cliente (customer_id de astrea_clientes OU customer_nome para criar um contato novo).
Para processo JUDICIAL (com CNJ/tribunal) use astrea_processo_criar.
- `astrea_clientes`: Clientes/contatos do escritório no Astrea — UMA página compacta (id, nome, classificação, tipo, tags). Pagine com o cursor devolvido. Não varre a conta toda.
- `astrea_compromisso_criar`: Cria um COMPROMISSO/evento na agenda, vinculado a um processo no Astrea.
- case_id: id do processo (ver astrea_processos).
- title: título do compromisso.
- start: início em ISO (ex.: 2026-07-10T14:00:00Z). Interpretado no fuso do servidor (UTC).
- end: opcional, fim em ISO; se omitido, 30 min após o início.
- all_day: opcional, true para dia inteiro.
- location: opcional, endereço/local.
- responsible_id: opcional, id do membro responsável (ver astrea_responsaveis). Se omitir, fica no usuário da integração e pode NÃO aparecer na agenda do advogado. Passe o id da pessoa para o compromisso aparecer na agenda dela.
- repeat: opcional, cria uma SÉRIE recorrente numa só chamada (semanal/mensal/etc.). A 1ª ocorrência é o start; cada ocorrência preserva o horário e a duração. Cada compromisso é independente (edite/exclua individualmente com astrea_compromisso_editar/_excluir).
Devolve appointment_id (o id do compromisso criado; na série, um por ocorrência) — guarde para editar/excluir depois.

Bulk support: accepts case_ids, responsible_ids for batched execution.
- `astrea_compromisso_editar`: Edita um COMPROMISSO/evento da agenda do Astrea (altera no lugar, PRESERVANDO o appointment_id). Use sempre que precisar mudar algo de um compromisso já criado — adiar/antecipar, renomear, trocar o local ou o responsável. NÃO exclua e recrie: isso gera um id novo e quebra as referências guardadas.
- appointment_id: id do compromisso (retornado em astrea_compromisso_criar).
- Informe ao menos um campo para mudar; o que você omitir fica como está.
- start: novo início em ISO (ex.: 2026-07-10T14:00:00Z). Sem end, a DURAÇÃO é preservada (adiar 30 min move início e fim juntos).
- end: novo fim em ISO.
- title / location / all_day: novo título, endereço/local, dia inteiro.
- responsible_id: novo responsável (ver astrea_responsaveis) — é o que faz o compromisso aparecer na agenda da pessoa.
Numa série recorrente, edita SÓ a ocorrência informada (cada ocorrência tem seu próprio appointment_id).

Bulk support: accepts appointment_ids, responsible_ids for batched execution.
- `astrea_compromisso_excluir`: Exclui um COMPROMISSO/evento da agenda do Astrea. Use para CANCELAR o compromisso. Para só corrigir algo nele (horário, título, local, responsável) use astrea_compromisso_editar — excluir e recriar gera um appointment_id novo e quebra as referências guardadas.
- appointment_id: id do compromisso (retornado em astrea_compromisso_criar).

Bulk support: accepts appointment_ids for batched execution.
- `astrea_conta`: Conta do escritório no Astrea: plano contratado (Light/Up/Smart/Company/VIP), status (trial/ativo), dias de trial restantes, tenant e perfil. Útil pra saber em que plano o escritório está.
- `astrea_documento_gerar`: Gera um documento a partir de um MODELO cadastrado no Astrea e o vincula ao processo (área Documentos). O Astrea preenche as variáveis do modelo com os dados do processo, do cliente, do escritório e a data (ex.: gerar uma procuração para o processo X usando o modelo "Procuração PJ"). Para anexar um arquivo PRONTO em vez de gerar a partir de modelo, use astrea_documento_upload.
- model: id ou nome do modelo (ver astrea_modelos); por nome, casa parcialmente (se ambíguo, use o id).
- case_id: id do processo (ver astrea_processos).
- title: opcional, título do documento gerado; se omitir, usa o nome do modelo.
- responsible_id: opcional, id do membro responsável (ver astrea_responsaveis); se omitir, fica no usuário da integração.

Bulk support: accepts case_ids, responsible_ids for batched execution.
- `astrea_documento_upload`: Anexa um DOCUMENTO a um processo do Astrea (PDF de petição, comprovante, certidão, decisão, etc.). O arquivo fica vinculado ao PROCESSO, na área Documentos (o Astrea não anexa arquivo dentro de um andamento/tarefa, o vínculo é sempre no processo).
- case_id: id do processo (ver astrea_processos).
- attachments: um ou mais arquivos. Por arquivo, informe UMA forma: file_url (a plataforma baixa da URL, precisa abrir sem login), upload_id (arquivo já enviado, veja abaixo) ou file_base64 (só arquivo pequeno cujos bytes você REALMENTE tem; NUNCA pra anexo da conversa). file_name é obrigatório com file_url/file_base64.
- Arquivo ANEXADO na conversa ou no computador do usuário: NÃO tente ler o conteúdo nem montar file_base64 (você recebe o texto extraído, não os bytes do arquivo, e o upload sairia corrompido). Chame esta tool SEM arquivo, passando file_path se souber o caminho do anexo: ela devolve um comando pronto de upload. Execute esse comando no seu sandbox de execução de código (ou peça pro usuário rodar no terminal) e chame de novo com o `upload_id` E o `file_name` que ela devolveu. Com vários anexos, passe um item por arquivo (com file_path, se souber) e a tool devolve um comando por arquivo.
- description: descrição do documento (se omitir, usa o nome dos arquivos).
- responsible_id: opcional, id do membro responsável (ver astrea_responsaveis); se omitir, fica no usuário da integração.
- Os mesmos arquivos no mesmo processo nos últimos 30 minutos NÃO são enviados de novo (a resposta vem com duplicado_evitado). Só passe permitir_duplicado=true se o usuário pediu explicitamente outra cópia.

Bulk support: accepts case_ids, responsible_ids for batched execution.
- `astrea_encerrar`: Encerra (inativa) processos no Astrea, EM LOTE — marca a situação como encerrado (as informações continuam disponíveis para consulta). Use na higienização da carteira para baixar processos finalizados.
- case_ids: ids dos processos (ver astrea_processos); aceita vários.
- conviction_amount: opcional, valor da condenação a gravar no encerramento.
- unlink_from_court: opcional, true também desvincula do tribunal (para de receber andamentos automáticos).
Reabrir um processo encerrado é feito pela própria tela do Astrea (Ativar processo). O Astrea processa o lote de forma assíncrona.
- `astrea_etiquetar_aplicar`: Aplica ou remove etiquetas (tags) em PROCESSOS do Astrea, EM LOTE — use para classificar/higienizar a carteira (ex.: marcar a área de centenas de processos de uma vez). Para etiquetar TAREFAS use astrea_tarefa_etiquetar.
- action "aplicar" adiciona as etiquetas; "remover" tira as etiquetas (sem apagar a etiqueta em si).
- case_ids: ids dos processos (ver astrea_processos); aceita vários (o lote roda numa só chamada, fatiado internamente).
- tag_ids: ids das etiquetas (ver astrea_etiquetas); aceita várias.
O Astrea processa o lote de forma assíncrona; o efeito aparece em alguns segundos. As etiquetas precisam existir (crie-as no Astrea antes).

[Flattened action: aplicar]
- `astrea_etiquetar_remover`: Aplica ou remove etiquetas (tags) em PROCESSOS do Astrea, EM LOTE — use para classificar/higienizar a carteira (ex.: marcar a área de centenas de processos de uma vez). Para etiquetar TAREFAS use astrea_tarefa_etiquetar.
- action "aplicar" adiciona as etiquetas; "remover" tira as etiquetas (sem apagar a etiqueta em si).
- case_ids: ids dos processos (ver astrea_processos); aceita vários (o lote roda numa só chamada, fatiado internamente).
- tag_ids: ids das etiquetas (ver astrea_etiquetas); aceita várias.
O Astrea processa o lote de forma assíncrona; o efeito aparece em alguns segundos. As etiquetas precisam existir (crie-as no Astrea antes).

[Flattened action: remover]
- `astrea_etiquetas`: Lista as etiquetas (tags) do Astrea — id, label, cor, restrictions (CASES/TASKS/APPOINTMENTS).
Use para descobrir o id da etiqueta de "êxito" (ou qualquer outra) e então filtrar processos com astrea_processos (tag_id) e somar valor da causa / honorários (astrea_financeiro).
- `astrea_financeiro_despesas`: Resumo financeiro de um processo no Astrea.
Ações:
- honorarios: honorários do processo (totalAmount/totalReceived/totalOpen) — use para "valor de êxito".
- despesas: despesas do processo.

[Flattened action: despesas]

Bulk support: accepts case_ids for batched execution.
- `astrea_financeiro_honorarios`: Resumo financeiro de um processo no Astrea.
Ações:
- honorarios: honorários do processo (totalAmount/totalReceived/totalOpen) — use para "valor de êxito".
- despesas: despesas do processo.

[Flattened action: honorarios]

Bulk support: accepts case_ids for batched execution.
- `astrea_modelos`: Lista os MODELOS de documento cadastrados no Astrea (procuração, contrato de honorários, petição, etc.). Use para descobrir o modelo antes de gerar um documento com astrea_documento_gerar. Retorna id + nome de cada modelo.
- `astrea_processo_criar`: Cria um PROCESSO judicial novo no Astrea (fecha a paridade CRUD com astrea_processo_editar/astrea_encerrar). Use para cadastrar um processo a partir de dados extraídos (ex.: petição inicial), destravando a automação (andamento, tarefa, prazo, documento).
Obrigatório: titulo, e o cliente (customer_id de astrea_clientes OU customer_nome para criar um contato novo).
Campos judiciais opcionais, informados por NOME: numero_cnj, tribunal, vara, tipo_acao, data_distribuicao (AAAA-MM-DD), instancia.
Para CASO extrajudicial/consultivo (sem CNJ/tribunal) use astrea_caso_criar.
- `astrea_processo_editar`: Edita campos de UM processo no Astrea. Lê o processo atual e regrava preservando o resto (só muda o que você informar).
Campos editáveis (informe ao menos um):
- objeto: o campo "Objeto" (descrição do processo).
- conviction_amount: valor da condenação.
Para encerrar/reativar ou etiquetar use astrea_encerrar / astrea_etiquetar.

Bulk support: accepts case_ids for batched execution.
- `astrea_processos_buscar`: Processos (casos) no Astrea. Respostas COMPACTAS pra economizar contexto.
Ações:
- buscar: ACHA o processo pelo NÚMERO CNJ (ou trecho dele) e/ou por texto do título/cliente, devolvendo o id interno que as outras tools pedem (case_id). Mande TODOS os números de uma vez em numeros[] — a busca varre a conta UMA vez pra lista inteira (triagem de publicações: 30 números = 1 chamada). Por padrão inclui encerrados (status "All"), que é onde ficam execuções/recursos antigos. Resposta: encontrados[{consulta, processos[]}], nao_encontrados[], varredura{paginas, processos_varridos, truncado}. truncado=true significa que a varredura parou antes do fim (já achou tudo que foi pedido, ou bateu o teto) — pode haver outros processos casando um número PARCIAL.
- list: UMA página de processos (não varre a conta toda). Filtros: contact_id, tag_id, status. Pagine com cursor (devolvido em cada resposta). Pra achar UM processo específico use buscar, não pagine list.
- count: total de processos (mesmos filtros) rápido, use pra "quantos".
- por_cliente: resumo por cliente (qtd + soma do valor da causa), ordenado. Use top_n pra limitar. Respeita o status. Sem o detalhe dos processos, pra detalhar chame list com contact_id.
- novos_por_mes: nº de processos novos por mês (data de distribuição). Respeita o status.
por_cliente e novos_por_mes varrem a conta e também devolvem varredura{paginas, processos_varridos, truncado, motivo}. truncado=true significa que o resultado é PARCIAL (motivo "tempo" = a conta é grande demais pra varrer inteira numa chamada; "teto_de_paginas" = passou de 5000 processos) — diga isso ao usuário em vez de apresentar o número como total do escritório, e use count pro total exato ou list com filtros pra recortar.
Campos por processo (list): id, number, customer/customerId, title, court, lawsuitType, amount (valor da causa), convictionAmount (valor da condenação, só vem quando preenchido no Astrea), distribuitionDate, lastMovement, active (true=em andamento, false=encerrado), currentInstanceNumber (grau/instância), situacao (rótulo pronto, ex.: "Encerrado 1º Grau"), tagIds.

[Flattened action: buscar]

Bulk support: accepts contact_ids, tag_ids for batched execution.
- `astrea_processos_count`: Processos (casos) no Astrea. Respostas COMPACTAS pra economizar contexto.
Ações:
- buscar: ACHA o processo pelo NÚMERO CNJ (ou trecho dele) e/ou por texto do título/cliente, devolvendo o id interno que as outras tools pedem (case_id). Mande TODOS os números de uma vez em numeros[] — a busca varre a conta UMA vez pra lista inteira (triagem de publicações: 30 números = 1 chamada). Por padrão inclui encerrados (status "All"), que é onde ficam execuções/recursos antigos. Resposta: encontrados[{consulta, processos[]}], nao_encontrados[], varredura{paginas, processos_varridos, truncado}. truncado=true significa que a varredura parou antes do fim (já achou tudo que foi pedido, ou bateu o teto) — pode haver outros processos casando um número PARCIAL.
- list: UMA página de processos (não varre a conta toda). Filtros: contact_id, tag_id, status. Pagine com cursor (devolvido em cada resposta). Pra achar UM processo específico use buscar, não pagine list.
- count: total de processos (mesmos filtros) rápido, use pra "quantos".
- por_cliente: resumo por cliente (qtd + soma do valor da causa), ordenado. Use top_n pra limitar. Respeita o status. Sem o detalhe dos processos, pra detalhar chame list com contact_id.
- novos_por_mes: nº de processos novos por mês (data de distribuição). Respeita o status.
por_cliente e novos_por_mes varrem a conta e também devolvem varredura{paginas, processos_varridos, truncado, motivo}. truncado=true significa que o resultado é PARCIAL (motivo "tempo" = a conta é grande demais pra varrer inteira numa chamada; "teto_de_paginas" = passou de 5000 processos) — diga isso ao usuário em vez de apresentar o número como total do escritório, e use count pro total exato ou list com filtros pra recortar.
Campos por processo (list): id, number, customer/customerId, title, court, lawsuitType, amount (valor da causa), convictionAmount (valor da condenação, só vem quando preenchido no Astrea), distribuitionDate, lastMovement, active (true=em andamento, false=encerrado), currentInstanceNumber (grau/instância), situacao (rótulo pronto, ex.: "Encerrado 1º Grau"), tagIds.

[Flattened action: count]

Bulk support: accepts contact_ids, tag_ids for batched execution.
- `astrea_processos_list`: Processos (casos) no Astrea. Respostas COMPACTAS pra economizar contexto.
Ações:
- buscar: ACHA o processo pelo NÚMERO CNJ (ou trecho dele) e/ou por texto do título/cliente, devolvendo o id interno que as outras tools pedem (case_id). Mande TODOS os números de uma vez em numeros[] — a busca varre a conta UMA vez pra lista inteira (triagem de publicações: 30 números = 1 chamada). Por padrão inclui encerrados (status "All"), que é onde ficam execuções/recursos antigos. Resposta: encontrados[{consulta, processos[]}], nao_encontrados[], varredura{paginas, processos_varridos, truncado}. truncado=true significa que a varredura parou antes do fim (já achou tudo que foi pedido, ou bateu o teto) — pode haver outros processos casando um número PARCIAL.
- list: UMA página de processos (não varre a conta toda). Filtros: contact_id, tag_id, status. Pagine com cursor (devolvido em cada resposta). Pra achar UM processo específico use buscar, não pagine list.
- count: total de processos (mesmos filtros) rápido, use pra "quantos".
- por_cliente: resumo por cliente (qtd + soma do valor da causa), ordenado. Use top_n pra limitar. Respeita o status. Sem o detalhe dos processos, pra detalhar chame list com contact_id.
- novos_por_mes: nº de processos novos por mês (data de distribuição). Respeita o status.
por_cliente e novos_por_mes varrem a conta e também devolvem varredura{paginas, processos_varridos, truncado, motivo}. truncado=true significa que o resultado é PARCIAL (motivo "tempo" = a conta é grande demais pra varrer inteira numa chamada; "teto_de_paginas" = passou de 5000 processos) — diga isso ao usuário em vez de apresentar o número como total do escritório, e use count pro total exato ou list com filtros pra recortar.
Campos por processo (list): id, number, customer/customerId, title, court, lawsuitType, amount (valor da causa), convictionAmount (valor da condenação, só vem quando preenchido no Astrea), distribuitionDate, lastMovement, active (true=em andamento, false=encerrado), currentInstanceNumber (grau/instância), situacao (rótulo pronto, ex.: "Encerrado 1º Grau"), tagIds.

[Flattened action: list]

Bulk support: accepts contact_ids, tag_ids for batched execution.
- `astrea_processos_novos_por_mes`: Processos (casos) no Astrea. Respostas COMPACTAS pra economizar contexto.
Ações:
- buscar: ACHA o processo pelo NÚMERO CNJ (ou trecho dele) e/ou por texto do título/cliente, devolvendo o id interno que as outras tools pedem (case_id). Mande TODOS os números de uma vez em numeros[] — a busca varre a conta UMA vez pra lista inteira (triagem de publicações: 30 números = 1 chamada). Por padrão inclui encerrados (status "All"), que é onde ficam execuções/recursos antigos. Resposta: encontrados[{consulta, processos[]}], nao_encontrados[], varredura{paginas, processos_varridos, truncado}. truncado=true significa que a varredura parou antes do fim (já achou tudo que foi pedido, ou bateu o teto) — pode haver outros processos casando um número PARCIAL.
- list: UMA página de processos (não varre a conta toda). Filtros: contact_id, tag_id, status. Pagine com cursor (devolvido em cada resposta). Pra achar UM processo específico use buscar, não pagine list.
- count: total de processos (mesmos filtros) rápido, use pra "quantos".
- por_cliente: resumo por cliente (qtd + soma do valor da causa), ordenado. Use top_n pra limitar. Respeita o status. Sem o detalhe dos processos, pra detalhar chame list com contact_id.
- novos_por_mes: nº de processos novos por mês (data de distribuição). Respeita o status.
por_cliente e novos_por_mes varrem a conta e também devolvem varredura{paginas, processos_varridos, truncado, motivo}. truncado=true significa que o resultado é PARCIAL (motivo "tempo" = a conta é grande demais pra varrer inteira numa chamada; "teto_de_paginas" = passou de 5000 processos) — diga isso ao usuário em vez de apresentar o número como total do escritório, e use count pro total exato ou list com filtros pra recortar.
Campos por processo (list): id, number, customer/customerId, title, court, lawsuitType, amount (valor da causa), convictionAmount (valor da condenação, só vem quando preenchido no Astrea), distribuitionDate, lastMovement, active (true=em andamento, false=encerrado), currentInstanceNumber (grau/instância), situacao (rótulo pronto, ex.: "Encerrado 1º Grau"), tagIds.

[Flattened action: novos_por_mes]

Bulk support: accepts contact_ids, tag_ids for batched execution.
- `astrea_processos_por_cliente`: Processos (casos) no Astrea. Respostas COMPACTAS pra economizar contexto.
Ações:
- buscar: ACHA o processo pelo NÚMERO CNJ (ou trecho dele) e/ou por texto do título/cliente, devolvendo o id interno que as outras tools pedem (case_id). Mande TODOS os números de uma vez em numeros[] — a busca varre a conta UMA vez pra lista inteira (triagem de publicações: 30 números = 1 chamada). Por padrão inclui encerrados (status "All"), que é onde ficam execuções/recursos antigos. Resposta: encontrados[{consulta, processos[]}], nao_encontrados[], varredura{paginas, processos_varridos, truncado}. truncado=true significa que a varredura parou antes do fim (já achou tudo que foi pedido, ou bateu o teto) — pode haver outros processos casando um número PARCIAL.
- list: UMA página de processos (não varre a conta toda). Filtros: contact_id, tag_id, status. Pagine com cursor (devolvido em cada resposta). Pra achar UM processo específico use buscar, não pagine list.
- count: total de processos (mesmos filtros) rápido, use pra "quantos".
- por_cliente: resumo por cliente (qtd + soma do valor da causa), ordenado. Use top_n pra limitar. Respeita o status. Sem o detalhe dos processos, pra detalhar chame list com contact_id.
- novos_por_mes: nº de processos novos por mês (data de distribuição). Respeita o status.
por_cliente e novos_por_mes varrem a conta e também devolvem varredura{paginas, processos_varridos, truncado, motivo}. truncado=true significa que o resultado é PARCIAL (motivo "tempo" = a conta é grande demais pra varrer inteira numa chamada; "teto_de_paginas" = passou de 5000 processos) — diga isso ao usuário em vez de apresentar o número como total do escritório, e use count pro total exato ou list com filtros pra recortar.
Campos por processo (list): id, number, customer/customerId, title, court, lawsuitType, amount (valor da causa), convictionAmount (valor da condenação, só vem quando preenchido no Astrea), distribuitionDate, lastMovement, active (true=em andamento, false=encerrado), currentInstanceNumber (grau/instância), situacao (rótulo pronto, ex.: "Encerrado 1º Grau"), tagIds.

[Flattened action: por_cliente]

Bulk support: accepts contact_ids, tag_ids for batched execution.
- `astrea_responsaveis`: Lista os usuários (membros) do escritório no Astrea — id, nome, e-mail. Use para descobrir o id do RESPONSÁVEL antes de criar/editar tarefa, compromisso ou andamento (astrea_tarefa_criar / astrea_compromisso_criar / astrea_compromisso_editar / astrea_andamento_criar com responsible_id), para que a atividade apareça na agenda — e na timeline — da pessoa certa. O campo "eu" marca o usuário da integração.
- `astrea_tarefa_criar`: Cria uma TAREFA vinculada a um processo no Astrea.
- case_id: id do processo (ver astrea_processos).
- description: o que fazer.
- due_date: opcional, prazo em ISO (ex.: 2026-07-10).
- responsible_id: opcional, id do membro do escritório responsável (ver astrea_responsaveis). Se omitir, fica no usuário da integração e pode NÃO aparecer na agenda do advogado, que filtra pelo próprio responsável. Para a tarefa aparecer na agenda de alguém, passe o id dessa pessoa.
- repeat: opcional, cria uma SÉRIE recorrente numa só chamada (semanal/mensal/etc.). Exige due_date (vira a 1ª ocorrência). Cada ocorrência é uma tarefa independente (edite/exclua individualmente com astrea_tarefa_editar/_excluir).
Devolve task_id (o id da tarefa criada; na série, um por ocorrência) — guarde para editar/excluir depois.

Bulk support: accepts case_ids, responsible_ids for batched execution.
- `astrea_tarefa_editar`: Edita uma TAREFA existente no Astrea (altera no lugar, sem duplicar). Informe ao menos um campo para mudar; o que você omitir fica como está — inclusive as etiquetas da tarefa (para mudá-las use astrea_tarefa_etiquetar).
- task_id: id da tarefa (retornado em astrea_tarefa_criar / astrea_agenda_global).
- case_id: id do processo da tarefa (para localizá-la).
- description / due_date (AAAA-MM-DD) / responsible_id (ver astrea_responsaveis): campos a alterar (omita os que não muda).
Para reagendar VÁRIAS tarefas, chame uma vez por tarefa (task_ids em lote só serve quando todas são do MESMO case_id).

Bulk support: accepts task_ids, case_ids, responsible_ids for batched execution.
- `astrea_tarefa_etiquetar_aplicar`: Aplica ou remove etiquetas (tags) em TAREFAS do Astrea — uma ou várias tarefas numa só chamada. Use para classificar/priorizar tarefas (ex.: marcar "URGÊNCIA" nas atrasadas) ou restaurar etiquetas. Para etiquetar PROCESSOS use astrea_etiquetar.
- action "aplicar" adiciona as etiquetas às tarefas; "remover" tira (sem apagar a etiqueta em si). As etiquetas já presentes são mantidas.
- task_ids: ids das tarefas (ver astrea_agenda_global, astrea_agenda ou astrea_tarefa_criar); NÃO precisa de case_id.
- tag_ids: ids das etiquetas (ver astrea_etiquetas; a etiqueta precisa permitir TASKS em restrictions).
Roda tarefa por tarefa; num lote grande pode voltar "truncado" com a lista "pendentes" — chame de novo só com elas. Falha numa tarefa não impede as outras (veja "tarefas[].ok").

[Flattened action: aplicar]
- `astrea_tarefa_etiquetar_remover`: Aplica ou remove etiquetas (tags) em TAREFAS do Astrea — uma ou várias tarefas numa só chamada. Use para classificar/priorizar tarefas (ex.: marcar "URGÊNCIA" nas atrasadas) ou restaurar etiquetas. Para etiquetar PROCESSOS use astrea_etiquetar.
- action "aplicar" adiciona as etiquetas às tarefas; "remover" tira (sem apagar a etiqueta em si). As etiquetas já presentes são mantidas.
- task_ids: ids das tarefas (ver astrea_agenda_global, astrea_agenda ou astrea_tarefa_criar); NÃO precisa de case_id.
- tag_ids: ids das etiquetas (ver astrea_etiquetas; a etiqueta precisa permitir TASKS em restrictions).
Roda tarefa por tarefa; num lote grande pode voltar "truncado" com a lista "pendentes" — chame de novo só com elas. Falha numa tarefa não impede as outras (veja "tarefas[].ok").

[Flattened action: remover]
- `astrea_tarefa_excluir`: Exclui uma TAREFA do Astrea.
- task_id: id da tarefa (retornado em astrea_tarefa_criar).
- case_id: id do processo da tarefa (para localizá-la).

Bulk support: accepts task_ids, case_ids for batched execution.
- `authenticate`: 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.
- `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.
- `marketplace`: 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.
- `report_bug`: Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.
- `show_version`: Show the current MCP platform and adapter versions.
- `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.
