Server definition
- Hash
- sha256:3f51f7f27d9106dcae06b6123013e8f5ff20d123ebc43c52c7699ca28a6f9a47
- What it is
- What a remote MCP server returned when asked what it offers: 38 tools
The blob, as servednamed by its sha256
{
"instructions": "MCP.AI platform v0.9.358 | Adapters: astrea v1.10.0. When the user asks about the version (e.g. \"qual a versão\", \"which version\"), call the show_version tool. NEW MCPs/tools/integrations (capabilities not already in this toolkit) come from the official mcp.ai catalog: the `marketplace` tool (action=search) finds and runs them. You are not authenticated yet. Call the authenticate tool first — it will give the user a browser link to log in and copy a token. No other tools will work until authenticated.",
"tools": [
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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.",
"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"
},
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"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",
"outputSchema": null
},
{
"description": "Show the current MCP platform and adapter versions.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "show_version",
"outputSchema": null
},
{
"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",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:3f51f7f27d9106dcae06b6123013e8f5ff20d123ebc43c52c7699ca28a6f9a47 | sha256sum