Tato Runtime
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Tato Runtime open Chrome, look up the price of a coffee maker and write it in Notepad"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Tato Runtime
The hands of an AI agent: a computer and a browser for any agent that speaks MCP.
Claude Code · Codex · Cursor · Gemini CLI
English · Português (BR)
Tato Runtime is an MCP server that gives the agent three tools: computador
(computer), browser and gravacao (recording). The agent decides what to do;
Tato reads the interface, performs the gesture, checks that it took effect and
returns the result. Whenever it can, it reads the screen's structure as text
before falling back to an image, which makes each step cheaper and more
accurate.
While the agent uses the machine, a frame shows what it is doing, and a shortcut stops everything instantly.
Tool names, actions, parameters and environment variables are in Portuguese, exactly as the agent sees them. This README keeps them as-is and explains them in English.
What it does
Computer
Sees through structure: reads the window's elements through the system's accessibility layer (UI Automation on Windows, AT-SPI on Linux) and the text of the foreground window, with term search. It only falls back to a screenshot when the structure isn't enough, and can crop and zoom into a small region of the screen.
Uses mouse and keyboard: clicks by element number or by coordinate, types, presses key combinations, holds keys, sends key sequences in a single call, drags with the middle button and modifiers, scrolls.
Checks every gesture: after acting, it compares the screen with the one before and says whether the gesture worked, whether something changed or whether nothing happened, so the agent doesn't repeat a click that already worked.
Finds programs: lists what is open, in the tray and installed, brings a window to the front and opens programs through the system menu.
Waits for the screen: for a fixed time or until the screen changes, ignoring things that animate on their own.
It also draws: in Paint, the Claude Code mascot comes out of shapes, the bucket fill and the mouse.
Browser
The Chrome extension opens a dedicated tab per conversation, in a group named after the agent. The agent can't reach the person's other tabs.
Reads the page through the accessibility tree, the DOM, structured data and the console, and only takes a screenshot when text isn't enough.
Clicks, fills, scrolls and runs scripts (
roteiro): a sequence of steps with checks in between, which stops at the first step that fails.Through the screen, it can browse in the person's Chrome or in a separate profile just for the agent (see Configuration).
Local recording
When the person asks to record a demo,
gravacaostarts capturing after specific approval. An always-visible notice shows that the screen is being recorded and has a Stop button. If the notice doesn't open, there is no capture.parar(stop) finishes it;estado(status) says whether capture is still running.ver(view) returns a contact sheet with up to 12 frames. Inmudancas(changes) mode, it shows the moments before and after the biggest changes within a window of up to 30 seconds. You can zoom into anareaand narrowde/ate(from/to) in new calls — useful for investigating something that appears and disappears without sending hundreds of images to the agent.montar(assemble) builds a GIF with cuts, speed, captions, title cards, cropping, shortened waits and blur by interval. A segment with a differentidjoins finished local recordings in the given order.Frames and the GIF stay only in
TATO_HOME/gravacoes/<id>. Tato doesn't send them anywhere, doesn't publish them and stops capture if the MCP connection closes. Capture stops automatically within 15 minutes. Recording through MCP is available on Windows in this first version.
For example, after iniciar (start) and parar, the agent can look for a
quick change and assemble only the chosen moments:
{"acao":"ver","id":"<id returned by iniciar>","modo":"mudancas",
"de":12,"ate":22,"area":[200,100,700,500],"amostras":8}{"acao":"montar","id":"<id returned by iniciar>","trechos":[
{"titulo":"Price research"},
{"de":12,"ate":35,"velocidade":3,"legenda":"Comparing the offers",
"borrar":[
{"de":15,"ate":19,"caixa":[10,20,150,80]}]}
]}TATO_GRAVAR=1 mode, set before starting the server, includes the
computer frame in the video; without it, the frame stays out of the capture.
The recording notice stays visible in both modes. The GIF is for local review:
check for personal data before sharing it.
Related MCP server: Open Computer Use
You're in control
Frame on screen: a border, its own pointer in place of the cursor, a bubble with the gesture and a small box with the agent's messages, since the chat sits behind the window. The frame stays out of the screenshots the agent sees.
Stop shortcut:
Ctrl + Alt + Shift + Sinterrupts the gesture in progress, and no gesture runs after it. The agent can't trigger this shortcut.Approval: the first gesture of each turn asks for approval through the MCP client. Reads don't.
Doesn't type in the wrong place: if another window comes to the front, the keyboard stops, even in the middle of a text.
One agent at a time: two clients don't fight over the same mouse and keyboard.
What it never does: type a password (the agent clicks the field and uses the browser's autofill) or press combinations that kill the session or delete irreversibly. Login and verification codes are handed to the person with
pedir_a_pessoa(ask the person).In the browser: it opens web pages (http or https), local ones included, so the agent can check the site you are building. Other schemes, like
file://, are refused, and actions that submit data or have consequences ask for approval.
Turn-based games
Turn-based games work well: the game waits while the agent looks and decides. The agent sends several moves in one sequence and reads a zoomed-in crop of the screen to see what is drawn.
Games in the demo, free and distributed by their own authors, running on the mGBA emulator:
Porklike, by Krystian Majewski and Lazy Devs, Game Boy version by Ben Smith.
Tobu Tobu Girl Deluxe, by Tangram Games, open source.
Libbet and the Magic Floor, by Damian Yerrick, based on Martin Korth's Magic Floor, free software (zlib license).
Real-time games aren't its strength: each look-and-decide loop takes a few seconds. In the Tobu Tobu Girl clip the agent pauses the emulator to think.
Install
Requirements: Python 3.11 or newer; Windows 10 or 11, or Linux with X11; Google Chrome for the browser.
git clone https://github.com/Ryanleoncoder/tato-runtime.git
cd tato-runtime
pip install -e .Tato runs with python -m tato. In the examples below, python is the Python
you installed it into; if you used a venv, put the path to its Python.
Register with your agent
Claude Code
claude mcp add tato -- python -m tato --aprovacao-no-clienteCodex, in ~/.codex/config.toml:
[mcp_servers.tato]
command = "python"
args = ["-m", "tato"]Cursor (~/.cursor/mcp.json) and Gemini CLI (~/.gemini/settings.json):
{
"mcpServers": {
"tato": { "command": "python", "args": ["-m", "tato"] }
}
}--aprovacao-no-cliente (approval in the client) is for clients that already
ask for approval before each tool call, like Claude Code. Without it, Tato asks
through the MCP protocol itself.
Browser extension
Once only: in chrome://extensions, turn on developer mode, choose "Load
unpacked" and select the tato/extensao folder. It connects on its own when
the agent starts Tato. Details in the
extension guide (in Portuguese).
Configuration
Everything through environment variables, with defaults that work without any setup.
Variable | Default | What it does |
|
| Stop shortcut. |
|
| With |
|
| The mouse glides to the target; |
|
| With |
|
| Which Chrome to browse through the screen: |
|
| Name of the separate profile: it becomes "Chrome do ". Create the shortcut with |
|
| Closes the browser session after this many idle minutes; |
|
| Local port where the extension finds Tato. |
|
| Where Tato keeps what it needs between runs. |
Actions
computador
Action | What it does |
| Screenshot; with |
| Elements of the focused window through accessibility, no image. |
| Text of the foreground window; with |
| Open windows and which one has focus. |
| Programs that are open, in the tray and installed. |
| Opens a program through the system menu / brings a window to the front / closes a window like its X button (the program still asks whether to save). |
| Click, double-click, right-click, move — by element number or screenshot coordinate. A coordinate click after other gestures checks that the screen around the target still matches the screenshot; |
| Drag / scroll, with button and modifiers. |
| Types text into the focused field, with |
| A key combination, held for a while, or a |
| Triggers or fills an element through accessibility, without the mouse. |
| Waits a fixed time or |
| Hands over to the person / releases the session. |
Every gesture accepts dizer (say): a short sentence that appears in the
frame's message box.
browser
Action | What it does |
| Opens an address and returns the page tree with references. |
| Reads the page again. |
| Click / type / scroll, by the element's reference or text. |
| Several steps at once, with |
| Screenshot of the page, when text isn't enough. |
| The page's console messages. |
| Ends the browser session. |
gravacao
Action | What it does |
| Starts recording the screen, with approval and a visible notice; accepts |
| Finishes the recording / says whether it's still running. |
| A contact sheet with up to 12 frames, by |
| Builds the GIF from |
How it works
On connection, the server sends the agent, as MCP instructions, what applies to all three tools: which one to use, talking through the frame, handing login to the person and ending when done. Each tool describes only its own usage.
The server speaks MCP over stdio. Each call sends progress and accepts cancellation; a call that doesn't return in time is abandoned and the agent receives the reason.
The first Tato to start opens the extension's local port; the others relay their commands through it.
The frame stays on screen while the session is open;
encerrarremoves it.
Limitations
Real-time games: too slow for the look-and-decide loop.
Online games: don't. Automating matches is forbidden in most games, and anti-cheat systems detect simulated input.
Administrator windows: Windows doesn't let a regular program control an elevated window.
macOS and Linux with Wayland aren't supported yet.
Development
pip install -e ".[dev]"
python -m pytest
node --test tato/extensao/service-worker.test.cjsThe Linux tests (X11 and AT-SPI) only run where Xvfb is available; on Windows they are skipped.
License
MIT.
Available Tools
3 toolsbrowserA
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.
Inputs: acao (required), provider, argumentos, consequencia.
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.
Inputs: acao (required), x, y, com, +26 more.
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.
Inputs: acao (required), de, id, ate, +9 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
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.
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.
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.
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
Related MCP Connectors
Web scraping, browser automation, screenshots and AI data extraction for AI agents via MCP.
Connect AI assistants to your approved computer for files, commands, browser and desktop tasks.
Let AI agents use your real, signed-in Chrome: tabs, clicks, forms, screenshots and video.
Control a real browser from AI agents: navigate, click, type, screenshot, read the page.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to view and control the local desktop through browser-based viewport and MCP tools.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to observe and control the user's live desktop by listing apps, reading accessibility trees, and performing clicks, typing, scrolling, dragging, and other input actions with per-action approvals and local audit archives.1MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to automate both web browsers and native desktop applications through a unified interface, supporting tasks like browsing, clicking, typing, and file clipboard operations via exposed MCP tools.1Apache 2.0
- AlicenseBqualityBmaintenanceEnables AI agents to observe and control local browsers and desktop applications over MCP, including reading UI elements and differences, capturing images, and performing permitted clicks, typing, selections, scrolling, and multi-window operations.162MIT