addrbookFor publishers
← The evidence ledger

Evidence row 259614

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint f5382d0b-ff95-4147-8bcf-86f95a335111
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
8c0567a0ce80430ec733e5b8f6b0079797f6c2711701d0e105fd0fcc306a1b36
Leaf
0xa62ac64c56e187223fc595d7960cc746f572870d6cb7edc3540fd432de56389f

What was observed

{
  "count": 42,
  "tools": [
    {
      "description": "Agenda do escritório no Astrea — audiências (HEARING), reuniões/eventos (EVENT), prazos (DEADLINE) e tarefas (TASK).\nAções:\n- global: todas as atividades numa janela de datas (date_from/date_to em AAAA-MM-DD).\n- por_cliente: as atividades agrupadas por cliente (via processo vinculado; avulsas vão em \"(sem cliente)\").\n\n[Flattened action: global]",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "date_from": {
            "type": "string"
          },
          "date_to": {
            "type": "string"
          }
        },
        "required": [
          "date_from",
          "date_to"
        ],
        "type": "object"
      },
      "name": "astrea_agenda_global"
    },
    {
      "description": "Agenda do escritório no Astrea — audiências (HEARING), reuniões/eventos (EVENT), prazos (DEADLINE) e tarefas (TASK).\nAções:\n- global: todas as atividades numa janela de datas (date_from/date_to em AAAA-MM-DD).\n- por_cliente: as atividades agrupadas por cliente (via processo vinculado; avulsas vão em \"(sem cliente)\").\n\n[Flattened action: por_cliente]",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "date_from": {
            "type": "string"
          },
          "date_to": {
            "type": "string"
          }
        },
        "required": [
          "date_from",
          "date_to"
        ],
        "type": "object"
      },
      "name": "astrea_agenda_por_cliente"
    },
    {
      "description": "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).\n- case_id: id do processo (ver astrea_processos).\n- description: texto do andamento (aceita HTML simples; texto puro vira um parágrafo).\n- date: data/hora do andamento em ISO (ex.: 2026-06-30 ou 2026-06-30T13:00:00Z); omita para usar agora.\n- 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.\n\nBulk support: accepts case_ids, responsible_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "case_id": {
            "type": "string"
          },
          "case_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "date": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "responsible_id": {
            "type": "string"
          },
          "responsible_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "case_id",
          "description"
        ],
        "type": "object"
      },
      "name": "astrea_andamento_criar"
    },
    {
      "description": "Andamentos (timeline/histórico) de um processo no Astrea — base para gerar relatórios ao cliente.\nCada andamento traz date, type, description, responsible. type que começa com AUTOMATIC = captura automática do tribunal; os demais são manuais.\n\nBulk support: accepts case_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "case_id": {
            "type": "string"
          },
          "case_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "limit": {
            "default": 50,
            "type": "number"
          },
          "only_manual": {
            "default": false,
            "type": "boolean"
          }
        },
        "required": [
          "case_id"
        ],
        "type": "object"
      },
      "name": "astrea_andamentos"
    },
    {
      "description": "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.\nObrigatório: titulo, e o cliente (customer_id de astrea_clientes OU customer_nome para criar um contato novo).\nPara processo JUDICIAL (com CNJ/tribunal) use astrea_processo_criar.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "customer_id": {
            "type": "string"
          },
          "customer_nome": {
            "type": "string"
          },
          "data_abertura": {
            "type": "string"
          },
          "objeto": {
            "type": "string"
          },
          "polo": {
            "type": "string"
          },
          "qualificacao": {
            "type": "string"
          },
          "responsavel_id": {
            "type": "string"
          },
          "tag_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "titulo": {
            "type": "string"
          },
          "valor_envolvido": {
            "type": "number"
          }
        },
        "required": [
          "titulo"
        ],
        "type": "object"
      },
      "name": "astrea_caso_criar"
    },
    {
      "description": "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.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "cursor": {
            "type": "string"
          },
          "limit": {
            "default": 30,
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "astrea_clientes"
    },
    {
      "description": "Cria um COMPROMISSO/evento na agenda, vinculado a um processo no Astrea.\n- case_id: id do processo (ver astrea_processos).\n- title: título do compromisso.\n- start: início em ISO (ex.: 2026-07-10T14:00:00Z). Interpretado no fuso do servidor (UTC).\n- end: opcional, fim em ISO; se omitido, 30 min após o início.\n- all_day: opcional, true para dia inteiro.\n- location: opcional, endereço/local.\n- 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.\n- 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).\nDevolve appointment_id (o id do compromisso criado; na série, um por ocorrência) — guarde para editar/excluir depois.\n\nBulk support: accepts case_ids, responsible_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "all_day": {
            "default": false,
            "type": "boolean"
          },
          "case_id": {
            "type": "string"
          },
          "case_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "end": {
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "repeat": {
            "properties": {
              "count": {
                "type": "number"
              },
              "frequency": {
                "enum": [
                  "daily",
                  "weekly",
                  "monthly",
                  "yearly"
                ],
                "type": "string"
              },
              "interval": {
                "default": 1,
                "type": "number"
              },
              "until": {
                "type": "string"
              }
            },
            "required": [
              "frequency"
            ],
            "type": "object"
          },
          "responsible_id": {
            "type": "string"
          },
          "responsible_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "start": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "title",
          "start"
        ],
        "type": "object"
      },
      "name": "astrea_compromisso_criar"
    },
    {
      "description": "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.\n- appointment_id: id do compromisso (retornado em astrea_compromisso_criar).\n- Informe ao menos um campo para mudar; o que você omitir fica como está.\n- 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).\n- end: novo fim em ISO.\n- title / location / all_day: novo título, endereço/local, dia inteiro.\n- responsible_id: novo responsável (ver astrea_responsaveis) — é o que faz o compromisso aparecer na agenda da pessoa.\nNuma série recorrente, edita SÓ a ocorrência informada (cada ocorrência tem seu próprio appointment_id).\n\nBulk support: accepts appointment_ids, responsible_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "all_day": {
            "type": "boolean"
          },
          "appointment_id": {
            "type": "string"
          },
          "appointment_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "end": {
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "responsible_id": {
            "type": "string"
          },
          "responsible_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "start": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "required": [
          "appointment_id"
        ],
        "type": "object"
      },
      "name": "astrea_compromisso_editar"
    },
    {
      "description": "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.\n- appointment_id: id do compromisso (retornado em astrea_compromisso_criar).\n\nBulk support: accepts appointment_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "appointment_id": {
            "type": "string"
          },
          "appointment_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "appointment_id"
        ],
        "type": "object"
      },
      "name": "astrea_compromisso_excluir"
    },
    {
      "description": "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á.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "astrea_conta"
    },
    {
      "description": "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.\n- model: id ou nome do modelo (ver astrea_modelos); por nome, casa parcialmente (se ambíguo, use o id).\n- case_id: id do processo (ver astrea_processos).\n- title: opcional, título do documento gerado; se omitir, usa o nome do modelo.\n- responsible_id: opcional, id do membro responsável (ver astrea_responsaveis); se omitir, fica no usuário da integração.\n\nBulk support: accepts case_ids, responsible_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "case_id": {
            "type": "string"
          },
          "case_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "model": {
            "type": "string"
          },
          "responsible_id": {
            "type": "string"
          },
          "responsible_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "title": {
            "type": "string"
          }
        },
        "required": [
          "model",
          "case_id"
        ],
        "type": "object"
      },
      "name": "astrea_documento_gerar"
    },
    {
      "description": "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).\n- case_id: id do processo (ver astrea_processos).\n- 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.\n- 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.\n- description: descrição do documento (se omitir, usa o nome dos arquivos).\n- responsible_id: opcional, id do membro responsável (ver astrea_responsaveis); se omitir, fica no usuário da integração.\n- 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.\n\nBulk support: accepts case_ids, responsible_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "attachments": {
            "items": {
              "properties": {
                "content_type": {
                  "type": "string"
                },
                "file_base64": {
                  "type": "string"
                },
                "file_name": {
                  "type": "string"
                },
                "file_path": {
                  "type": "string"
                },
                "file_url": {
                  "type": "string"
                },
                "upload_code": {
                  "type": "string"
                },
                "upload_id": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "case_id": {
            "type": "string"
          },
          "case_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "type": "string"
          },
          "permitir_duplicado": {
            "type": "boolean"
          },
          "responsible_id": {
            "type": "string"
          },
          "responsible_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "case_id",
          "attachments"
        ],
        "type": "object"
      },
      "name": "astrea_documento_upload"
    },
    {
      "description": "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.\n- case_ids: ids dos processos (ver astrea_processos); aceita vários.\n- conviction_amount: opcional, valor da condenação a gravar no encerramento.\n- unlink_from_court: opcional, true também desvincula do tribunal (para de receber andamentos automáticos).\nReabrir um processo encerrado é feito pela própria tela do Astrea (Ativar processo). O Astrea processa o lote de forma assíncrona.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "case_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "conviction_amount": {
            "type": "number"
          },
          "unlink_from_court": {
            "default": false,
            "type": "boolean"
          }
        },
        "required": [
          "case_ids"
        ],
        "type": "object"
      },
      "name": "astrea_encerrar"
    },
    {
      "description": "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.\n- action \"aplicar\" adiciona as etiquetas; \"remover\" tira as etiquetas (sem apagar a etiqueta em si).\n- case_ids: ids dos processos (ver astrea_processos); aceita vários (o lote roda numa só chamada, fatiado internamente).\n- tag_ids: ids das etiquetas (ver astrea_etiquetas); aceita várias.\nO Astrea processa o lote de forma assíncrona; o efeito aparece em alguns segundos. As etiquetas precisam existir (crie-as no Astrea antes).\n\n[Flattened action: aplicar]",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "case_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tag_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "case_ids",
          "tag_ids"
        ],
        "type": "object"
      },
      "name": "astrea_etiquetar_aplicar"
    },
    {
      "description": "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.\n- action \"aplicar\" adiciona as etiquetas; \"remover\" tira as etiquetas (sem apagar a etiqueta em si).\n- case_ids: ids dos processos (ver astrea_processos); aceita vários (o lote roda numa só chamada, fatiado internamente).\n- tag_ids: ids das etiquetas (ver astrea_etiquetas); aceita várias.\nO Astrea processa o lote de forma assíncrona; o efeito aparece em alguns segundos. As etiquetas precisam existir (crie-as no Astrea antes).\n\n[Flattened action: remover]",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "case_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tag_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "case_ids",
          "tag_ids"
        ],
        "type": "object"
      },
      "name": "astrea_etiquetar_remover"
    },
    {
      "description": "Lista as etiquetas (tags) do Astrea — id, label, cor, restrictions (CASES/TASKS/APPOINTMENTS).\nUse 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).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "astrea_etiquetas"
    },
    {
      "description": "Resumo financeiro de um processo no Astrea.\nAções:\n- honorarios: honorários do processo (totalAmount/totalReceived/totalOpen) — use para \"valor de êxito\".\n- despesas: despesas do processo.\n\n[Flattened action: despesas]\n\nBulk support: accepts case_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "case_id": {
            "type": "string"
          },
          "case_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "case_id"
        ],
        "type": "object"
      },
      "name": "astrea_financeiro_despesas"
    },
    {
      "description": "Resumo financeiro de um processo no Astrea.\nAções:\n- honorarios: honorários do processo (totalAmount/totalReceived/totalOpen) — use para \"valor de êxito\".\n- despesas: despesas do processo.\n\n[Flattened action: honorarios]\n\nBulk support: accepts case_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "case_id": {
            "type": "string"
          },
          "case_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "case_id"
        ],
        "type": "object"
      },
      "name": "astrea_financeiro_honorarios"
    },
    {
      "description": "Lista os quadros KANBAN de tarefas do escritório no Astrea, com as colunas de cada um (id, nome, tipo: BACKLOG = entrada, DONE = concluído). Use os ids em astrea_tarefa_criar (kanban_id/column_id) e astrea_tarefa_mover (column_id). \"padrao\" marca o quadro padrão.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "astrea_kanbans"
    },
    {
      "description": "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.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "astrea_modelos"
    },
    {
      "description": "Cria um PRAZO processual no Astrea (aparece como prazo na agenda e nos relatórios de prazos, não como tarefa solta), vinculado a um processo ou caso, e opcionalmente as TAREFAS que dependem dele, tudo numa chamada (ex.: prazo fatal 06/11 para protocolar; tarefas \"levantar movimentações\", \"minuta\", \"revisão\").\n- case_id: id do processo ou caso (ver astrea_processos).\n- title: título do prazo (até 250 caracteres).\n- due_date: data FATAL, AAAA-MM-DD. Obrigatória: calcule você a contagem (dias úteis/corridos a partir da intimação); o Astrea recebe a data pronta.\n- responsible_id: opcional, responsável pelo prazo (ver astrea_responsaveis); se omitir, fica no usuário da integração e pode não aparecer na agenda do advogado.\n- comments: opcional, observações do prazo. tag_ids: opcional, etiquetas (ver astrea_etiquetas; a etiqueta precisa permitir prazos).\n- tarefas: opcional, tarefas vinculadas ao prazo. Cada uma com description e a data: due_date (AAAA-MM-DD) OU dias_antes (dias corridos antes da data fatal; omitindo os dois, vence na data fatal). responsible_id por tarefa (ex.: estagiária numa, advogada noutra).\nDevolve prazo_id e, por tarefa, task_id (editar/excluir com astrea_tarefa_editar/_excluir). Falha numa tarefa não desfaz o prazo: veja \"tarefas[].criada\" e crie só a que faltou com astrea_tarefa_criar + prazo_id. Mudar a data fatal depois NÃO recalcula as tarefas.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "case_id": {
            "type": "string"
          },
          "comments": {
            "type": "string"
          },
          "due_date": {
            "type": "string"
          },
          "responsible_id": {
            "type": "string"
          },
          "tag_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tarefas": {
            "items": {
              "properties": {
                "description": {
                  "type": "string"
                },
                "dias_antes": {
                  "type": "number"
                },
                "due_date": {
                  "type": "string"
                },
                "responsible_id": {
                  "type": "string"
                }
              },
              "required": [
                "description"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "title": {
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "title",
          "due_date"
        ],
        "type": "object"
      },
      "name": "astrea_prazo_criar"
    },
    {
      "description": "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).\nObrigatório: titulo, e o cliente (customer_id de astrea_clientes OU customer_nome para criar um contato novo).\nCampos judiciais opcionais, informados por NOME: numero_cnj, tribunal, vara, tipo_acao, data_distribuicao (AAAA-MM-DD), instancia.\nPara CASO extrajudicial/consultivo (sem CNJ/tribunal) use astrea_caso_criar.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "customer_id": {
            "type": "string"
          },
          "customer_nome": {
            "type": "string"
          },
          "data_distribuicao": {
            "type": "string"
          },
          "instancia": {
            "type": "number"
          },
          "numero_cnj": {
            "type": "string"
          },
          "objeto": {
            "type": "string"
          },
          "polo": {
            "type": "string"
          },
          "qualificacao": {
            "type": "string"
          },
          "responsavel_id": {
            "type": "string"
          },
          "tag_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tipo_acao": {
            "type": "string"
          },
          "titulo": {
            "type": "string"
          },
          "tribunal": {
            "type": "string"
          },
          "valor_causa": {
            "type": "number"
          },
          "valor_condenacao": {
            "type": "number"
          },
          "vara": {
            "type": "string"
          }
        },
        "required": [
          "titulo"
        ],
        "type": "object"
      },
      "name": "astrea_processo_criar"
    },
    {
      "description": "Edita campos de UM processo no Astrea. Lê o processo atual e regrava preservando o resto (só muda o que você informar).\nCampos editáveis (informe ao menos um):\n- objeto: o campo \"Objeto\" (descrição do processo).\n- conviction_amount: valor da condenação.\nPara encerrar/reativar ou etiquetar use astrea_encerrar / astrea_etiquetar.\n\nBulk support: accepts case_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "case_id": {
            "type": "string"
          },
          "case_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "conviction_amount": {
            "type": "number"
          },
          "objeto": {
            "type": "string"
          }
        },
        "required": [
          "case_id"
        ],
        "type": "object"
      },
      "name": "astrea_processo_editar"
    },
    {
      "description": "Processos (casos) no Astrea. Respostas COMPACTAS pra economizar contexto.\nAções:\n- 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.\n- 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.\n- count: total de processos (mesmos filtros) rápido, use pra \"quantos\".\n- 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.\n- novos_por_mes: nº de processos novos por mês (data de distribuição). Respeita o status.\npor_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.\nCampos 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.\n\n[Flattened action: buscar]\n\nBulk support: accepts contact_ids, tag_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "contact_id": {
            "type": "string"
          },
          "contact_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "cursor": {
            "type": "string"
          },
          "limit": {
            "default": 30,
            "type": "number"
          },
          "numeros": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "status": {
            "enum": [
              "Active",
              "Inactive",
              "Archived",
              "All"
            ],
            "type": "string"
          },
          "tag_id": {
            "type": "string"
          },
          "tag_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "texto": {
            "type": "string"
          },
          "top_n": {
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "astrea_processos_buscar"
    },
    {
      "description": "Processos (casos) no Astrea. Respostas COMPACTAS pra economizar contexto.\nAções:\n- 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.\n- 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.\n- count: total de processos (mesmos filtros) rápido, use pra \"quantos\".\n- 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.\n- novos_por_mes: nº de processos novos por mês (data de distribuição). Respeita o status.\npor_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.\nCampos 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.\n\n[Flattened action: count]\n\nBulk support: accepts contact_ids, tag_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "contact_id": {
            "type": "string"
          },
          "contact_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "cursor": {
            "type": "string"
          },
          "limit": {
            "default": 30,
            "type": "number"
          },
          "numeros": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "status": {
            "enum": [
              "Active",
              "Inactive",
              "Archived",
              "All"
            ],
            "type": "string"
          },
          "tag_id": {
            "type": "string"
          },
          "tag_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "texto": {
            "type": "string"
          },
          "top_n": {
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "astrea_processos_count"
    },
    {
      "description": "Processos (casos) no Astrea. Respostas COMPACTAS pra economizar contexto.\nAções:\n- 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.\n- 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.\n- count: total de processos (mesmos filtros) rápido, use pra \"quantos\".\n- 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.\n- novos_por_mes: nº de processos novos por mês (data de distribuição). Respeita o status.\npor_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.\nCampos 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.\n\n[Flattened action: list]\n\nBulk support: accepts contact_ids, tag_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "contact_id": {
            "type": "string"
          },
          "contact_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "cursor": {
            "type": "string"
          },
          "limit": {
            "default": 30,
            "type": "number"
          },
          "numeros": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "status": {
            "enum": [
              "Active",
              "Inactive",
              "Archived",
              "All"
            ],
            "type": "string"
          },
          "tag_id": {
            "type": "string"
          },
          "tag_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "texto": {
            "type": "string"
          },
          "top_n": {
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "astrea_processos_list"
    },
    {
      "description": "Processos (casos) no Astrea. Respostas COMPACTAS pra economizar contexto.\nAções:\n- 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.\n- 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.\n- count: total de processos (mesmos filtros) rápido, use pra \"quantos\".\n- 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.\n- novos_por_mes: nº de processos novos por mês (data de distribuição). Respeita o status.\npor_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.\nCampos 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.\n\n[Flattened action: novos_por_mes]\n\nBulk support: accepts contact_ids, tag_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "contact_id": {
            "type": "string"
          },
          "contact_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "cursor": {
            "type": "string"
          },
          "limit": {
            "default": 30,
            "type": "number"
          },
          "numeros": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "status": {
            "enum": [
              "Active",
              "Inactive",
              "Archived",
              "All"
            ],
            "type": "string"
          },
          "tag_id": {
            "type": "string"
          },
          "tag_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "texto": {
            "type": "string"
          },
          "top_n": {
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "astrea_processos_novos_por_mes"
    },
    {
      "description": "Processos (casos) no Astrea. Respostas COMPACTAS pra economizar contexto.\nAções:\n- 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.\n- 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.\n- count: total de processos (mesmos filtros) rápido, use pra \"quantos\".\n- 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.\n- novos_por_mes: nº de processos novos por mês (data de distribuição). Respeita o status.\npor_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.\nCampos 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.\n\n[Flattened action: por_cliente]\n\nBulk support: accepts contact_ids, tag_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "contact_id": {
            "type": "string"
          },
          "contact_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "cursor": {
            "type": "string"
          },
          "limit": {
            "default": 30,
            "type": "number"
          },
          "numeros": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "status": {
            "enum": [
              "Active",
              "Inactive",
              "Archived",
              "All"
            ],
            "type": "string"
          },
          "tag_id": {
            "type": "string"
          },
          "tag_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "texto": {
            "type": "string"
          },
          "top_n": {
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "astrea_processos_por_cliente"
    },
    {
      "description": "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.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "astrea_responsaveis"
    },
    {
      "description": "Cria uma TAREFA vinculada a um processo no Astrea.\n- case_id: id do processo (ver astrea_processos).\n- description: o que fazer.\n- due_date: opcional, prazo em ISO (ex.: 2026-07-10).\n- 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.\n- 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).\n- kanban_id / column_id: opcionais, colocam a tarefa num quadro kanban (ids em astrea_kanbans). Só column_id = o quadro dessa coluna; só kanban_id = a 1ª coluna (backlog) do quadro. O Astrea só aceita no kanban tarefa COM prazo, então exige due_date. Para mudar a coluna depois use astrea_tarefa_mover.\n- prazo_id: opcional, vincula a tarefa a um PRAZO processual já existente (id de astrea_prazo_criar ou de um DEADLINE em astrea_agenda); ela aparece dentro do prazo no Astrea. Para criar o prazo e as tarefas juntos use astrea_prazo_criar.\nDevolve task_id (o id da tarefa criada; na série, um por ocorrência) — guarde para editar/excluir depois.\n\nBulk support: accepts case_ids, responsible_ids, kanban_ids, column_ids, prazo_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "case_id": {
            "type": "string"
          },
          "case_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "column_id": {
            "type": "string"
          },
          "column_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "type": "string"
          },
          "due_date": {
            "type": "string"
          },
          "kanban_id": {
            "type": "string"
          },
          "kanban_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "prazo_id": {
            "type": "string"
          },
          "prazo_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "repeat": {
            "properties": {
              "count": {
                "type": "number"
              },
              "frequency": {
                "enum": [
                  "daily",
                  "weekly",
                  "monthly",
                  "yearly"
                ],
                "type": "string"
              },
              "interval": {
                "default": 1,
                "type": "number"
              },
              "until": {
                "type": "string"
              }
            },
            "required": [
              "frequency"
            ],
            "type": "object"
          },
          "responsible_id": {
            "type": "string"
          },
          "responsible_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "case_id",
          "description"
        ],
        "type": "object"
      },
      "name": "astrea_tarefa_criar"
    },
    {
      "description": "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).\n- task_id: id da tarefa (retornado em astrea_tarefa_criar / astrea_agenda_global).\n- case_id: id do processo da tarefa (para localizá-la).\n- description / due_date (AAAA-MM-DD) / responsible_id (ver astrea_responsaveis): campos a alterar (omita os que não muda).\nPara reagendar VÁRIAS tarefas, chame uma vez por tarefa (task_ids em lote só serve quando todas são do MESMO case_id).\n\nBulk support: accepts task_ids, case_ids, responsible_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "case_id": {
            "type": "string"
          },
          "case_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "type": "string"
          },
          "due_date": {
            "type": "string"
          },
          "responsible_id": {
            "type": "string"
          },
          "responsible_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "task_id": {
            "type": "string"
          },
          "task_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "task_id",
          "case_id"
        ],
        "type": "object"
      },
      "name": "astrea_tarefa_editar"
    },
    {
      "description": "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.\n- action \"aplicar\" adiciona as etiquetas às tarefas; \"remover\" tira (sem apagar a etiqueta em si). As etiquetas já presentes são mantidas.\n- task_ids: ids das tarefas (ver astrea_agenda_global, astrea_agenda ou astrea_tarefa_criar); NÃO precisa de case_id.\n- tag_ids: ids das etiquetas (ver astrea_etiquetas; a etiqueta precisa permitir TASKS em restrictions).\nRoda 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\").\n\n[Flattened action: aplicar]",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "tag_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "task_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "task_ids",
          "tag_ids"
        ],
        "type": "object"
      },
      "name": "astrea_tarefa_etiquetar_aplicar"
    },
    {
      "description": "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.\n- action \"aplicar\" adiciona as etiquetas às tarefas; \"remover\" tira (sem apagar a etiqueta em si). As etiquetas já presentes são mantidas.\n- task_ids: ids das tarefas (ver astrea_agenda_global, astrea_agenda ou astrea_tarefa_criar); NÃO precisa de case_id.\n- tag_ids: ids das etiquetas (ver astrea_etiquetas; a etiqueta precisa permitir TASKS em restrictions).\nRoda 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\").\n\n[Flattened action: remover]",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "tag_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "task_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "task_ids",
          "tag_ids"
        ],
        "type": "object"
      },
      "name": "astrea_tarefa_etiquetar_remover"
    },
    {
      "description": "Exclui uma TAREFA do Astrea.\n- task_id: id da tarefa (retornado em astrea_tarefa_criar).\n- case_id: id do processo da tarefa (para localizá-la).\n\nBulk support: accepts task_ids, case_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "case_id": {
            "type": "string"
          },
          "case_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "task_id": {
            "type": "string"
          },
          "task_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "task_id",
          "case_id"
        ],
        "type": "object"
      },
      "name": "astrea_tarefa_excluir"
    },
    {
      "description": "Move uma ou várias TAREFAS para outra coluna do kanban do Astrea (o mesmo que arrastar o cartão na tela) — ex.: de \"A fazer\" para \"Em andamento\" ou para a coluna de concluídas.\n- task_ids: ids das tarefas (ver astrea_tarefas_listar / astrea_tarefa_criar).\n- column_id: coluna de destino (ver astrea_kanbans); kanban_id é opcional (descoberto pela coluna).\nFalha numa tarefa não impede as outras (veja \"tarefas[].ok\"). Tarefa sem prazo não fica no kanban (regra do Astrea): defina o prazo antes com astrea_tarefa_editar.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "column_id": {
            "type": "string"
          },
          "kanban_id": {
            "type": "string"
          },
          "task_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "task_ids",
          "column_id"
        ],
        "type": "object"
      },
      "name": "astrea_tarefa_mover"
    },
    {
      "description": "Lista TAREFAS do Astrea sem depender de agenda — inclusive as SEM PRAZO, que astrea_agenda nunca mostra. Escolha UMA fonte:\n- case_ids: todas as tarefas desses processos (com e sem prazo; até 50 processos por chamada).\n- sem_prazo=true: tarefas sem prazo da conta inteira, paginadas (passe o cursor devolvido para a próxima página; tem_mais=false = acabou).\n- date_from + date_to (AAAA-MM-DD): tarefas com prazo da conta inteira nessa janela.\nFiltros: status (\"IN_PROGRESS\" abertas — padrão, \"DONE\" concluídas, \"ALL\" todas), responsible_id (ver astrea_responsaveis), tag_id (ver astrea_etiquetas).\nCada tarefa traz id, case_id, case_title, lawsuit_number, description, due_date (null = sem prazo), status, priority, responsible_id, tag_ids, kanban {kanban_id, column_id} (null = fora do kanban) e created_date.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "case_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "cursor": {
            "type": "string"
          },
          "date_from": {
            "type": "string"
          },
          "date_to": {
            "type": "string"
          },
          "limit": {
            "default": 50,
            "type": "number"
          },
          "responsible_id": {
            "type": "string"
          },
          "sem_prazo": {
            "type": "boolean"
          },
          "status": {
            "default": "IN_PROGRESS",
            "enum": [
              "IN_PROGRESS",
              "DONE",
              "ALL"
            ],
            "type": "string"
          },
          "tag_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "astrea_tarefas_listar"
    },
    {
      "description": "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.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "token": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "authenticate"
    },
    {
      "description": "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.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "connect"
    },
    {
      "description": "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.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "action": {
            "default": "search",
            "enum": [
              "search",
              "describe",
              "install",
              "uninstall",
              "subscribe",
              "cancel",
              "resume",
              "report_bug",
              "request_mcp",
              "list_tools",
              "invoke",
              "search_prompts",
              "get_prompt",
              "publish_prompt"
            ],
            "type": "string"
          },
          "arguments": {
            "default": "{}",
            "type": "string"
          },
          "cancel_comment": {
            "default": "",
            "type": "string"
          },
          "cancel_reason": {
            "enum": [
              "too_expensive",
              "missing_features",
              "switched_service",
              "unused",
              "customer_service",
              "too_complex",
              "low_quality",
              "other"
            ],
            "type": "string"
          },
          "conversation": {
            "default": "[]",
            "type": "string"
          },
          "immediate": {
            "default": false,
            "type": "boolean"
          },
          "limit": {
            "default": 10,
            "type": "number"
          },
          "mcp_id": {
            "default": "",
            "type": "string"
          },
          "message": {
            "default": "",
            "type": "string"
          },
          "prompt_body": {
            "default": "",
            "type": "string"
          },
          "prompt_category": {
            "default": "",
            "type": "string"
          },
          "prompt_description": {
            "default": "",
            "type": "string"
          },
          "prompt_slug": {
            "default": "",
            "type": "string"
          },
          "prompt_targets": {
            "default": [],
            "items": {
              "enum": [
                "claude",
                "chatgpt",
                "cursor",
                "lovable"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "prompt_title": {
            "default": "",
            "type": "string"
          },
          "prompt_tool": {
            "default": "",
            "type": "string"
          },
          "prompt_vars": {
            "default": "{}",
            "type": "string"
          },
          "query": {
            "default": "",
            "type": "string"
          },
          "report_context": {
            "default": "",
            "type": "string"
          },
          "request_details": {
            "default": "",
            "type": "string"
          },
          "request_name": {
            "default": "",
            "type": "string"
          },
          "tier_slug": {
            "default": "",
            "type": "string"
          },
          "tool_id": {
            "default": "",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "marketplace"
    },
    {
      "description": "Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "context": {
            "default": "",
            "type": "string"
          },
          "conversation": {
            "default": "[]",
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "message"
        ],
        "type": "object"
      },
      "name": "report_bug"
    },
    {
      "description": "Show the current MCP platform and adapter versions.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "show_version"
    },
    {
      "description": "Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "toolkit_info"
    }
  ]
}

