{"name":"io.github.mcp-dir/astrea-mcp","slug":"mcp-dir-astrea-mcp","title":"Astrea (Aurum)","description":"Reporting and queries over Astrea (Aurum), Brazilian legal-practice software: cases per client, cale","url":"https://mcp.market/server/mcp-dir-astrea-mcp","rating":null,"grade":"B","score":80,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":31,"stars":12,"forks":1,"downloads_week":null,"last_push_at":"2026-08-30T19:38:49.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T07:45:53.279Z","last_ok_at":"2026-11-04T07:45:53.279Z","latency_ms":146},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/mcp-dir/astrea-mcp","website":null,"version":"0.1.0","remotes":[{"type":"streamable-http","url":"https://api.mcp.ai/p_astrea"}],"packages":[],"tools":[{"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: global]","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"date_from":{"type":"string"},"date_to":{"type":"string"}},"required":["date_from","date_to"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"astrea_agenda_por_cliente","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]","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"date_from":{"type":"string"},"date_to":{"type":"string"}},"required":["date_from","date_to"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"astrea_andamento_criar","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"case_id":{"type":"string"},"description":{"type":"string"},"date":{"type":"string"},"responsible_id":{"type":"string"},"case_ids":{"type":"array","items":{"type":"string"}},"responsible_ids":{"type":"array","items":{"type":"string"}}},"required":["case_id","description"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"astrea_andamentos","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"case_id":{"type":"string"},"only_manual":{"default":false,"type":"boolean"},"limit":{"default":50,"type":"number"},"case_ids":{"type":"array","items":{"type":"string"}}},"required":["case_id"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"astrea_caso_criar","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"titulo":{"type":"string"},"customer_id":{"type":"string"},"customer_nome":{"type":"string"},"qualificacao":{"type":"string"},"polo":{"type":"string"},"responsavel_id":{"type":"string"},"objeto":{"type":"string"},"valor_envolvido":{"type":"number"},"data_abertura":{"type":"string"},"tag_ids":{"type":"array","items":{"type":"string"}}},"required":["titulo"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"astrea_clientes","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"limit":{"default":30,"type":"number"},"cursor":{"type":"string"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"astrea_compromisso_criar","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"case_id":{"type":"string"},"title":{"type":"string"},"start":{"type":"string"},"end":{"type":"string"},"all_day":{"default":false,"type":"boolean"},"location":{"type":"string"},"responsible_id":{"type":"string"},"repeat":{"type":"object","properties":{"frequency":{"type":"string","enum":["daily","weekly","monthly","yearly"]},"interval":{"default":1,"type":"number"},"count":{"type":"number"},"until":{"type":"string"}},"required":["frequency"]},"case_ids":{"type":"array","items":{"type":"string"}},"responsible_ids":{"type":"array","items":{"type":"string"}}},"required":["case_id","title","start"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"astrea_compromisso_editar","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"appointment_id":{"type":"string"},"title":{"type":"string"},"start":{"type":"string"},"end":{"type":"string"},"all_day":{"type":"boolean"},"location":{"type":"string"},"responsible_id":{"type":"string"},"appointment_ids":{"type":"array","items":{"type":"string"}},"responsible_ids":{"type":"array","items":{"type":"string"}}},"required":["appointment_id"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"astrea_compromisso_excluir","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"appointment_id":{"type":"string"},"appointment_ids":{"type":"array","items":{"type":"string"}}},"required":["appointment_id"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"astrea_conta","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á.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"astrea_documento_gerar","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"model":{"type":"string"},"case_id":{"type":"string"},"title":{"type":"string"},"responsible_id":{"type":"string"},"case_ids":{"type":"array","items":{"type":"string"}},"responsible_ids":{"type":"array","items":{"type":"string"}}},"required":["model","case_id"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"astrea_documento_upload","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 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.\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\nBulk support: accepts case_ids, responsible_ids for batched execution.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"case_id":{"type":"string"},"attachments":{"type":"array","items":{"type":"object","properties":{"file_url":{"type":"string"},"file_base64":{"type":"string"},"upload_code":{"type":"string"},"file_name":{"type":"string"},"content_type":{"type":"string"}}}},"description":{"type":"string"},"responsible_id":{"type":"string"},"case_ids":{"type":"array","items":{"type":"string"}},"responsible_ids":{"type":"array","items":{"type":"string"}}},"required":["case_id","attachments"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"astrea_encerrar","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"case_ids":{"type":"array","items":{"type":"string"}},"conviction_amount":{"type":"number"},"unlink_from_court":{"default":false,"type":"boolean"}},"required":["case_ids"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"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: aplicar]","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"case_ids":{"type":"array","items":{"type":"string"}},"tag_ids":{"type":"array","items":{"type":"string"}}},"required":["case_ids","tag_ids"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"astrea_etiquetar_remover","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]","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"case_ids":{"type":"array","items":{"type":"string"}},"tag_ids":{"type":"array","items":{"type":"string"}}},"required":["case_ids","tag_ids"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"astrea_etiquetas","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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"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: despesas]\n\nBulk support: accepts case_ids for batched execution.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"case_id":{"type":"string"},"case_ids":{"type":"array","items":{"type":"string"}}},"required":["case_id"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"astrea_financeiro_honorarios","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"case_id":{"type":"string"},"case_ids":{"type":"array","items":{"type":"string"}}},"required":["case_id"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"astrea_modelos","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"astrea_processo_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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"titulo":{"type":"string"},"customer_id":{"type":"string"},"customer_nome":{"type":"string"},"qualificacao":{"type":"string"},"polo":{"type":"string"},"responsavel_id":{"type":"string"},"objeto":{"type":"string"},"valor_causa":{"type":"number"},"valor_condenacao":{"type":"number"},"numero_cnj":{"type":"string"},"tribunal":{"type":"string"},"vara":{"type":"string"},"tipo_acao":{"type":"string"},"data_distribuicao":{"type":"string"},"instancia":{"type":"number"},"tag_ids":{"type":"array","items":{"type":"string"}}},"required":["titulo"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"astrea_processo_editar","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"case_id":{"type":"string"},"objeto":{"type":"string"},"conviction_amount":{"type":"number"},"case_ids":{"type":"array","items":{"type":"string"}}},"required":["case_id"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"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: buscar]\n\nBulk support: accepts contact_ids, tag_ids for batched execution.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"numeros":{"type":"array","items":{"type":"string"}},"texto":{"type":"string"},"contact_id":{"type":"string"},"tag_id":{"type":"string"},"status":{"type":"string","enum":["Active","Inactive","Archived","All"]},"limit":{"default":30,"type":"number"},"cursor":{"type":"string"},"top_n":{"type":"number"},"contact_ids":{"type":"array","items":{"type":"string"}},"tag_ids":{"type":"array","items":{"type":"string"}}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"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: count]\n\nBulk support: accepts contact_ids, tag_ids for batched execution.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"numeros":{"type":"array","items":{"type":"string"}},"texto":{"type":"string"},"contact_id":{"type":"string"},"tag_id":{"type":"string"},"status":{"type":"string","enum":["Active","Inactive","Archived","All"]},"limit":{"default":30,"type":"number"},"cursor":{"type":"string"},"top_n":{"type":"number"},"contact_ids":{"type":"array","items":{"type":"string"}},"tag_ids":{"type":"array","items":{"type":"string"}}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"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: list]\n\nBulk support: accepts contact_ids, tag_ids for batched execution.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"numeros":{"type":"array","items":{"type":"string"}},"texto":{"type":"string"},"contact_id":{"type":"string"},"tag_id":{"type":"string"},"status":{"type":"string","enum":["Active","Inactive","Archived","All"]},"limit":{"default":30,"type":"number"},"cursor":{"type":"string"},"top_n":{"type":"number"},"contact_ids":{"type":"array","items":{"type":"string"}},"tag_ids":{"type":"array","items":{"type":"string"}}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"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: novos_por_mes]\n\nBulk support: accepts contact_ids, tag_ids for batched execution.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"numeros":{"type":"array","items":{"type":"string"}},"texto":{"type":"string"},"contact_id":{"type":"string"},"tag_id":{"type":"string"},"status":{"type":"string","enum":["Active","Inactive","Archived","All"]},"limit":{"default":30,"type":"number"},"cursor":{"type":"string"},"top_n":{"type":"number"},"contact_ids":{"type":"array","items":{"type":"string"}},"tag_ids":{"type":"array","items":{"type":"string"}}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"astrea_processos_por_cliente","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"numeros":{"type":"array","items":{"type":"string"}},"texto":{"type":"string"},"contact_id":{"type":"string"},"tag_id":{"type":"string"},"status":{"type":"string","enum":["Active","Inactive","Archived","All"]},"limit":{"default":30,"type":"number"},"cursor":{"type":"string"},"top_n":{"type":"number"},"contact_ids":{"type":"array","items":{"type":"string"}},"tag_ids":{"type":"array","items":{"type":"string"}}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"astrea_responsaveis","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"astrea_tarefa_criar","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).\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 for batched execution.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"case_id":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"responsible_id":{"type":"string"},"repeat":{"type":"object","properties":{"frequency":{"type":"string","enum":["daily","weekly","monthly","yearly"]},"interval":{"default":1,"type":"number"},"count":{"type":"number"},"until":{"type":"string"}},"required":["frequency"]},"case_ids":{"type":"array","items":{"type":"string"}},"responsible_ids":{"type":"array","items":{"type":"string"}}},"required":["case_id","description"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"astrea_tarefa_editar","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"task_id":{"type":"string"},"case_id":{"type":"string"},"description":{"type":"string"},"due_date":{"type":"string"},"responsible_id":{"type":"string"},"task_ids":{"type":"array","items":{"type":"string"}},"case_ids":{"type":"array","items":{"type":"string"}},"responsible_ids":{"type":"array","items":{"type":"string"}}},"required":["task_id","case_id"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"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: aplicar]","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"task_ids":{"type":"array","items":{"type":"string"}},"tag_ids":{"type":"array","items":{"type":"string"}}},"required":["task_ids","tag_ids"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"astrea_tarefa_etiquetar_remover","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]","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"task_ids":{"type":"array","items":{"type":"string"}},"tag_ids":{"type":"array","items":{"type":"string"}}},"required":["task_ids","tag_ids"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"astrea_tarefa_excluir","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"task_id":{"type":"string"},"case_id":{"type":"string"},"task_ids":{"type":"array","items":{"type":"string"}},"case_ids":{"type":"array","items":{"type":"string"}}},"required":["task_id","case_id"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"authenticate","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"token":{"type":"string"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"connect","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"marketplace","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"action":{"default":"search","type":"string","enum":["search","describe","install","uninstall","subscribe","cancel","resume","report_bug","request_mcp","list_tools","invoke","search_prompts","get_prompt","publish_prompt"]},"query":{"default":"","type":"string"},"mcp_id":{"default":"","type":"string"},"limit":{"default":10,"type":"number"},"tier_slug":{"default":"","type":"string"},"immediate":{"default":false,"type":"boolean"},"cancel_reason":{"type":"string","enum":["too_expensive","missing_features","switched_service","unused","customer_service","too_complex","low_quality","other"]},"cancel_comment":{"default":"","type":"string"},"message":{"default":"","type":"string"},"report_context":{"default":"","type":"string"},"conversation":{"default":"[]","type":"string"},"request_name":{"default":"","type":"string"},"request_details":{"default":"","type":"string"},"tool_id":{"default":"","type":"string"},"arguments":{"default":"{}","type":"string"},"prompt_slug":{"default":"","type":"string"},"prompt_vars":{"default":"{}","type":"string"},"prompt_category":{"default":"","type":"string"},"prompt_tool":{"default":"","type":"string"},"prompt_title":{"default":"","type":"string"},"prompt_description":{"default":"","type":"string"},"prompt_body":{"default":"","type":"string"},"prompt_targets":{"default":[],"type":"array","items":{"type":"string","enum":["claude","chatgpt","cursor","lovable"]}}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"report_bug","description":"Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"message":{"type":"string"},"context":{"default":"","type":"string"},"conversation":{"default":"[]","type":"string"}},"required":["message"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"show_version","description":"Show the current MCP platform and adapter versions.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"toolkit_info","description":"Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}}],"scan":{"score":80,"grade":"B","scanned_at":"2026-09-27T05:31:10.115Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T05:31:10.107Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1780ms"]},"poisoning":{"score":13,"max":15,"notes":["38 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 1 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 27 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"},{"id":"poison.long-description","severity":"low","component":"poisoning","title":"Unusually long tool description (over 2,000 characters)","evidence":"tool 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.…"}],"inputs":{"probes":[{"url":"https://api.mcp.ai/p_astrea","reachable":true,"authRequired":false,"latencyMs":1780,"serverInfo":{"name":"mcp-ai","version":"0.9.351"}}],"packages":[],"repo":{"found":true,"owner":"mcp-dir","repo":"astrea-mcp","archived":false,"pushedAt":"2026-08-30T19:38:49Z","stars":12,"forks":1,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/207912538?v=4","ownerCreatedAt":"2025-04-16T18:01:51Z","license":"MIT"},"icon":{"url":null,"source":"none"},"presence":{"stars":12,"forks":1,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-08-30T19:38:49.000Z","score":31}}}},"grade_history":[],"reviews":[]}