Skip to main content
Glama

Tato Runtime

As mãos de um agente de IA: computador e navegador para qualquer agente que fala MCP.

Claude Code · Codex · Cursor · Gemini CLI

O Tato Runtime é um servidor MCP que dá ao agente três ferramentas: computador, browser e gravacao. O agente decide o que fazer; o Tato lê a interface, executa o gesto, confere se ele fez efeito e devolve o resultado. Sempre que dá, ele lê a estrutura da tela em texto antes de recorrer a uma imagem, o que deixa cada passo mais barato e mais preciso.

Enquanto o agente usa a máquina, uma moldura mostra o que ele está fazendo, e um atalho para tudo na hora.

O que ele faz

Computador

  • Enxerga pela estrutura: lê os elementos da janela pela acessibilidade do sistema (UI Automation no Windows, AT-SPI no Linux) e o texto da janela da frente, com busca por termo. Recorre ao print só quando a estrutura não basta, e pode recortar e ampliar uma região pequena da tela.

  • Usa mouse e teclado: clica por número de elemento ou por coordenada, digita, aperta combinações, segura teclas, manda sequências de teclas numa chamada, arrasta com botão do meio e modificadores, rola.

  • Confere cada gesto: depois de agir, compara a tela com a de antes e diz se o gesto deu certo, se algo mudou ou se nada aconteceu, para o agente não repetir um clique que já funcionou.

  • Encontra programas: lista o que está aberto, na bandeja e instalado, traz uma janela para a frente e abre programas pelo menu do sistema.

  • Espera a tela: por um tempo fixo ou até a tela mudar, ignorando o que se anima sozinho.

Também desenha: no Paint, o mascote do Claude Code sai com as formas, o balde e o mouse.

Navegador

  • A extensão do Chrome abre uma aba própria por conversa, num grupo com o nome do agente. O agente não alcança as outras abas da pessoa.

  • Lê a página pela árvore de acessibilidade, pelo DOM, pelos dados estruturados e pelo console, e tira print só quando o texto não basta.

  • Clica, preenche, rola e roda roteiros: uma sequência de passos com conferências no meio, que para no primeiro passo que não deu certo.

  • Pela tela, pode navegar no Chrome da pessoa ou num perfil separado só do agente (veja Configuração).

Gravação local

  • Quando a pessoa pede para gravar uma demonstração, gravacao inicia a captura após aprovação específica. Um aviso sempre visível mostra que a tela está sendo gravada e tem um botão Parar. Se o aviso não abrir, não há captura.

  • parar finaliza; estado informa se a captura ainda corre. ver devolve uma prancha com até 12 quadros. No modo mudancas, mostra os instantes antes e depois das maiores alterações numa janela de até 30 segundos. Dá para ampliar uma area e estreitar de/ate em novas chamadas — útil para investigar algo que aparece e some sem enviar centenas de imagens ao agente.

  • montar cria um GIF com cortes, velocidade, legendas, cartelas, recorte, esperas encurtadas e borrão por intervalo. Um trecho com outro id junta gravações locais finalizadas na ordem indicada.

  • Os quadros e o GIF ficam só em TATO_HOME/gravacoes/<id>. O Tato não os envia para fora, não os publica e encerra a captura se a conexão MCP fechar. A captura para automaticamente em até 15 minutos. A gravação pelo MCP está disponível no Windows nesta primeira versão.

Por exemplo, depois de iniciar e parar, o agente pode procurar uma mudança rápida e montar apenas os momentos escolhidos:

{"acao":"ver","id":"<id devolvido por iniciar>","modo":"mudancas",
 "de":12,"ate":22,"area":[200,100,700,500],"amostras":8}
{"acao":"montar","id":"<id devolvido por iniciar>","trechos":[
  {"titulo":"Pesquisa de preço"},
  {"de":12,"ate":35,"velocidade":3,"legenda":"Comparando as ofertas",
   "borrar":[
    {"de":15,"ate":19,"caixa":[10,20,150,80]}]}
]}