What the leaf hashes

{"body":"8c0567a0ce80430ec733e5b8f6b0079797f6c2711701d0e105fd0fcc306a1b36","id":259614,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793030998212012,"prev":null,"subject":"f5382d0b-ff95-4147-8bcf-86f95a335111","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).

  1. 0xa62aeed6b24736198c1b14469834a0b3951dda9b942664c2104926f111dd7d94
  2. 0x694e9b3d4980441bdc162de7a77e3ee438676c0ca26704322d2766a2cca8c971
  3. 0xc9494578716d891b803bfc6f4a2ef513337eff9e3cbb54fb9aad6b9d988b8c35
  4. 0x496a87fa86a7239b085492f6db70fa617a112a1a7967ff640d4a3f4748926ee7
  5. 0x84a335d8576add510f88073b19e265c210368d3a9d4b36a08cbae3113746dd84
  6. 0x273fb42235f491da3a39d2eef3e278435cc8fca178fb407204808f69599b5bda
  7. 0x58bc55d99abfa8e542d8db7eef653c5abe22c915bac28f3773879f1379cac373
  8. 0xe1ba96aba650821f3d9552eae51cc6c595d410d0b1248f7d91b319bd1396e862
  9. 0xb4c0b7187921a3fa9eef3519b98c8bca669a3aa7d7681abd99a70afcf0598efd
  10. 0x93c7b1ac8754236471980488e2ae86b7135fed175d7852bf9b8ef708900f060d
  11. 0xf9b4ada16aca6f9b63c09b94519008e1b94357a9d352c245023758b56b82d0b1
  12. 0x1e464fcb484a1e782f9fe44be5118a9de934eb533c96ba10fc7d20e3a3e4711c
  13. 0x292ebdce6b8d3d7ef08ad646a0fd97dee9313ab55c1a350807d9f3013794c37a
  14. 0x428106f4ae4ec142f17aebf6fa50935242f8d3f1c211cf95d6351d03d11da2b7
  15. 0x62a900133713919f4eed33d8336876b7a6d538233b8a4f3ed03b29aa44f5bad0
  16. 0x1ac20d30773e1f4f2f811540e9a99b5cca9177c9e2e029acc0d80cf3f1d11f0f
  17. 0xd21942ae3214eff88e08ab04884fd4b11958b51af9a0741b7668e2d07a2c56c9
  18. 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON