Virte
Entenda onde seu tempo vai. O Virte mede automaticamente no computador e ajuda a revisar a semana com IA em português.
This listing identifies a third-party MCP server. MCPBundles is not affiliated with, sponsored by, or endorsed by the service or its operator unless stated on this page.
https://virte.com.br/https://mcp.virte.app/api/ucp/mcpThis server may ask you to sign in when your AI client connects.
Last probed Nov 2, 2026 · mcp.virte.app
44tools discovered
Showing 25 of 44
Showing 25 of 44 tools from the public preview. Connect the server to inspect the full live tool list.
Tempo medido
consultar_tempoMostra onde foi o tempo da pessoa num período: o total de foco medido pelo Virte (cronômetro, blocos registrados e a medição automática do computador que ela confirmou), a divisão por área da vida, o tempo de cada dia e as atividades que mais tomaram tempo. Com um dia só, traz também as sessões com horário, as tarefas concluídas e o diário daquele dia. Use para qualquer pergunta sobre como a pessoa usou o tempo: quanto trabalhou ou estudou, como foi a semana, o que fez ontem, se bateu a meta diá
Description may be truncated on the public preview.
Add to workspace[
{
"name": "consultar_tempo",
"title": "Tempo medido",
"annotations": {
"readOnlyHint": true
},
"description": "Mostra onde foi o tempo da pessoa num período: o total de foco medido pelo Virte (cronômetro, blocos registrados e a medição automática do computador que ela confirmou), a divisão por área da vida, o tempo de cada dia e as atividades que mais tomaram tempo. Com um dia só, traz também as sessões com horário, as tarefas concluídas e o diário daquele dia. Use para qualquer pergunta sobre como a pessoa usou o tempo: quanto trabalhou ou estudou, como foi a semana, o que fez ontem, se bateu a meta diária. Os tempos já vêm somados pela mesma regra da tela do Virte; repita os valores sem recalcular.",
"inputSchema": {
"type": "object",
"properties": {
"de": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Primeiro dia (AAAA-MM-DD) de um período escolhido a dedo. Até 92 dias por pergunta."
},
"ate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Último dia (AAAA-MM-DD), inclusive. Sem valor, é o mesmo dia de `de`."
},
"periodo": {
"enum": [
"hoje",
"ontem",
"esta_semana",
"semana_passada",
"este_mes",
"mes_passado",
"ultimos_7_dias",
"ultimos_30_dias"
],
"type": "string",
"description": "Um período pronto. A semana começa na segunda. Ignorado quando `de` vier preenchido."
}
},
"additionalProperties": false
}
},
{
"name": "consultar_agenda",
"title": "Agenda",
"annotations": {
"readOnlyHint": true
},
"description": "Lista os compromissos da pessoa num intervalo de dias: os blocos da agenda do Virte e os eventos da agenda do Google ou do Outlook que ela conectou, com dia, horário e área. Use para \"o que eu tenho amanhã\", \"como está minha semana\" ou para achar um horário livre. Sem datas, mostra de hoje até os próximos 6 dias.",
"inputSchema": {
"type": "object",
"properties": {
"de": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Primeiro dia (AAAA-MM-DD). Sem valor, é hoje."
},
"ate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Último dia (AAAA-MM-DD), inclusive. Até 31 dias depois de `de`."
}
},
"additionalProperties": false
}
},
{
"name": "consultar_tarefas",
"title": "Tarefas abertas",
"annotations": {
"readOnlyHint": true
},
"description": "Lista as tarefas abertas da pessoa na aba Tarefas do Virte: as atrasadas, as de hoje (com a hora do lembrete, quando tem), as dos próximos dias e as sem data, cada uma com o prazo quando tem. Atrasada é a que passou do prazo, ou do dia quando não tem prazo; a tarefa com o dia no passado e o prazo pela frente aparece em hoje, igual à tela. Use para \"o que eu tenho pra fazer\", para planejar o dia ou para priorizar.",
"inputSchema": {
"type": "object",
"properties": {
"dias_a_frente": {
"type": "integer",
"maximum": 60,
"minimum": 1,
"description": "Quantos dias depois de hoje entram em \"próximas\". Sem valor, 7."
}
},
"additionalProperties": false
}
},
{
"name": "criar_tarefa",
"title": "Criar tarefa",
"annotations": {
"readOnlyHint": false
},
"description": "Cria uma tarefa na aba Tarefas do Virte, que vale pro dia inteiro e não tem hora. Use SEMPRE que a pessoa pedir algo pra fazer sem dizer hora do relógio, inclusive quando ela usar a palavra \"agenda\" (\"agenda domingo o follow up do Jonas\", \"preciso mandar a proposta amanhã\").",
"inputSchema": {
"type": "object",
"required": [
"titulo"
],
"properties": {
"quando": {
"type": "string",
"description": "Dia da tarefa em AAAA-MM-DD. Dia da semana que a pessoa falar (\"domingo\") é o próximo dia com esse nome. Sem valor, é hoje."
},
"titulo": {
"type": "string",
"description": "O texto da tarefa, curto e no infinitivo (ex.: \"Enviar a proposta\")"
}
},
"additionalProperties": false
}
},
{
"name": "criar_lembrete",
"title": "Criar lembrete com hora",
"annotations": {
"readOnlyHint": false
},
"description": "Cria uma tarefa com alarme de hora marcada. Use quando a pessoa disser \"me lembra às X\" ou der um horário.",
"inputSchema": {
"type": "object",
"required": [
"titulo"
],
"properties": {
"data": {
"type": "string",
"description": "Dia do lembrete em AAAA-MM-DD. Só quando a pessoa der um dia. Ignorado se daqui_a_minutos vier preenchido."
},
"hora": {
"type": "string",
"description": "Hora do relógio da pessoa em HH:MM de 24h (ex.: \"15:30\"), só quando ela disser uma hora marcada. Ignorado se daqui_a_minutos vier preenchido."
},
"titulo": {
"type": "string",
"description": "O que lembrar (ex.: \"Ligar pro contador\")"
},
"daqui_a_minutos": {
"type": "string",
"description": "SEMPRE use este campo quando a pessoa falar em tempo relativo (\"daqui a um minuto\", \"em meia hora\", \"daqui a 2 horas\"): mande só o número de minutos (\"1\", \"30\", \"120\") e não calcule hora nenhuma."
}
},
"additionalProperties": false
}
},
{
"name": "registrar_bloco",
"title": "Registrar tempo já vivido",
"annotations": {
"readOnlyHint": false
},
"description": "Grava no dia da pessoa um bloco de tempo já vivido (\"fiz X de tal hora a tal hora\"). Vira uma sessão medida no Virte.",
"inputSchema": {
"type": "object",
"required": [
"nome",
"inicio",
"fim"
],
"properties": {
"fim": {
"type": "string",
"description": "Fim local em HH:MM de 24h, depois do início"
},
"area": {
"type": "string",
"description": "A área da vida, batendo com uma categoria existente (ex.: \"TRABALHO\"). Opcional."
},
"data": {
"type": "string",
"description": "Dia em AAAA-MM-DD. Sem valor, é hoje."
},
"nome": {
"type": "string",
"description": "O que a pessoa fez (ex.: \"Gravação do pitch\")"
},
"inicio": {
"type": "string",
"description": "Início local em HH:MM de 24h"
}
},
"additionalProperties": false
}
},
{
"name": "registrar_gasto",
"title": "Registrar dinheiro",
"annotations": {
"readOnlyHint": false
},
"description": "Anota na aba Finanças do Virte um dinheiro que saiu ou que entrou (\"gastei 42 no uber\", \"recebi 300 do freela\", \"paguei 89,90 de internet\", \"comprei um tênis de 600 em 3 vezes no Nubank\"). Use sempre que a pessoa falar de dinheiro gasto ou recebido, inclusive no cartão, numa conta ou parcelado.",
"inputSchema": {
"type": "object",
"required": [
"valor"
],
"properties": {
"area": {
"type": "string",
"description": "A área da vida, batendo com uma categoria existente (ex.: \"TRANSPORTE\"). Opcional."
},
"data": {
"type": "string",
"description": "Dia em AAAA-MM-DD. Sem valor, é hoje."
},
"tipo": {
"type": "string",
"description": "\"gasto\" quando o dinheiro saiu, \"ganho\" quando entrou. Sem valor, é gasto."
},
"conta": {
"type": "string",
"description": "A conta de onde o dinheiro saiu ou pra onde entrou, batendo com a lista de contas dela (ex.: \"Itaú\"). Opcional."
},
"valor": {
"type": "string",
"description": "Quanto foi, em REAIS, do jeito que ela falou (\"42\", \"42,50\", \"1.200,00\"). Nunca mande em centavos e nunca multiplique nada. Compra parcelada vai com o valor TOTAL: \"3 vezes de 100\" é \"300\"."
},
"cartao": {
"type": "string",
"description": "O cartão de crédito, quando ela disser que foi no cartão, batendo com a lista de cartões dela (ex.: \"Nubank\"). \"No cartão\" sem nome vai como \"cartão\". Opcional."
},
"parcelas": {
"type": "string",
"description": "Em quantas vezes foi a compra, só quando for parcelada (\"em 3 vezes\" é \"3\"). Sem valor, é à vista."
},
"categoria": {
"type": "string",
"description": "A categoria de gasto ou ganho dela, batendo com a lista de categorias (ex.: \"Mercado\", \"Transporte\"). Opcional."
},
"descricao": {
"type": "string",
"description": "Em que foi o dinheiro, curto e com as palavras dela (ex.: \"uber\", \"mercado\", \"freela\")"
}
},
"additionalProperties": false
}
},
{
"name": "agendar_atividade",
"title": "Agendar compromisso",
"annotations": {
"readOnlyHint": false
},
"description": "Marca uma atividade no FUTURO na agenda do dia, com hora de início e de fim (ex.: \"agenda academia amanhã das 7 às 8\"). Use SÓ quando a pessoa disser a hora: sem hora dita é criar_tarefa, e inventar hora aqui é recusado. Pra tempo que já passou, use registrar_bloco.",
"inputSchema": {
"type": "object",
"required": [
"nome",
"inicio",
"fim"
],
"properties": {
"fim": {
"type": "string",
"description": "Hora de fim, local, em HH:MM de 24h"
},
"area": {
"type": "string",
"description": "A área da vida, batendo com uma categoria existente (ex.: \"TREINO\"). Opcional."
},
"data": {
"type": "string",
"description": "Dia em AAAA-MM-DD. Sem valor, é hoje."
},
"nome": {
"type": "string",
"description": "O que vai acontecer (ex.: \"Academia\")"
},
"inicio": {
"type": "string",
"description": "Hora de início, local, em HH:MM de 24h"
}
},
"additionalProperties": false
}
},
{
"name": "cancelar_atividade",
"title": "Apagar compromisso",
"annotations": {
"readOnlyHint": false
},
"description": "Apaga um compromisso ou bloco da agenda do Virte, hoje ou no futuro. Use quando a pessoa pedir pra cancelar, apagar, remover ou desmarcar algo da agenda. Apagar não tem desfazer, então a primeira chamada volta com uma pergunta pra confirmar. Se mais de um compromisso servir para o nome, nenhum é apagado e a resposta traz as opções com o dia e a hora: pergunte qual e chame de novo com o id do escolhido. Isto não volta atrás: pergunte à pessoa antes e só então chame com confirmar=\"sim\".",
"inputSchema": {
"type": "object",
"required": [
"nome",
"confirmar"
],
"properties": {
"id": {
"type": "string",
"description": "O id do compromisso, só quando a resposta anterior trouxe opções e a pessoa escolheu uma delas"
},
"data": {
"type": "string",
"description": "Dia do compromisso em AAAA-MM-DD, só quando ela disser um dia certo. Sem valor, busca de hoje em diante."
},
"nome": {
"type": "string",
"description": "O nome do compromisso a apagar, como está na agenda dela (ou um pedaço do nome)"
},
"confirmar": {
"enum": [
"sim"
],
"type": "string",
"description": "Mande \"sim\" depois que a pessoa confirmar."
}
},
"additionalProperties": false
}
},
{
"name": "concluir_tarefa",
"title": "Concluir tarefa",
"annotations": {
"readOnlyHint": false
},
"description": "Marca uma tarefa aberta como concluída. Use quando a pessoa disser que fez, terminou ou concluiu algo que está na lista dela. Se mais de uma tarefa aberta servir para o nome, nenhuma é concluída e a resposta traz as opções: pergunte qual e chame de novo com o id da escolhida.",
"inputSchema": {
"type": "object",
"required": [
"titulo"
],
"properties": {
"id": {
"type": "string",
"description": "O id da tarefa, só quando a resposta anterior trouxe opções e a pessoa escolheu uma delas"
},
"titulo": {
"type": "string",
"description": "O título da tarefa como aparece na lista (ou um pedaço dele)"
}
},
"additionalProperties": false
}
},
{
"name": "consultar_dinheiro",
"title": "Dinheiro",
"annotations": {
"readOnlyHint": true
},
"description": "Lê o dinheiro que a pessoa registrou: quanto gastou, quanto entrou, quanto sobrou e quanto falta do teto. Use pra \"quanto gastei esse mês\", \"quanto gastei em transporte\", \"quanto entrou\" e \"quanto falta do meu teto\". Só lê, não grava nada.",
"inputSchema": {
"type": "object",
"required": [],
"properties": {
"area": {
"type": "string",
"description": "A área da vida, quando ela perguntar de uma só (ex.: TRANSPORTE). Opcional."
},
"periodo": {
"type": "string",
"description": "O que olhar: \"mes\" (padrão) ou \"hoje\"."
}
},
"additionalProperties": false
}
},
{
"name": "procurar_pessoa",
"title": "Achar o e-mail de alguém",
"annotations": {
"readOnlyHint": true
},
"description": "Acha o e-mail de alguém nas reuniões que a pessoa já teve. Use SEMPRE antes de agendar_reuniao, pra descobrir o endereço de quem vai ser convidado. Só lê, não marca nada e não manda nada pra ninguém.",
"inputSchema": {
"type": "object",
"required": [
"nome"
],
"properties": {
"nome": {
"type": "string",
"description": "Como ela chamou a pessoa (ex.: \"Luana\", \"Rafael da Signal\")"
}
},
"additionalProperties": false
}
},
{
"name": "agendar_reuniao",
"title": "Marcar reunião e mandar o convite",
"annotations": {
"readOnlyHint": false
},
"description": "Marca uma reunião com uma ou mais pessoas na agenda dela. Quem escreve o nome da reunião é o app, juntando o primeiro nome de quem convida, o sinal <> e o primeiro nome de quem foi convidado, então mande em \"pessoa\" o nome de quem vai e não invente título. A hora de terminar é obrigatória: se ela não disse até que horas vai, pergunte antes de chamar (sem fim a chamada volta com precisa_perguntar e não marca nada). Convite pra outra gente não volta atrás, então a primeira chamada volta com uma pergunta pra confirmar em voz alta, e essa pergunta avisa se o horário já tem compromisso. O e-mail vem de procurar_pessoa ou ditado por ela. Link de vídeo entra sozinho; encontro ao vivo (almoço, café, escritório) vai com presencial=\"sim\". Isto não volta atrás: pergunte à pessoa antes e só então chame com confirmar=\"sim\".",
"inputSchema": {
"type": "object",
"required": [
"email",
"inicio",
"confirmar"
],
"properties": {
"fim": {
"type": "string",
"description": "Hora de fim, local, em HH:MM de 24h. Obrigatória: sem ela nada é marcado, pergunte até que horas vai."
},
"area": {
"type": "string",
"description": "A área da vida, batendo com uma categoria existente (ex.: \"TRABALHO\"). Opcional."
},
"data": {
"type": "string",
"description": "Dia em AAAA-MM-DD. Sem valor, é hoje."
},
"email": {
"type": "string",
"description": "O e-mail de quem vai ser convidado, endereço completo. Mais de uma pessoa, separados por vírgula."
},
"local": {
"type": "string",
"description": "Onde vai ser, quando ela disser. Só com presencial=\"sim\"."
},
"pauta": {
"type": "string",
"description": "A pauta do convite, SÓ quando ela mandar pôr pauta ou assunto no convite. Sem pedido, deixe vazio."
},
"inicio": {
"type": "string",
"description": "Hora de início, local, em HH:MM de 24h"
},
"pessoa": {
"type": "string",
"description": "O nome de quem vai ser convidado, do jeito que ela falou (\"Marina\"). Mais de uma pessoa, separadas por vírgula, na ordem dos e-mails."
},
"titulo": {
"type": "string",
"description": "Só quando ela ditar o nome da reunião com todas as letras. Vazio, o app monta o padrão."
},
"confirmar": {
"enum": [
"sim"
],
"type": "string",
"description": "Mande \"sim\" depois que a pessoa confirmar."
},
"presencial": {
"type": "string",
"description": "\"sim\" quando o encontro é ao vivo: o convite sai sem link de vídeo."
}
},
"additionalProperties": false
}
},
{
"name": "iniciar_sessao",
"title": "Ligar o cronômetro",
"annotations": {
"readOnlyHint": false
},
"description": "Liga o cronômetro do Virte numa sessão de foco agora. Use quando a pessoa disser que vai começar a trabalhar ou estudar em algo.",
"inputSchema": {
"type": "object",
"required": [
"nome",
"area"
],
"properties": {
"area": {
"type": "string",
"description": "A área da vida, batendo com uma categoria existente (ex.: \"TRABALHO\")"
},
"nome": {
"type": "string",
"description": "O nome da sessão (ex.: \"Escrever o pitch\")"
}
},
"additionalProperties": false
}
},
{
"name": "concluir_sessao",
"title": "Parar o cronômetro",
"annotations": {
"readOnlyHint": false
},
"description": "Encerra a sessão de foco que está rodando no cronômetro e grava ela no dia.",
"inputSchema": {
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}
},
{
"name": "criar_area",
"title": "Criar área da vida",
"annotations": {
"readOnlyHint": false
},
"description": "Cria uma área da vida nova no cronômetro (as áreas são TRABALHO, ESTUDO, SAÚDE e afins; a pessoa também chama de categoria). Use quando a pessoa disser que quer medir um pedaço da vida que ainda não tem área.",
"inputSchema": {
"type": "object",
"required": [
"nome"
],
"properties": {
"cor": {
"type": "string",
"description": "A cor que a pessoa pediu, convertida em #RRGGBB (ex.: verde pistache vira \"#93C572\"). Sem cor pedida, deixe de fora."
},
"nome": {
"type": "string",
"description": "O nome da área (ex.: \"Academia\")"
}
},
"additionalProperties": false
}
},
{
"name": "criar_atalho",
"title": "Criar atalho de atividade",
"annotations": {
"readOnlyHint": false
},
"description": "Cria um atalho de atividade (a pessoa também chama de tag) dentro de uma área do cronômetro, pra ela começar essa sessão num toque depois. Use quando ela pedir uma tag ou um atalho novo.",
"inputSchema": {
"type": "object",
"required": [
"nome"
],
"properties": {
"area": {
"type": "string",
"description": "A área onde o atalho mora, batendo com uma área existente (ex.: \"SAÚDE\"). Sem área, ele nasce em LIVRE."
},
"nome": {
"type": "string",
"description": "O nome do atalho (ex.: \"Musculação\")"
}
},
"additionalProperties": false
}
},
{
"name": "buscar_notas",
"title": "Buscar no cofre de notas",
"annotations": {
"readOnlyHint": true
},
"description": "Busca no cofre de notas pessoal (os arquivos do Obsidian, no computador dela) e devolve os trechos achados. Use pra perguntas sobre a vida, os planos ou o que a pessoa escreveu. Só responde com o computador dela ligado e com o Virte aberto.",
"inputSchema": {
"type": "object",
"required": [
"termo"
],
"properties": {
"termo": {
"type": "string",
"description": "A palavra ou expressão a procurar nas notas"
}
},
"additionalProperties": false
}
},
{
"name": "como_faco",
"title": "Ajuda do Virte",
"annotations": {
"readOnlyHint": true
},
"description": "Consulta o manual do Virte e devolve como se faz alguma coisa NO APP (criar área, criar subtag, mudar a meta, cancelar assinatura, conectar agenda, e assim por diante). Use SEMPRE que a pessoa perguntar onde fica ou como se usa alguma parte do app, e nunca responda isso de cabeça.",
"inputSchema": {
"type": "object",
"required": [
"pergunta"
],
"properties": {
"pergunta": {
"type": "string",
"description": "A dúvida com as palavras que a pessoa usou"
}
},
"additionalProperties": false
}
},
{
"name": "consultar_computador",
"title": "Programas e sites medidos",
"annotations": {
"readOnlyHint": true
},
"description": "Mostra o que o medidor do Virte viu no computador e no celular da pessoa num período: os programas e sites que mais tomaram tempo, o tempo em uso e o tempo parado. Use para \"em que eu gastei o tempo no computador\", \"quanto tempo fiquei no Instagram\" ou \"quais sites me distraem\". É o tempo do aparelho, que pode ser maior que o foco medido.",
"inputSchema": {
"type": "object",
"properties": {
"de": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Primeiro dia (AAAA-MM-DD). Sem valor, são os últimos 7 dias."
},
"ate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Último dia (AAAA-MM-DD). Até 31 dias por pergunta."
}
},
"additionalProperties": false
}
},
{
"name": "consultar_habitos",
"title": "Hábitos",
"annotations": {
"readOnlyHint": true
},
"description": "Lista os hábitos ativos da pessoa, se cada um estava previsto para hoje, se já foi marcado hoje e quantos dias ela marcou no período. Use para \"como estão meus hábitos\" ou \"já fiz meu treino hoje?\".",
"inputSchema": {
"type": "object",
"properties": {
"desde": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Dia em que a contagem começa. Sem valor, os últimos 7 dias."
}
},
"additionalProperties": false
}
},
{
"name": "marcar_habito",
"title": "Marcar hábito",
"annotations": {
"readOnlyHint": false
},
"description": "Marca um hábito como feito (ou desmarca) num dia. Use quando a pessoa disser que fez o hábito, como em \"já treinei hoje\" ou \"marca a leitura de ontem\". Se mais de um hábito servir, nada muda e a resposta traz as opções: pergunte à pessoa qual e chame de novo com o id da opção escolhida.",
"inputSchema": {
"type": "object",
"required": [
"habito"
],
"properties": {
"id": {
"type": "string",
"description": "O id da opção que a pessoa escolheu, só quando a resposta anterior trouxe opções."
},
"data": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Dia do hábito. Sem valor, hoje."
},
"feito": {
"enum": [
"sim",
"nao"
],
"type": "string",
"description": "Sem valor, marca como feito. \"nao\" desmarca."
},
"habito": {
"type": "string",
"description": "O nome do hábito como está no Virte (ou um pedaço dele)."
},
"quanto": {
"type": "string",
"description": "Quanto foi, quando o hábito tem medida (páginas, quilômetros). Opcional."
}
},
"additionalProperties": false
}
},
{
"name": "consultar_metas",
"title": "Metas",
"annotations": {
"readOnlyHint": true
},
"description": "Lista as metas da pessoa no período corrente: da semana, do mês, do trimestre e do ano, com o alvo de cada uma e se já foi concluída. A meta de horas de um período maior também aparece nos menores com a parte daquele período (o que falta dividido pelos períodos que faltam), marcada em parte_de. Use para \"quais são minhas metas\" ou \"como está minha meta do mês\".",
"inputSchema": {
"type": "object",
"properties": {
"periodo": {
"enum": [
"semana",
"mes",
"trimestre",
"ano"
],
"type": "string",
"description": "Um horizonte só. Sem valor, traz os quatro."
}
},
"additionalProperties": false
}
},
{
"name": "consultar_diario",
"title": "Diário",
"annotations": {
"readOnlyHint": true
},
"description": "Lê o diário que a pessoa escreveu num período, com o que aconteceu, os erros, os acertos e as lições de cada dia, e aceita uma palavra para procurar. Use para \"o que eu escrevi sobre a reunião\" ou \"o que deu errado essa semana\".",
"inputSchema": {
"type": "object",
"properties": {
"de": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Primeiro dia. Sem valor, os últimos 7 dias."
},
"ate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Último dia. Até 92 dias por pergunta."
},
"termo": {
"type": "string",
"description": "Palavra a procurar no texto. Opcional."
}
},
"additionalProperties": false
}
},
{
"name": "escrever_diario",
"title": "Escrever no diário",
"annotations": {
"readOnlyHint": false
},
"description": "Escreve no diário de um dia, em um ou mais campos: o que aconteceu, erros, acertos e lições. O texto entra embaixo do que já estava escrito, sem apagar nada. Use quando a pessoa contar o dia e pedir para registrar.",
"inputSchema": {
"type": "object",
"properties": {
"data": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Dia do diário. Sem valor, hoje."
},
"erros": {
"type": "string",
"maxLength": 4000
},
"licoes": {
"type": "string",
"maxLength": 4000
},
"acertos": {
"type": "string",
"maxLength": 4000
},
"o_que_aconteceu": {
"type": "string",
"maxLength": 4000
}
},
"additionalProperties": false
}
},
{
"name": "consultar_revisao_da_semana",
"title": "Revisão da semana",
"annotations": {
"readOnlyHint": true
},
"description": "Traz a revisão semanal: o que a pessoa escreveu no fechamento da semana e o que a análise do Virte apontou (resumo, padrões, alertas e o foco da semana seguinte). Use para \"como foi minha revisão\" ou \"o que o Virte falou da minha semana\".",
"inputSchema": {
"type": "object",
"properties": {
"semana": {
"type": "string",
"description": "A semana: \"passada\", ou uma data qualquer dentro dela (AAAA-MM-DD). Sem valor, a semana atual."
}
},
"additionalProperties": false
}
},
{
"name": "consultar_notas",
"title": "Notas rápidas",
"annotations": {
"readOnlyHint": true
},
"description": "Lê as notas rápidas da pessoa, das mais recentes para as mais antigas, e aceita uma palavra para procurar. Nota trancada com a senha dela não é lida, e a resposta avisa quantas são.",
"inputSchema": {
"type": "object",
"properties": {
"termo": {
"type": "string",
"description": "Palavra a procurar. Opcional."
},
"quantas": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Quantas notas trazer. Sem valor, 20."
}
},
"additionalProperties": false
}
},
{
"name": "escrever_nota",
"title": "Escrever nota rápida",
"annotations": {
"readOnlyHint": false
},
"description": "Guarda uma nota rápida no Virte. Use quando a pessoa pedir para anotar uma ideia ou um lembrete solto.",
"inputSchema": {
"type": "object",
"required": [
"texto"
],
"properties": {
"texto": {
"type": "string",
"maxLength": 5000,
"minLength": 1,
"description": "O texto da nota, com as palavras dela."
}
},
"additionalProperties": false
}
},
{
"name": "apagar_tarefa",
"title": "Apagar tarefa",
"annotations": {
"readOnlyHint": false
},
"description": "Apaga uma tarefa da lista da pessoa, aberta ou já concluída, achando pelo nome. Use quando ela pedir para apagar, remover ou excluir uma tarefa. As subtarefas dela somem junto. Se mais de uma tarefa servir, nada muda e a resposta traz as opções: pergunte à pessoa qual e chame de novo com o id da opção escolhida. Isto não volta atrás: pergunte à pessoa antes e só então chame com confirmar=\"sim\".",
"inputSchema": {
"type": "object",
"required": [
"tarefa",
"confirmar"
],
"properties": {
"id": {
"type": "string",
"description": "O id da opção que a pessoa escolheu, só quando a resposta anterior trouxe opções."
},
"tarefa": {
"type": "string",
"description": "O nome da tarefa como está no Virte (ou um pedaço dele)."
},
"confirmar": {
"enum": [
"sim"
],
"type": "string",
"description": "Mande \"sim\" depois que a pessoa confirmar."
}
},
"additionalProperties": false
}
},
{
"name": "editar_tarefa",
"title": "Corrigir tarefa",
"annotations": {
"readOnlyHint": false
},
"description": "Muda uma tarefa que já existe: o título, o dia planejado, o prazo, a hora do lembrete, ou reabre uma tarefa concluída. O dia é a coluna em que a tarefa aparece na aba Tarefas; o prazo é quando ela vence. Use para \"adia aquela tarefa pra sexta\" (dia), \"o prazo do relatório passou pro dia 30\" (prazo), \"tira o lembrete\" ou \"ainda não terminei aquilo\". Se mais de uma tarefa servir, nada muda e a resposta traz as opções: pergunte à pessoa qual e chame de novo com o id da opção escolhida.",
"inputSchema": {
"type": "object",
"required": [
"tarefa"
],
"properties": {
"id": {
"type": "string",
"description": "O id da opção que a pessoa escolheu, só quando a resposta anterior trouxe opções."
},
"data": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "O novo dia planejado, a coluna em que a tarefa aparece. Não mexe no prazo. Opcional."
},
"hora": {
"type": "string",
"description": "A hora do lembrete, em HH:MM. Opcional."
},
"prazo": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "O novo prazo, o dia em que a tarefa vence. Use quando ela falar em prazo, vencimento ou entrega. Opcional."
},
"tarefa": {
"type": "string",
"description": "O nome da tarefa a mudar (ou um pedaço dele)."
},
"reabrir": {
"enum": [
"sim"
],
"type": "string",
"description": "Volta uma tarefa concluída para a lista de abertas."
},
"tirar_hora": {
"enum": [
"sim"
],
"type": "string",
"description": "Tira o lembrete, deixando a tarefa sem hora."
},
"novo_titulo": {
"type": "string",
"description": "O novo nome da tarefa. Opcional."
},
"tirar_prazo": {
"enum": [
"sim"
],
"type": "string",
"description": "Tira o prazo da tarefa."
}
},
"additionalProperties": false
}
},
{
"name": "apagar_bloco",
"title": "Apagar bloco de tempo",
"annotations": {
"readOnlyHint": false
},
"description": "Apaga um bloco de tempo que já passou, achando pelo nome e, se ela disser, pelo dia. Use quando a pessoa disser que aquele tempo não vale, que o cronômetro ficou ligado à toa ou que o bloco está duplicado. Para compromisso futuro, use cancelar_atividade. Se mais de um bloco servir, nada muda e a resposta traz as opções: pergunte à pessoa qual e chame de novo com o id da opção escolhida. Isto não volta atrás: pergunte à pessoa antes e só então chame com confirmar=\"sim\".",
"inputSchema": {
"type": "object",
"required": [
"nome",
"confirmar"
],
"properties": {
"id": {
"type": "string",
"description": "O id da opção que a pessoa escolheu, só quando a resposta anterior trouxe opções."
},
"data": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "O dia do bloco. Sem valor, procura nos últimos 30 dias."
},
"nome": {
"type": "string",
"description": "O nome do bloco como está no Virte (ou um pedaço dele)."
},
"confirmar": {
"enum": [
"sim"
],
"type": "string",
"description": "Mande \"sim\" depois que a pessoa confirmar."
}
},
"additionalProperties": false
}
},
{
"name": "editar_bloco",
"title": "Corrigir bloco de tempo",
"annotations": {
"readOnlyHint": false
},
"description": "Corrige um bloco de tempo que já está no Virte: a área da vida, o nome e os horários. Use para \"aquele bloco da tarde era Estudo\", \"comecei às 14h, não às 15h\" ou para dar área a um tempo que o computador mediu sozinho, que passa a contar como foco. Se mais de um bloco servir, nada muda e a resposta traz as opções: pergunte à pessoa qual e chame de novo com o id da opção escolhida.",
"inputSchema": {
"type": "object",
"required": [
"nome"
],
"properties": {
"id": {
"type": "string",
"description": "O id da opção que a pessoa escolheu, só quando a resposta anterior trouxe opções."
},
"fim": {
"type": "string",
"description": "A hora de fim, em HH:MM. Opcional."
},
"area": {
"type": "string",
"description": "A área da vida, com o nome que ela usa no Virte. Opcional."
},
"data": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "O dia do bloco. Sem valor, procura nos últimos 30 dias."
},
"nome": {
"type": "string",
"description": "O nome do bloco a corrigir (ou um pedaço dele)."
},
"inicio": {
"type": "string",
"description": "A hora de início, em HH:MM. Opcional."
},
"novo_nome": {
"type": "string",
"description": "O novo nome do bloco. Opcional."
}
},
"additionalProperties": false
}
},
{
"name": "apagar_lancamento",
"title": "Apagar lançamento de dinheiro",
"annotations": {
"readOnlyHint": false
},
"description": "Apaga um gasto ou um ganho que está nas Finanças, achando pela descrição e, se ela disser, pelo dia. Use quando a pessoa disser que lançou errado ou duplicado. Parcela apagada não leva as outras junto. Se mais de um lançamento servir, nada muda e a resposta traz as opções: pergunte à pessoa qual e chame de novo com o id da opção escolhida. Isto não volta atrás: pergunte à pessoa antes e só então chame com confirmar=\"sim\".",
"inputSchema": {
"type": "object",
"required": [
"descricao",
"confirmar"
],
"properties": {
"id": {
"type": "string",
"description": "O id da opção que a pessoa escolheu, só quando a resposta anterior trouxe opções."
},
"data": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "O dia do lançamento. Sem valor, procura nos últimos 3 meses."
},
"confirmar": {
"enum": [
"sim"
],
"type": "string",
"description": "Mande \"sim\" depois que a pessoa confirmar."
},
"descricao": {
"type": "string",
"description": "A descrição do lançamento como está no Virte (ou um pedaço dela)."
}
},
"additionalProperties": false
}
},
{
"name": "apagar_nota",
"title": "Apagar nota rápida",
"annotations": {
"readOnlyHint": false
},
"description": "Apaga uma nota rápida, achando pelo texto dela. Nota trancada com a senha da pessoa não é lida nem apagada por aqui. Se mais de uma nota servir, nada muda e a resposta traz as opções: pergunte à pessoa qual e chame de novo com o id da opção escolhida. Isto não volta atrás: pergunte à pessoa antes e só então chame com confirmar=\"sim\".",
"inputSchema": {
"type": "object",
"required": [
"termo",
"confirmar"
],
"properties": {
"id": {
"type": "string",
"description": "O id da opção que a pessoa escolheu, só quando a resposta anterior trouxe opções."
},
"termo": {
"type": "string",
"description": "Um pedaço do texto da nota."
},
"confirmar": {
"enum": [
"sim"
],
"type": "string",
"description": "Mande \"sim\" depois que a pessoa confirmar."
}
},
"additionalProperties": false
}
},
{
"name": "pausar_cronometro",
"title": "Pausar o cronômetro",
"annotations": {
"readOnlyHint": false
},
"description": "Pausa o cronômetro que a pessoa ligou. O trecho feito até agora vira bloco do dia e o relógio congela até ela retomar. Use para \"pausa o cronômetro\" ou \"vou parar um pouco\". Para encerrar a sessão de vez, use concluir_sessao.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
},
{
"name": "retomar_cronometro",
"title": "Retomar o cronômetro",
"annotations": {
"readOnlyHint": false
},
"description": "Retoma o cronômetro pausado, continuando a mesma sessão. Use para \"volta o cronômetro\" ou \"voltei\".",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
},
{
"name": "criar_habito",
"title": "Criar hábito",
"annotations": {
"readOnlyHint": false
},
"description": "Cria um hábito novo no Virte, com os dias em que ele vale e, se a pessoa disser, quanto por dia. Use para \"quero começar a ler 20 páginas por dia\" ou \"cria o hábito de correr seg, qua e sex\".",
"inputSchema": {
"type": "object",
"required": [
"nome"
],
"properties": {
"dias": {
"type": "string",
"description": "\"todo dia\", \"dias úteis\", \"fim de semana\" ou uma lista como \"seg, qua, sex\". Sem valor, todo dia."
},
"nome": {
"type": "string",
"description": "O nome do hábito, com as palavras dela."
},
"unidade": {
"type": "string",
"description": "A unidade da quantidade (páginas, km, copos). Opcional."
},
"quanto_por_dia": {
"type": "string",
"description": "A quantidade por dia, quando o hábito tem medida (20, 5). Opcional."
}
},
"additionalProperties": false
}
},
{
"name": "editar_habito",
"title": "Mudar hábito",
"annotations": {
"readOnlyHint": false
},
"description": "Muda um hábito que já existe: o nome, os dias, a quantidade por dia, ou arquiva e reativa. Arquivar tira o hábito das listas e guarda as marcações. Use para \"o treino agora é só dias úteis\" ou \"para de me cobrar a meditação\".",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "O id da opção que a pessoa escolheu, quando a primeira chamada devolveu opções."
},
"dias": {
"type": "string",
"description": "\"todo dia\", \"dias úteis\", \"fim de semana\" ou \"seg, qua, sex\". Opcional."
},
"habito": {
"type": "string",
"description": "O nome do hábito como está no Virte (ou um pedaço dele)."
},
"unidade": {
"type": "string",
"description": "A unidade da quantidade. Opcional."
},
"arquivar": {
"enum": [
"sim"
],
"type": "string",
"description": "Tira o hábito das listas, guardando o histórico."
},
"reativar": {
"enum": [
"sim"
],
"type": "string",
"description": "Volta um hábito arquivado."
},
"novo_nome": {
"type": "string",
"description": "O nome novo. Opcional."
},
"quanto_por_dia": {
"type": "string",
"description": "A quantidade nova por dia. Opcional."
}
},
"additionalProperties": false
}
},
{
"name": "criar_meta",
"title": "Criar meta",
"annotations": {
"readOnlyHint": false
},
"description": "Cria uma meta da semana, do mês, do trimestre ou do ano, do mesmo jeito da tela de Metas: horas numa área (conta sozinha pelo tempo medido), um número de vezes, ou só feita ou não feita. A meta simples vira tarefa também, com prazo no último dia do período. Use para \"minha meta da semana é estudar 10 horas\" ou \"meta do mês: fechar 3 clientes\".",
"inputSchema": {
"type": "object",
"required": [
"titulo"
],
"properties": {
"area": {
"type": "string",
"description": "A área da vida em que as horas contam. Opcional."
},
"horas": {
"type": "string",
"description": "Quantas horas, para meta de tempo. Precisa da área. Opcional."
},
"vezes": {
"type": "integer",
"minimum": 1,
"description": "Quantas vezes, para meta de frequência. Opcional."
},
"titulo": {
"type": "string",
"description": "A meta, com as palavras dela."
},
"periodo": {
"enum": [
"semana",
"mes",
"trimestre",
"ano"
],
"type": "string",
"description": "Sem valor, a semana."
}
},
"additionalProperties": false
}
},
{
"name": "editar_meta",
"title": "Mudar meta",
"annotations": {
"readOnlyHint": false
},
"description": "Muda o título de uma meta ou marca como concluída (ou não concluída). Use para \"bati a meta de leitura\" ou \"renomeia a meta do mês\".",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "O id da opção que a pessoa escolheu, quando a primeira chamada devolveu opções."
},
"meta": {
"type": "string",
"description": "O título da meta como está no Virte (ou um pedaço dele)."
},
"concluida": {
"enum": [
"sim",
"nao"
],
"type": "string",
"description": "Marca como concluída ou volta para em aberto."
},
"novo_titulo": {
"type": "string",
"description": "O título novo. Opcional."
}
},
"additionalProperties": false
}
},
{
"name": "consultar_ofensiva",
"title": "Ofensiva e liga da semana",
"annotations": {
"readOnlyHint": true
},
"description": "Mostra a ofensiva da pessoa (quantos dias seguidos ela abriu o Virte e se já abriu hoje) e a liga da semana com os amigos dela no Virte, com o tempo de cada um e a posição dela. Use para \"quantos dias seguidos eu tenho?\" ou \"como estou na liga?\".",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
},
{
"name": "escrever_revisao_da_semana",
"title": "Escrever a revisão da semana",
"annotations": {
"readOnlyHint": false
},
"description": "Escreve na revisão semanal, nos campos da tela: o que aconteceu, erros, acertos, lições, a intenção da semana seguinte e o que fazer diferente, mais a nota de 1 a 10 e o fechamento. O texto entra embaixo do que ela já escreveu. Use quando a pessoa fizer a revisão conversando.",
"inputSchema": {
"type": "object",
"properties": {
"nota": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "A nota que ela dá para a semana."
},
"erros": {
"type": "string",
"maxLength": 4000
},
"fechar": {
"enum": [
"sim"
],
"type": "string",
"description": "Marca a revisão como concluída."
},
"licoes": {
"type": "string",
"maxLength": 4000
},
"semana": {
"type": "string",
"description": "A semana: \"passada\" ou uma data dentro dela (AAAA-MM-DD). Sem valor, a semana atual."
},
"acertos": {
"type": "string",
"maxLength": 4000
},
"o_que_aconteceu": {
"type": "string",
"maxLength": 4000
},
"intencao_da_proxima": {
"type": "string",
"maxLength": 4000
},
"o_que_fazer_diferente": {
"type": "string",
"maxLength": 4000
}
},
"additionalProperties": false
}
},
{
"name": "editar_lancamento",
"title": "Corrigir lançamento de dinheiro",
"annotations": {
"readOnlyHint": false
},
"description": "Corrige um gasto ou ganho que já está nas Finanças: o valor, a descrição, o dia ou a categoria. Use para \"o mercado foi 180, não 150\" ou \"aquele uber era de ontem\".",
"inputSchema": {
"type": "object",
"required": [
"descricao"
],
"properties": {
"id": {
"type": "string",
"description": "O id da opção que a pessoa escolheu, quando a primeira chamada devolveu opções."
},
"data": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "O dia do lançamento. Sem valor, procura nos últimos 3 meses."
},
"novo_dia": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "O dia certo. Opcional."
},
"categoria": {
"type": "string",
"description": "A categoria certa, como está nas Finanças. Opcional."
},
"descricao": {
"type": "string",
"description": "A descrição do lançamento como está no Virte (ou um pedaço dela)."
},
"novo_valor": {
"type": "string",
"description": "O valor certo, em reais. Opcional."
},
"nova_descricao": {
"type": "string",
"description": "A descrição certa. Opcional."
}
},
"additionalProperties": false
}
},
{
"name": "remarcar_compromisso",
"title": "Remarcar compromisso",
"annotations": {
"readOnlyHint": false
},
"description": "Muda o horário, o dia, o nome ou a área de um compromisso que ainda vai acontecer, e muda também no Google ou no Outlook quando ele está lá. Use para \"passa a reunião das 14h pras 16h\" ou \"joga o dentista pra sexta\". Compromisso com outros convidados avisa todos eles, então nesse caso a ferramenta pede confirmar=\"sim\" antes.",
"inputSchema": {
"type": "object",
"required": [
"nome"
],
"properties": {
"id": {
"type": "string",
"description": "O id da opção que a pessoa escolheu, quando a primeira chamada devolveu opções."
},
"fim": {
"type": "string",
"description": "A hora nova de fim, em HH:MM. Sem valor, mantém a duração."
},
"area": {
"type": "string",
"description": "A área nova. Opcional."
},
"data": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "O dia em que ele está hoje, quando ela disser. Sem valor, procura de hoje em diante."
},
"nome": {
"type": "string",
"description": "O nome do compromisso como está na agenda (ou um pedaço dele)."
},
"inicio": {
"type": "string",
"description": "A hora nova de início, em HH:MM. Sem valor, a mesma hora no dia novo."
},
"novo_dia": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "O dia novo. Sem valor, o mesmo dia."
},
"confirmar": {
"enum": [
"sim"
],
"type": "string",
"description": "Mande \"sim\" depois que a pessoa confirmar, quando houver convidados."
},
"novo_nome": {
"type": "string",
"description": "O nome novo. Opcional."
}
},
"additionalProperties": false
}
}
]Get your MCP into directories
A working endpoint is step one. Directory coverage is the coordinated launch across ChatGPT, Claude, Cursor, the MCP Registry, and community indexes.
Directory coverage for brandsEntenda onde seu tempo vai. O Virte mede automaticamente no computador e ajuda a revisar a semana com IA em português.
Use the MCP endpoint listed on this page in your MCP client configuration. One-click install pills support Claude, Cursor, VS Code, and other hosts. Copy the remote MCP URL if your client needs a manual entry.
Request removal if you do not want Virte listed here, or claim the listing if you want to manage it on MCPBundles.
This server appears in the MCPBundles directory. Verify you operate it to take over the listing — name, description, logo, contact email, and skill content. We email a 6-digit code to a maintainer address your server publishes in /.well-known/security.txt or /.well-known/mcpbundles.json. Free, takes about a minute.
MCPBundles publishes this directory for MCP discovery. Except where we host or operate an offering, third-party services run under their own terms. Product and company names on this page are used in a descriptive, identifying way (including under nominative fair use where applicable); they remain the property of their owners. Nothing here grants you rights in those marks, and nothing here is an offer to sell a third party's services. Terms · Request removal
Other MCP servers in this category from the directory index
Previewing 25 of 44 tools
MCPBundles probed 44 tools on the live server. The tool list on this page reflects what was discovered at the last refresh — connect your client to see the full set available to your session.
Virte may require signing in to the provider before tools can run. Connect through MCPBundles or your MCP client and complete any provider login when prompted.
Request removal from the MCPBundles directory. We stop publishing this listing on mcpbundles.com.
MCPBundles is an independent platform built on the open Model Context Protocol standard. MCPBundles is not affiliated with, sponsored by, or endorsed by Anthropic PBC.