O modo TATO_GRAVAR=1, configurado antes de iniciar o servidor, inclui a moldura do computador no vídeo; sem ele, a moldura fica fora da captura. O aviso de gravação continua visível em ambos os modos. O GIF é para revisão local: confira dados pessoais antes de compartilhar.

Related MCP server: desktop-touch-mcp

Você no controle

  • Moldura na tela: borda, seta própria no lugar do cursor, balão com o gesto e uma caixinha com as frases do agente, já que o chat fica atrás da janela. A moldura fica fora dos prints que o agente vê.

  • Atalho de parada: Ctrl + Alt + Shift + S interrompe o gesto em curso, e nenhum gesto roda depois dele. O agente não consegue acionar esse atalho.

  • Aprovação: o primeiro gesto de cada turno pede aprovação pelo cliente MCP. Leituras não pedem.

  • Não digita no lugar errado: se outra janela vier para a frente, o teclado para, inclusive no meio de um texto.

  • Um agente por vez: dois clientes não disputam o mesmo mouse e teclado.

  • O que ele nunca faz: digitar senha (o agente clica no campo e usa o preenchimento automático do navegador) ou apertar combinações que derrubam a sessão ou apagam sem volta. Login e código de verificação passam para a pessoa com pedir_a_pessoa.

  • No navegador: endereços internos da rede são recusados, e ações que enviam dados ou têm consequência pedem aprovação.

Jogos por turnos

Jogo por turnos funciona bem: o jogo espera enquanto o agente olha e decide. O agente manda vários movimentos numa sequência e lê um recorte ampliado da tela para enxergar o que está desenhado.

Jogos da demonstração, gratuitos e distribuídos pelos próprios autores, rodando no emulador mGBA:

  • Porklike, de Krystian Majewski e Lazy Devs, versão Game Boy de Ben Smith.

  • Tobu Tobu Girl Deluxe, de Tangram Games, de código aberto.

  • Libbet and the Magic Floor, de Damian Yerrick, sobre o Magic Floor de Martin Korth, software livre (licença zlib).

Jogo em tempo real não é o forte: cada volta de olhar e decidir leva alguns segundos. No corte do Tobu Tobu Girl o agente pausa o emulador para pensar.

Instalar

Requisitos: Python 3.11 ou mais novo; Windows 10 ou 11, ou Linux com X11; Google Chrome para o navegador.

git clone https://github.com/Ryanleoncoder/tato-runtime.git
cd tato-runtime
pip install -e .

O Tato roda com python -m tato. Nos exemplos abaixo, python é o Python onde você instalou; se usou um venv, ponha o caminho do Python dele.

Registrar no seu agente

Claude Code

claude mcp add tato -- python -m tato --aprovacao-no-cliente

Codex, em ~/.codex/config.toml:

[mcp_servers.tato]
command = "python"
args = ["-m", "tato"]

Cursor (~/.cursor/mcp.json) e Gemini CLI (~/.gemini/settings.json):

{
  "mcpServers": {
    "tato": { "command": "python", "args": ["-m", "tato"] }
  }
}

--aprovacao-no-cliente é para cliente que já pede aprovação antes de cada chamada de ferramenta, como o Claude Code. Sem ele, o Tato pergunta pelo próprio protocolo MCP.

Extensão do navegador

Uma vez só: em chrome://extensions, ative o modo do desenvolvedor, escolha "Carregar sem compactação" e selecione a pasta tato/extensao. Ela se conecta sozinha quando o agente inicia o Tato. Detalhes no guia da extensão.

Configuração

Tudo por variável de ambiente, com padrões que funcionam sem configurar nada.

Variável

Padrão

O que faz

TATO_COMPUTADOR_ATALHO

ctrl+alt+shift+s

Atalho de parada.

TATO_COMPUTADOR_RITMO

1

Com 0, o ritmo automático digita rápido em todo programa, não só nos editores.

TATO_COMPUTADOR_DESLIZAR

1

O mouse desliza até o alvo; 0 pula direto.

TATO_GRAVAR

0

Com 1, a moldura aparece em gravações de tela (OBS, Xbox Game Bar, Ferramenta de Captura). Ela também entra no print que o agente recebe. Só no Windows.

TATO_NAVEGADOR_PERFIL

pessoa

Em que Chrome navegar pela tela: pessoa (o seu, com suas contas) ou agente (perfil separado).

TATO_NAVEGADOR_AGENTE_NOME

Agente

Nome do perfil separado: vira "Chrome do ". Crie o atalho com python -m tato.computador.perfil_do_agente <nome>.

TATO_BROWSER_OCIOSO_MIN

0

Fecha a sessão do navegador depois de tantos minutos parada; 0 não fecha.

TATO_ORIGENS_LOCAIS_LIBERADAS

vazio

Endereços locais que o navegador pode abrir, como http://localhost:3000, separados por vírgula.

TATO_PORTA

47812

Porta local onde a extensão encontra o Tato.

TATO_HOME

~/.tato

Onde o Tato guarda o que precisa entre execuções.

Ações

computador

Ação

O que faz

ver

Print da tela; com marcar, numera os elementos; com regiao, recorta e amplia.

elementos

Elementos da janela em foco pela acessibilidade, sem imagem.

ler

Texto da janela da frente; com procurar, só as linhas com o termo.

janelas

Janelas abertas e qual está em foco.

programas

Programas abertos, na bandeja e instalados.

abrir / focar / fechar

Abre um programa pelo menu do sistema / traz uma janela para a frente / fecha uma janela como o X dela (o programa ainda pergunta se quer salvar).

clicar, clicar_duas, clicar_direito, mover

Por número de elemento ou coordenada do print. Clique por coordenada depois de outros gestos confere se a tela em volta do alvo ainda é a do print; confiar_no_print libera quando a mudança é esperada.

arrastar / rolar

Com botão e modificadores.

digitar

Texto no campo em foco, com ritmo: natural (pausas de mão, para sites), rapido, instantaneo (tudo de uma vez) ou automatico (rápido em editores locais, natural no resto).

tecla

Uma combinação, segurada por um tempo, ou uma sequencia de teclas. Aceita letras, números, teclas especiais e = - , . (o zoom é ctrl+= e ctrl+-).

invocar / definir_valor

Aciona ou preenche um elemento pela acessibilidade, sem mouse.

esperar

Tempo fixo ou ate_mudar.

pedir_a_pessoa / encerrar

Passa a vez para a pessoa / libera a sessão.

Todo gesto aceita dizer: uma frase curta que aparece na caixinha da moldura.

browser

Ação

O que faz

navegar

Abre um endereço e devolve a árvore da página com referências.

snapshot

Lê a página de novo.

clicar / digitar / rolar

Pela referência ou pelo texto do elemento.

roteiro

Vários passos de uma vez, com esperar, conferir e pensar no meio.

imagens

Print da página, quando o texto não basta.

console

Mensagens do console da página.

encerrar

Encerra a sessão do navegador.

gravacao

Ação

O que faz

iniciar

Começa a gravar a tela, com aprovação e aviso visível; aceita fps, largura, caixa e minutos.

parar / estado

Finaliza a gravação / diz se ela ainda corre.

ver

Uma prancha com até 12 quadros, por intervalo ou pelas maiores mudancas, com de, ate e area.

montar

O GIF a partir de trechos (cortes, cartelas, legendas, velocidade, recorte, borrão); nome dá nome ao arquivo.

Como funciona

  • Na conexão, o servidor manda ao agente, como instruções MCP, o que vale para as três ferramentas: qual usar, falar pela moldura, passar o login para a pessoa e encerrar ao terminar. Cada ferramenta descreve só o próprio uso.

  • O servidor fala MCP por stdio. Cada chamada envia progresso e aceita cancelamento; uma chamada que não volta a tempo é abandonada e o agente recebe o motivo.

  • O primeiro Tato que sobe abre a porta local da extensão; os outros passam os comandos por ele.

  • A moldura segue na tela enquanto a sessão estiver aberta; encerrar a tira.

Limites

  • Jogos em tempo real: lentos demais para o ciclo de olhar e decidir.

  • Jogos online: não use. Automatizar partidas é proibido na maioria dos jogos, e sistemas anti-cheat detectam a entrada simulada.

  • Janelas de administrador: o Windows não deixa um programa comum controlar uma janela elevada.

  • macOS e Linux com Wayland ainda não são suportados.

Desenvolvimento

pip install -e ".[dev]"
python -m pytest
node --test tato/extensao/service-worker.test.cjs

Os testes de Linux (X11 e AT-SPI) rodam só onde há Xvfb; no Windows eles são pulados.

Licença

MIT.

Available Tools

3 tools
browserA

Abre e opera uma aba própria no Chrome da pessoa: lê, clica, preenche e rola. Use para tarefa num site; programa do computador vai pelo computador.

Comece com navegar (url): a resposta já traz a árvore da página, com um ref em cada elemento (e8, e23). Mire clicar e digitar por um ref que você viu, nunca inventado; o ref serve só para mirar e não vai para a resposta. digitar sem ref escreve no campo em foco; enviar: true aperta Enter depois. snapshot lê a página de novo; imagens tira um print, só quando o texto não bastar; console traz as mensagens do console.

Em clicar e digitar, declare consequencia: nenhuma para filtro, menu, busca ou paginação; comunicar para enviar, publicar ou se candidatar. Sem declarar, a pessoa é perguntada.

Leia o estado depois de cada ação; se nada mudou, procure o bloqueio em vez de repetir. O que não aparece na leitura costuma estar a um clique (dentro do item, do card) ou só na tela: abra o item ou peça imagens.

Quando já conhece a página, use roteiro (passos): ações (navegar, clicar, digitar, rolar) e controles (esperar e conferir com texto, imagens, pensar para ler a página e voltar a decidir). O roteiro para no primeiro conferir que falhar e devolve a página. Logo depois de um navegar no roteiro, mire por nome, o texto do elemento. Exemplo: {"acao":"roteiro","argumentos":{"passos":[{"acao":"digitar","argumentos":{"ref":"e3","texto":"fones","enviar":true},"consequencia":"nenhuma"},{"acao":"esperar","argumentos":{"texto":"Resultados"}},{"acao":"pensar"}]}}.

A aba continua nos próximos turnos da conversa; encerrar só quando a pessoa pedir.

ParametersJSON Schema
NameRequiredDescriptionDefault
acaoYes
providerNo
argumentosNo
consequenciaNoEm clicar/digitar: o que a acao causa fora da pagina. Sem declarar, pergunta.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and delivers: the tab persists across conversation turns, 'encerrar' only on request, and 'consequencia' behavior including that omission triggers a user prompt. It exposes non-obvious mechanics (ref doesn't appear in the response, roteiro halts on first failed 'conferir'). This is exactly the extra context annotations would otherwise provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose and the 'computador' distinction before drilling into actions. Density is high but nearly every sentence earns its place for a nine-action tool. Slightly heavy overall, which keeps it just shy of perfect.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex multi-action tool with nested objects and no output schema, the description supplies the missing pieces: that 'navegar' returns the page tree with refs (return shape), the roteiro result contract, and the persistence model. An agent has everything needed to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 25%, so the description must compensate and does: url, ref semantics (must come from a prior reading, never invented, aim-only), ref-less 'digitar' writing to focus, 'enviar' pressing Enter, 'nome' after navegar in a script, and the full 'passos' structure. This is far beyond what the sparse schema documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('Abre e opera uma aba própria no Chrome') and enumerates the operations (lê, clica, preenche, rola). It explicitly distinguishes itself from the sibling 'computador' by routing desktop-program tasks there, so an agent can tell the tools apart without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives per-action when-to-use guidance ('Comece com navegar', 'snapshot lê a página de novo', 'imagens... só quando o texto não bastar'), plus when to escalate to 'roteiro'. It even states exclusion rules (use 'computador' for desktop programs) and the retry heuristic ('se nada mudou, procure o bloqueio em vez de repetir').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

computadorA

Vê a tela e usa o mouse e o teclado de verdade. Use para programas do computador e para o que o browser não alcança; tarefa num site vai melhor pelo browser.

Oriente-se com ver e marcar: true: o print vem com um número em cada elemento. Para conferir um passo pequeno, elementos lista os mesmos itens em texto, sem imagem. Mire pelo número (elemento: n); sem número, pela coordenada do print, nunca por palpite. ler traz o texto da janela da frente; com procurar, só as linhas com o termo.

Depois de cada gesto vem um veredito: confirmado (não repita), mudou (confira em mudou se foi o esperado), sem_efeito_aparente (não repita; siga o proximo) ou nao_da_para_confirmar (confira no print). na_janela diz onde o gesto caiu: se não é o programa pedido, foi no lugar errado.

Programas: programas com nome diz se está aberto, na bandeja ou instalado. Aberto, focar com parte do título; fechado, abrir com o nome do menu Iniciar. App que acabou de abrir pode ficar atrás: confira em janelas antes de abrir de novo. Programa com abas (Bloco de notas, navegador) pode abrir na janela da pessoa: para não mexer no que é dela, abra uma janela nova pelo atalho do programa. fechar com parte do título fecha a janela, como o X; o programa ainda pergunta se quer salvar.

Texto: clique no campo e use digitar. ritmo: natural (pausas de mão, para site), rapido ou instantaneo (tudo de uma vez, para app local), automatico (padrão: rápido nos editores, natural no resto). Na barra de endereço do navegador, aperte delete antes do enter, ou ele completa com outra página do histórico. tecla aperta uma combinação (ctrl+s), segura com segurar ou manda uma sequencia. invocar e definir_valor agem no controle pela acessibilidade, sem mouse.

Quando já sabe o caminho, mande os gestos seguidos na mesma resposta; se um falhar, os seguintes não rodam.

Jogo, editor de imagem e modelagem desenham a tela: a lista vem quase vazia e o print orienta. ver com regiao amplia um pedaço pequeno; esperar com ate_mudar espera a animação em vez de adivinhar o tempo; arrastar e rolar aceitam botao e com (modificadores).

Para navegar pela tela, use o Chrome que o campo navegador do primeiro resultado indica. Carrossel e menu animado andam um clique por vez.

Sempre: código no celular e login passam para a pessoa com pedir_a_pessoa, e aí tudo é recusado até ela devolver. O primeiro gesto de cada turno pede aprovação. Fale com a pessoa pelo dizer, que aparece na moldura, e chame encerrar quando parar de usar a tela.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNoCoordenada no print (clicar, mover, arrastar, rolar).
yNoCoordenada no print.
comNoEm `arrastar` e `rolar`, modificadores segurados durante o gesto, como `shift` ou `ctrl+alt`.
acaoYes
nomeNoEm `programas`, o programa procurado (diz se roda sem janela e se está instalado); em `abrir`, o nome do programa como aparece no menu Iniciar.
botaoNoEm `arrastar`, o botao do mouse (padrao esquerdo).
dizerNoEm qualquer acao, uma frase curta (ate 120 caracteres) que aparece na caixinha da moldura para a pessoa, que nao ve o chat enquanto voce usa a tela.
pausaNoEm `tecla` com `sequencia`, segundos entre uma tecla e a outra (padrao 0,15).
ritmoNoEm `digitar`: automatico (padrao) acelera editores locais conhecidos e usa pausas naturais nos demais programas; rapido envia teclas com pausa curta; instantaneo manda o texto inteiro de uma vez; natural digita caractere por caractere com pausas variaveis.
teclaNoEm `tecla`, a combinacao, como `ctrl+s` ou `enter`.
textoNoEm `digitar`.
valorNoEm `definir_valor`, o texto do campo ou o nome da opcao da lista.
depoisNoComo conferir o gesto. `texto` (padrao) volta a lista de elementos, e o print so quando a janela nao se descreve.
janelaNoEm `focar` e `fechar`, parte do titulo da janela, como aparece em `janelas`.
marcarNoEm `ver`, numera os elementos da janela no print; vale para os prints seguintes do turno.
motivoNoEm `pedir_a_pessoa`, o passo que e da pessoa (ex. fazer login no portal).
para_xNoEm `arrastar`, o destino no print.
para_yNoEm `arrastar`, o destino no print.
regiaoNoEm `ver`, so este pedaco, ampliado para ler (menu de jogo, painel de editor); em `esperar` com `ate_mudar`, so este pedaco e vigiado. No espaco do print.
direcaoNo
segurarNoEm `tecla`, quantos segundos a combinacao fica apertada (maximo 10), para andar ou correr num jogo; solta sozinha no fim.
contextoNoEm `ler` com `procurar`, quantas linhas antes e depois de cada achado (padrao 1, ate 6).
elementoNoO numero observado na ultima leitura (`elementos` ou `ver` com `marcar`), sempre a partir de 1; nunca use 0. Obrigatorio em `invocar` e `definir_valor`.
procurarNoEm `ler`, so as linhas com este termo (como "R$"), cada uma com a de antes e a de depois: le a janela inteira e devolve o que interessa.
segundosNoEm `esperar` (maximo 30).
ate_mudarNoEm `esperar`, volta assim que a tela (ou a `regiao`) mudar, ate `segundos`.
sequenciaNoEm `tecla`, varias teclas em ordem numa chamada, como ["direita", "direita", "z"]; "cima:0.6" segura 0,6 s. Ate 40 teclas.
quantidadeNoEm `rolar`, cliques de roda (padrao 3).
ver_depoisNoAntigo; `depois` manda. Falso e o mesmo que `depois: nada`, verdadeiro o mesmo que `depois: print`.
confiar_no_printNoEm clique ou arrasto por coordenada depois de outros gestos: confirma que a tela em volta do alvo mudou porque você esperava (pintar sobre o que acabou de desenhar).

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full behavioral burden and does so richly. It discloses post-gesture verdicts (`confirmado`, `mudou`, `sem_efeito_aparente`, `nao_da_para_confirmar`), the `na_janela` placement check, approval requirements for the first gesture each turn, refusal of all actions after `pedir_a_pessoa` until the human returns, and special behaviors like apps opening behind or programs opening in the person's window. It also explains that `fechar` behaves like the X and that programs may still ask to save.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but front-loaded: it opens with what the tool does and when to use it before moving into workflow details. Each paragraph has a clear theme (orientation, verdicts, programs, text, games, approval), and most sentences add distinct operational value. It is slightly dense and could use tighter grouping, but the length is defensible for a 30-parameter computer-control tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 30 parameters, no annotations, no output schema, and high schema coverage, the description supplies the missing behavioral and workflow context. It covers approval, human handoff with `pedir_a_pessoa`, communication via `dizer`, when to call `encerrar`, and special cases like games, carousels, and animated menus. Nothing essential for correct invocation appears to be missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 93%, so the baseline is 3, but the description adds practical usage semantics beyond the schema. It explains how to orient with `ver` and `marcar: true`, to target by `elemento: n` or by screenshot coordinates rather than guessing, and to use `ritmo` differently for websites versus local apps. It also notes browser-address-bar behavior (press `delete` before `enter`) and batching gestures in one turn with failure halting subsequent gestures, which enriches several parameters beyond their schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence gives a concrete verb and resource: it sees the screen and uses real mouse and keyboard. It immediately distinguishes this tool from the sibling `browser`, saying site tasks are better handled there and this tool covers what the browser cannot reach. An agent can tell it apart from `browser` and `gravacao` without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool versus the alternative: for computer programs and anything the browser does not reach, while website tasks should go through `browser`. It also gives detailed routing guidance for sub-actions like `ver` with `marcar: true`, `elementos`, `ler` with `procurar`, `focar` versus `abrir`, and `pedir_a_pessoa` for login or phone-code steps. When-not conditions are covered through the handoff to the human and the browser alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gravacaoA

Grava, inspeciona e edita uma captura local da tela. iniciar requer pedido da pessoa e aprovação específica; parar finaliza; estado consulta; ver retorna uma única prancha com até 12 quadros, por intervalo ou pelas maiores mudanças visuais (útil para algo que aparece e some); montar cria um GIF com cortes, legendas e trechos de outras gravações locais. Use ver com de/ate e area para investigar uma região, refinando o intervalo em novas chamadas, sem pedir centenas de imagens. Não publique ou compartilhe a captura sem revisar dados pessoais.

ParametersJSON Schema
NameRequiredDescriptionDefault
deNoEm ver, segundo inicial a investigar.
idNoId devolvido por iniciar/parar; obrigatório em ver e montar.
ateNoEm ver, segundo final a investigar.
fpsNoEm iniciar, quadros por segundo (padrão 10).
acaoYes
areaNoEm ver, região [x0,y0,x1,y1] da gravação para medir mudanças e ampliar na prancha.
modoNoEm ver: amostras espaçadas ou pares antes/depois das maiores mudanças visuais. Para mudancas, use no máximo 30 s por chamada.
nomeNoEm montar, nome do arquivo do GIF, sem extensão (padrão resumo).
caixaNoEm iniciar, recorte opcional da tela [x0,y0,x1,y1].
larguraNoEm iniciar, largura máxima do quadro (padrão 960).
minutosNoEm iniciar, limite automático de tempo (padrão 15).
trechosNoEm montar, cortes em ordem; omitir usa a gravação inteira.
amostrasNoEm ver, número máximo de miniaturas numa única prancha (padrão 8).

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false. The description adds real behavioral context beyond them: that `iniciar` requires a person's request and specific approval, the privacy caution against publishing/sharing without reviewing personal data, and the efficiency constraint of not pulling hundreds of frames. It stops short of describing the return format of `estado` or the reversibility of edits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the overall purpose, then organized by action using backticked names, followed by workflow and privacy notes. Dense but each sentence carries information, though several clauses re-state schema-level constraints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter, five-action tool with no output schema, it covers each action, the approval prerequisite, the `ver` workflow, and a privacy caution. `estado` is only described as 'consulta' with no indication of what it returns, which is the main remaining gap without an output schema to rely on.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 92%, so the schema already documents essentially every parameter (de, ate, area, modo, trechos, etc.). The description only reinforces how de/ate and area combine for region investigation and restates the modo 'mudancas' 30 s limit, which is already in the schema. Baseline 3 is correct when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear purpose ('Grava, inspeciona e edita uma captura local da tela') and enumerates all five sub-actions with a specific meaning for each (iniciar/parar/estado/ver/montar). An agent can tell what the tool does and how each action differs. It does not, however, distinguish this tool from the sibling tools 'browser' and 'computador'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete when-to-use guidance: 'iniciar' requires a person's request and specific approval, `ver` should be used with de/ate and area to investigate a region and refine the interval across calls rather than requesting hundreds of images, and 'mudancas' mode suits something that appears and disappears. No explicit exclusion against the sibling tools, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv0.1.0
    • First observedbrowser
    • First observedcomputador
    • First observedgravacao

TDQS

A4.1/5.0

Scored across 3 tools

Disambiguation4/5

The three tools target mostly distinct domains: browser for website tasks, computador for desktop programs, and gravacao for screen recording. However, the computador and browser tools overlap when the computer tool navigates Chrome or when both perform click/type/scroll, which is why descriptions must explicitly say 'site tasks go better through browser' to keep them apart.

Naming Consistency3/5

Names are domain nouns rather than a verb_noun pattern, and the set mixes English (browser) with Portuguese (gravacao, computador). Still readable and each name maps to a clear domain, but the convention is inconsistent.

Tool Count4/5

Three tools for a screen-control runtime (browser, desktop, recording) is well-scoped and each earns its place. The tradeoff is that each tool is heavily overloaded with many internal sub-actions, which is more of a design style than a count problem.

Completeness4/5

Coverage is broad: navigation, reading, clicking, typing, scrolling, scripting, program management, keyboard shortcuts, drag, recording, and human handoff/approval flows are all present. Minor gaps like explicit file upload/download handling exist but core lifecycle operations are covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Gives AI agents and MCP clients direct control over native desktop apps, Chrome/Electron browsers, and Android devices with screenshots, OCR, accessibility-based element lookup, input simulation, window management, CDP, and ADB in one local server.
    134
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to operate local desktops and Chromium browsers through MCP tools, unifying accessibility trees, physical input, screenshots, DOM/ARIA, visual grounding, and result verification.
    1,289 npm
    MIT