Servidor MCP do MAS
Servidor MCP Android para Claude Code, Cursor, Codex e qualquer cliente MCP
41 ferramentas que dão ao seu cliente de IA olhos e mãos no Android: capturas de tela que ele enxerga, OCR e correspondência de modelo, toques, deslizes e digitação, execuções de macro e um agente que cria uma macro a partir de uma frase. Controle BlueStacks, LDPlayer, MuMu, MEmu ou qualquer emulador compatível com adb no Windows ou Mac, um celular conectado ao seu PC ou dispositivos Android na nuvem sempre ligados, a partir do cliente que você já usa.
O servidor hospedado com a sua chave MAS em um cabeçalho, depois o servidor local por URL enquanto o app estiver aberto.
claude mcp add --transport http mas-cloud https://api.automationmacro.com/mcp --header "X-API-Key: $MAS_API_KEY" claude mcp add --transport http mas-local http://127.0.0.1:3846/mcp Servidor hospedado em ~/.codex/config.toml com a chave em uma variável de ambiente; o servidor local por URL.
[mcp_servers.mas-cloud]
url = "https://api.automationmacro.com/mcp"
bearer_token_env_var = "MAS_API_KEY" codex mcp add mas-local --url http://127.0.0.1:3846/mcp Adicione um servidor MCP remoto com o endpoint e o cabeçalho da chave nas configurações de MCP do Grok; o servidor local é a mesma entrada com uma URL de loopback e sem cabeçalho.
{ "mcpServers": { "mas-cloud": { "url": "https://api.automationmacro.com/mcp", "headers": { "X-API-Key": "<your key>" } } } } { "mcpServers": { "mas-local": { "url": "http://127.0.0.1:3846/mcp" } } } O Hermes usa o formato padrão de mcpServers: o endpoint com o cabeçalho da chave, e o servidor local por URL.
{ "mcpServers": { "mas-cloud": { "url": "https://api.automationmacro.com/mcp", "headers": { "X-API-Key": "<your key>" } } } } { "mcpServers": { "mas-local": { "url": "http://127.0.0.1:3846/mcp" } } } Cursor, OpenCode, Gemini CLI e qualquer cliente que aceite um servidor HTTP com cabeçalho. O segundo bloco é para o Claude Desktop, que inicia o app como ponte para o servidor local.
{
"mcpServers": {
"mas-cloud": { "type": "http", "url": "https://api.automationmacro.com/mcp", "headers": { "X-API-Key": "<your key>" } },
"mas-local": { "type": "http", "url": "http://127.0.0.1:3846/mcp" }
}
} { "mcpServers": { "mas-local": { "command": "<path to MacroAutomationStudio>", "args": ["--mcp"] } } } O que é
O que o servidor MCP Android do MAS faz
MCP é o protocolo que clientes de IA usam para chamar ferramentas externas. Este servidor transforma um dispositivo Android nessas ferramentas. Seu cliente pede uma captura de tela e recebe uma imagem que consegue enxergar; pergunta o que a tela diz e recebe linhas de OCR com confiança e caixas; envia um modelo e recebe de volta onde ele está; toca, desliza, digita e pressiona teclas; abre e fecha apps. Essa é a parte que todo servidor MCP Android faz, e ela funciona do mesmo jeito em um emulador, em um celular conectado ou em um dispositivo na nuvem.
O servidor do MAS também faz a parte que um servidor de dispositivo não consegue. Ele lê e executa as macros da sua biblioteca, pede ao MAS Agent para explorar um app e devolver uma macro Python pronta, e expõe o mapa que o agente aprendeu daquele app, além da referência completa do SDK como recurso MCP para que seu cliente escreva código de macro no estilo da casa. Isso o torna um servidor MCP para automação Android na camada do dispositivo, e um servidor MCP de automação móvel nas camadas acima: macros, o agente, os mapas. Não é um plugin do Android Studio nem um assistente de código. Ele controla o dispositivo.
Servidor hospedado
Todas as 41 ferramentas, nos seus dispositivos na nuvem
Um endpoint HTTP remoto. Reserve um dispositivo na nuvem, controle-o, rode macros no servidor, crie novas com o agente, leia mapas de app. Nada para instalar, e seu PC pode ficar desligado.
Servidor local, no app
38 ferramentas, na sua máquina
O app de desktop é o servidor. Ative-o em Integrações (MCP) e aponte seu cliente para a URL de loopback. Ele controla tudo o que o adb enxerga, BlueStacks, LDPlayer, MuMu, MEmu no Windows ou macOS ou um celular com depuração USB, e traz junto a sua biblioteca de macros, a biblioteca de imagens, a criação pelo agente, o ciclo de desenvolvimento e o agendador.
Emuladores
Controle emuladores Android: BlueStacks, LDPlayer, MuMu, MEmu no Windows ou Mac
O servidor local é um servidor MCP para emulador Android, para o emulador que já está na sua mesa. Ative-o em Integrações (MCP), dentro do app, e aponte seu cliente para http://127.0.0.1:3846/mcp. Toda ferramenta de dispositivo aceita um device, o id que vem de list_devices, um serial do adb ou apenas a porta, e você pode omitir isso quando só um emulador está rodando. O app traz o próprio adb, então essa é a configuração de MCP com emulador Android que a maioria das pessoas procura: um botão para ativar, uma URL, pronto.
- BlueStacks
- LDPlayer
- MuMu
- MEmu
- Windows
- macOS
Jogos são o caso que quebra servidores baseados em árvore de acessibilidade: não há árvore para ler. Os dois servidores trabalham a partir dos pixels, então um modelo consegue jogar em uma tela de jogo do mesmo jeito que navega em uma tela de configurações.
Dispositivos na nuvem
Dispositivos Android na nuvem, nada para instalar
O servidor hospedado alcança os dispositivos sempre ligados que o MAS roda para você. lease_device abre uma sessão de controle e retorna o id de reserva de que toda ferramenta de dispositivo precisa; defina auto_start e ele inicia um dispositivo parado antes. A reserva se renova a cada chamada e expira depois de 10 minutos ociosos, então um cliente esquecido não consegue segurar um dispositivo para sempre. run_macro executa no dispositivo pelo servidor e author_macro coloca o MAS Agent para trabalhar nele, ambos com o seu PC desligado.
As ferramentas de dispositivo não têm cobrança por chamada; elas funcionam nos dispositivos na nuvem da sua conta, $80/mês cada com a franquia mensal de créditos. Ver dispositivos na nuvem.
Seu próprio celular
Um servidor MCP Android via ADB para o celular na sua mesa
Ative a depuração USB, conecte o celular, e o servidor local o lista ao lado dos seus emuladores. Todas as ferramentas de tela, entrada e visão funcionam nele: um modelo consegue controlar um celular Android por MCP do mesmo jeito que controla um emulador, a partir do cliente que você já usa, sem nada instalado no celular.
Visão
Capturas de tela que o modelo enxerga, OCR e correspondência de modelo
screenshotretorna a tela como conteúdo de imagem, então o modelo olha diretamente para ela em vez de adivinhar a partir de uma árvore. O servidor local a redimensiona por padrão para 1280 px no lado maior e informa o fator de escala.read_textroda OCR na tela ou em uma região e retorna cada linha com uma confiança e uma caixa delimitadora, então "toque na palavra Resgatar" vira uma coordenada, não uma esperança.find_imageprocura um modelo que você envia usando OpenCV, com um limiar que você controla, e retorna a pontuação e o centro para tocar.
Ferramentas
Todas as 41 ferramentas
Cada ferramenta pelo nome, com seus parâmetros. As ferramentas "local e hospedado" existem nas duas superfícies; as poucas que não, vêm marcadas com a superfície a que pertencem.
Device control
Pick a device and drive it: the same taps, swipes and keys a person would use.
- Call this first. What the server is, whether the account can run anything (subscription, AI credits), the devices it can reach, and hints, including that local emulators are only reachable through the desktop app's local server. The same body as the mas://status resource; needs no scope.
get_statuslocal e hospedado - List the devices the server can reach, with their state. On the hosted server that is your cloud devices and quota; on the local server, the emulators the app sees over adb (id, serial, port, whether a macro is using one).
list_deviceslocal e hospedado - Open a control session on one of your cloud devices and get the lease_id every device tool needs. auto_start boots a stopped device first. A lease renews on every call and expires after ten idle minutes; one lease per device, and a device that is running a macro cannot be leased.
lease_device(device_id, auto_start) hospedado - End the control session. The device keeps running.
release_device(lease_id) hospedado - Tap the screen at device coordinates.
tap(x, y) local e hospedado - Swipe between two points for scrolling and flicks, with a chosen duration (default 300 ms).
swipe(x1, y1, x2, y2, duration_ms) local e hospedado - Press and hold at a point for duration_ms (default 800, 100 to 5000): context menus, drag handles, app icons.
long_press(x, y, duration_ms) local e hospedado - Touch down, move to a second point over duration_ms (default 600, 100 to 5000) and release: slow enough for sliders and drag-and-drop, unlike a flick swipe.
drag(x1, y1, x2, y2, duration_ms) local e hospedado - Type text into the focused input field.
type_text(text) local e hospedado - Press BACK, HOME, ENTER, TAB, DEL or any KEYCODE_ name.
press_key(key) local e hospedado - Launch an app by package name.
open_app(package) local e hospedado - Force-stop an app by package name.
close_app(package) local e hospedado - Report the package in the foreground.
current_applocal e hospedado - Return the screen size in pixels, the coordinate space for tap and swipe.
screen_sizelocal e hospedado - Pause for animations and loading screens: up to 10 seconds per call on the hosted server, up to 60 seconds locally. Prefer wait_for when you know what you are waiting for.
wait(ms) local e hospedado
Screen understanding
Let the model see the screen and locate things on it without guessing coordinates: pixels, OCR, template matching and the accessibility tree.
- Capture the screen and return it as an image the model looks at directly. Pass max_width (200 to 2000) for a smaller image; the reply then reports the scale, and tap coordinates stay in device pixels (device_x = image_x / scale). The local server limits the long side to 1280 px by default and always reports the scale.
screenshot(max_width) local e hospedado - OCR the whole screen or one region into text lines. The hosted server returns a confidence and a bounding box per line; the local server returns the lines and the scanned box.
read_text(region {x1, y1, x2, y2}) local e hospedado - Locate a template on screen with OpenCV matching and return the score and tap coordinates. The template is inline (template_base64) or an image_id from your image library, so a crop made once with crop_image is found every time.
find_image(template_base64 | image_id, threshold) local e hospedado - The Android accessibility hierarchy as compact text, one visible element per line with its class, id, text, description, bounds and flags. Cheaper and more exact than a screenshot for buttons, fields and labels; games and canvas views expose little.
get_ui_tree(max_nodes) local e hospedado - Find UI elements by resource id, text, content description and/or class (selectors combine). Returns the match at index with its bounds and tap centre, plus up to 20 matches. contains=true (default) matches substrings.
find_element(id, text, desc, class, contains, index) local e hospedado - Poll the screen until one target appears or timeout_ms (default 15000, max 60000) passes: a library image (image_id) or inline template, on-screen text (OCR), or a UI element selector. Returns where it was found and the elapsed time. Use it instead of wait plus screenshot loops.
wait_for(image_id | template_base64 | text | element {id, text, desc, class}, threshold, timeout_ms, interval_ms) local e hospedado
Macros and runs
Your macro library, readable and runnable from the client. Hosted runs execute server-side on a cloud device; local runs are the editor's Run button on your emulator.
- List your saved macros with name, id and type (code, or legacy for a retired block macro).
list_macros(page, page_size) local e hospedado - Read a code macro's project: the entry script and the file listing by default, or one file you name.
get_macro_code(macro_id, file) local e hospedado - Start a saved code macro with optional argument overrides and return a run_id at once. Hosted: server-side on a cloud device of yours (it starts if stopped). Local: on the named emulator, which stays busy for the other device tools until the run ends.
run_macro(macro_id, device_id, args) local e hospedado - The state of a hosted run, from launching through running to finished or failed, with its message and timings.
get_run(run_id) hospedado - The state of a local run (running, stopping, completed, failed, stopped), its timestamps and the exit code once it ended. The local name for get_run.
get_run_status(run_id) local - Stop a running macro.
stop_run(run_id) local e hospedado - The trailing stdout and stderr lines of a run, newest last, while it runs or after. Hosted runs come from run_macro, validate_macro or a schedule.
get_run_log(run_id, max_lines) local e hospedado
Image library
Your Image Library, the same one the app shows: crop a control once, then find it by id from any tool or macro.
- List your library images, newest first, optionally within one folder or matching a name substring; each with id, name, folder, pixel size and byte size.
list_images(folder, query, limit, page) local e hospedado - Fetch one library image by id: the picture itself, to confirm it is the template you mean, plus its name, folder and size.
get_image(image_id) local e hospedado - Crop a rectangle of the device's current screen into the library as a PNG template and return its new image_id with a small preview. The region is clamped to the screen; at least 8 by 8 pixels must remain; a name already used in the folder gets a numeric suffix.
crop_image(region {x, y, width, height}, name, folder) local e hospedado
Agent authoring
Hand a goal to MAS Agent and get a finished macro back, from any client.
- Ask MAS Agent to build a macro from a plain-language goal: it explores the app on the device, captures what it needs, writes and validates the macro. macro_id improves one of your macros instead, parent_session_id continues an earlier session, pipeline picks how the code is produced (build, review, author, author_fast). Async and minutes long; returns a session_id. Hosted authoring always uses the metered cloud model; local authoring uses the provider the app has selected (provider overrides it).
author_macro(prompt, device_id, model, macro_id, parent_session_id, pipeline) local e hospedado - Progress of an authoring session: state, summary, the macro id once it exists, and any question the agent is waiting on. Hosted sessions also return the transcript events after your cursor.
get_agent_session(session_id, after_seq) local e hospedado - Answer the agent's pending question so it can continue. Hosted: qid plus an answers object keyed by question header; local: one answer string (an option label or free text).
answer_agent_session(session_id, qid, answers) local e hospedado - Stop a session early. Work done so far is saved.
stop_agent_session(session_id) local e hospedado
Developer loop
Write a macro yourself, in the house style: scaffold the project, install it as a code macro, prove it with one run.
- Generate the house project skeleton for a new code macro: src/app.py wiring, one src/activities/<name>.py stub per activity, common_logic.py, the scheduler library, task.yaml, ui.xml, requirements.txt and README.md. Pure: nothing is saved; returns {files: {path: content}} for you to fill in.
scaffold_macro(name, activities, description, app_package) local e hospedado - Create a code macro from project files, or replace the code of one of yours when macro_id is given, through the same create and code-sync path the app uses. files is {path: content}, 2 MB total; the code is syntax-checked on intake. The local server also takes project_dir, a folder on your PC.
install_macro(name, files, macro_id, description) local e hospedado - Run a macro once and wait for the verdict: passed, exit code and the log tail. Hosted: one run on a cloud device, default 300 s; a run still going at the timeout is stopped. Local: the engine's validation job on your emulator, which also checks task.yaml; pass macro_id or project_dir, and runs (1 to 5) for the graduation ladder.
validate_macro(macro_id, device_id, timeout_s, args) local e hospedado
App maps
What the agent has learned about an app, readable by your client.
- The learned menu map of an app: its screens and the proven routes between them.
get_map(package, profile) hospedado
Scheduling
The same scheduler the app's Schedule card uses. Hosted jobs run on a cloud device with your PC off; local jobs fire while the app is open.
- Schedule a code macro to run without you: once at `at` (RFC 3339) or recurring with every = daily, weekly (with weekdays) or monthly, in an IANA timezone. No hourly recurrence: a macro that repeats within the day recurs itself. Missed occurrences are skipped; the job pauses after three consecutive failures. Returns job_id and next_run_at.
schedule_macro(macro_id, device_id, at, every, timezone, name, weekdays) local e hospedado - Your scheduled jobs, cloud and local, with status, next and last run, failures and the auto-pause reason. Filter by status or target.
list_schedules(status, target, page) local e hospedado - Delete a scheduled job for good; a run still going on a cloud device is stopped first. Use the app to skip one occurrence or pause a job.
cancel_schedule(job_id) local e hospedado
Recursos
Documentos que o servidor publica para que um cliente escreva código de macro sem sair da conversa.
mas://statusRead first: the server, the account (subscription, AI credits), the devices it reaches, connected clients on the local server, and where local emulators live (the desktop app).mas://docs/sdk-referenceThe complete reference of the pre-installed mas SDK macros are written against: device control, vision, elements, app management, storage, types and exceptions.mas://docs/house-libraryThe house library MAS Agent builds macros with: the scheduler skeleton, the activity runner and the runtime-UI template that scaffold_macro ships verbatim.
Configuração
Adicione em um minuto
O servidor hospedado usa a sua chave em toda requisição: crie uma no app, em Integrações (MCP) ou em Chaves de API, marque os escopos que quiser e envie-a em um cabeçalho X-API-Key ou Authorization. Um cliente que prefira uma credencial de curta duração pode trocar a chave por um token de acesso que dura 1 hora, e um cliente que faz login interativo recebe os próprios tokens. O servidor local não precisa de chave nenhuma.
curl -s -X POST https://api.automationmacro.com/api/mcp/oauth/token -d grant_type=client_credentials -d client_secret=$MAS_API_KEY Claude Code
O servidor hospedado com a sua chave em um cabeçalho, depois o servidor local por URL enquanto o app estiver aberto:
claude mcp add --transport http mas-cloud https://api.automationmacro.com/mcp --header "X-API-Key: $MAS_API_KEY"
claude mcp add --transport http mas-local http://127.0.0.1:3846/mcp Cursor
Em .cursor/mcp.json, os dois servidores como entradas HTTP:
{
"mcpServers": {
"mas-cloud": {
"url": "https://api.automationmacro.com/mcp",
"headers": { "X-API-Key": "<your key>" }
},
"mas-local": { "url": "http://127.0.0.1:3846/mcp" }
}
} Codex CLI
Em ~/.codex/config.toml, com a chave em uma variável de ambiente; o servidor local é codex mcp add mas-local --url:
[mcp_servers.mas-cloud]
url = "https://api.automationmacro.com/mcp"
bearer_token_env_var = "MAS_API_KEY" Hermes, OpenCode, Gemini CLI e os demais
Qualquer cliente que aceite um servidor HTTP com cabeçalho. O Claude Desktop inicia um comando em vez disso, então ele recebe o próprio app como ponte para o servidor local; o app mostra o bloco já com o seu caminho de instalação.
{
"mcpServers": {
"mas-cloud": { "type": "http", "url": "https://api.automationmacro.com/mcp", "headers": { "X-API-Key": "<your key>" } },
"mas-local": { "type": "http", "url": "http://127.0.0.1:3846/mcp" }
}
} Verifique: peça ao seu cliente para listar os dispositivos, depois uma captura de tela. Endpoint https://api.automationmacro.com/mcp, protocolo 2025-06-18, documentos de descoberta em /.well-known.
O agente, como ferramenta
author_macro: de uma exploração por IA a uma macro Python pronta
A maioria dos servidores MCP Android para no dispositivo. Este entrega o agente. author_macro recebe um objetivo em linguagem comum e um dispositivo na nuvem e inicia uma sessão do MAS Agent que explora o app, captura as imagens de modelo e regiões de texto de que precisa da tela ao vivo, compila uma macro Python determinística e a valida por repetição. get_agent_session retorna a transcrição com um cursor e qualquer pergunta que o agente fez; answer_agent_session responde. A macro pronta entra na sua biblioteca com seu id na sessão, pronta para run_macro, e cada execução depois disso custa zero créditos de IA. Conheça o MAS Agent.
QA
Testes de apps Android e fluxos de QA
Aponte um cliente para uma build de teste em um emulador ou dispositivo na nuvem, percorra o fluxo com tap, type_text e press_key, e verifique cada tela com read_text ou find_image. Percorra o fluxo uma vez com author_macro e ele vira uma verificação repetível que você pode agendar. Ele testa o app pela tela como um usuário faz; não é um framework de testes unitários.
Segurança
Servidor remoto, transporte HTTP, chaves com escopo e um servidor local que só responde à sua máquina
O servidor hospedado é JSON-RPC sem estado sobre HTTPS em um único endpoint. As chaves são criadas no app, exibidas uma vez, podem ter data de validade e são revogadas com um clique; os tokens gerados a partir delas duram 1 hora e morrem junto com a chave. Cada chave carrega apenas os escopos que você concede:
-
devices:controllease a cloud device, see its screen, tap, type, manage apps and the image library -
macros:runlist and read macros; start, check, validate and stop runs; read run logs; manage schedules -
macros:authorstart, follow, answer and stop an agent authoring session; scaffold and install macro code -
maps:readread the learned map of an app
O servidor local escuta em loopback e só responde à sua própria máquina: uma requisição de outra máquina, ou de uma página do navegador em outra origem, é recusada. Ele roda enquanto o app está aberto, e você desliga no mesmo lugar em que ligou.
Perguntas frequentes sobre o servidor MCP Android
O que é um servidor MCP Android?
MCP (Model Context Protocol) é como clientes de IA como Claude Code, Cursor e Codex chamam ferramentas externas. Um servidor MCP Android expõe um dispositivo Android como ferramentas: tirar uma captura de tela, ler o texto nela, tocar, deslizar, digitar, abrir um app. O servidor do MAS expõe 41 ferramentas e adiciona o que um servidor de dispositivo sozinho não consegue: rodar uma macro salva, pedir ao MAS Agent para criar uma e ler o mapa que ele aprendeu de um app.
Como conecto o Claude Code a um emulador Android?
Para o seu próprio emulador, ative o servidor local no app, em Integrações (MCP), e registre a URL dele: claude mcp add --transport http mas-local http://127.0.0.1:3846/mcp. Ele controla qualquer dispositivo que o adb enxerga. Para um dispositivo na nuvem, adicione o servidor hospedado com claude mcp add --transport http e depois faça login em /mcp dentro do Claude Code ou passe a sua chave em um cabeçalho. Os dois trechos estão nesta página.
Funciona com BlueStacks, LDPlayer, MuMu, MEmu?
Sim. O servidor local fala com o que adb devices listar, o que cobre BlueStacks, LDPlayer, MuMu, MEmu e os outros emuladores compatíveis com adb, no Windows ou macOS. Nada nele é preso a uma marca de emulador.
O Cursor ou o Codex podem controlar um emulador Android por MCP?
Sim. O Cursor aceita os dois servidores como entradas HTTP em mcp.json: o hospedado com a sua chave em um cabeçalho, o local com a URL de loopback dele. O Codex CLI adiciona o servidor hospedado com codex mcp add e uma chave vinda de uma variável de ambiente, e o servidor local com --url. As mesmas ferramentas aparecem em cada um.
Quais outros clientes MCP funcionam?
Qualquer cliente que consiga chamar um servidor MCP por HTTP: Claude Code, Cursor, Codex, Hermes, OpenCode, Gemini CLI e outros. O Claude Desktop e o claude.ai adicionam o servidor hospedado como conector personalizado e pedem o seu login; para o servidor local, o Claude Desktop inicia o próprio app, porque ele executa comandos em vez de chamar URLs.
Preciso ter ADB ou Android Studio instalado?
O servidor local controla o emulador pelo adb, e o app de desktop traz a própria cópia, então não há nada para instalar além do app; o Android Studio não é necessário. O servidor hospedado não precisa de nada instalado: os dispositivos na nuvem são controlados no servidor e seu cliente apenas chama ferramentas.
O modelo realmente enxerga a tela?
Sim. screenshot retorna a tela como uma imagem que o modelo olha diretamente. read_text roda OCR e retorna cada linha com uma confiança e uma caixa delimitadora, e find_image procura um modelo que você envia e retorna a pontuação e as coordenadas para tocar. Não precisa de árvore de acessibilidade, e é por isso que funciona em jogos.
Posso controlar um celular Android físico conectado ao meu PC?
Sim, pelo servidor local. Ative a depuração USB, conecte o celular, e ele aparece em list_devices como qualquer emulador. As ferramentas de tela, entrada e visão funcionam do mesmo jeito.
É um servidor MCP remoto ou roda localmente?
Os dois. O servidor hospedado é um endpoint HTTP remoto, https://api.automationmacro.com/mcp, com todas as 41 ferramentas para os seus dispositivos na nuvem. O servidor local é o próprio app de desktop, em http://127.0.0.1:3846/mcp, com 38 ferramentas para emuladores e celulares conectados: as mesmas ferramentas de dispositivo, visão, macro, biblioteca de imagens, criação, ciclo de desenvolvimento e agendamento, menos as reservas de dispositivo e os mapas de app. O que muda é onde o trabalho roda.
Como funciona a autenticação?
O servidor hospedado usa a chave que você cria no app, com os escopos que marcar, em um cabeçalho X-API-Key ou Authorization: Bearer em toda requisição. Um cliente que implemente a extensão de credenciais de cliente do MCP pode trocá-la por um token de uma hora em https://api.automationmacro.com/api/mcp/oauth/token, e um cliente que faz login interativo recebe os próprios tokens; revogar a chave derruba todos eles. Os documentos de descoberta são publicados em /.well-known. O servidor local não tem chave.
O que author_macro retorna e quanto tempo leva?
Ele inicia uma sessão do MAS Agent em um dispositivo na nuvem e retorna um id de sessão na hora. O agente explora o app por vários minutos; get_agent_session transmite a transcrição com um cursor e mostra qualquer pergunta que ele fizer, que você responde com answer_agent_session. Quando termina, o id da macro está na sessão e a macro está na sua biblioteca, pronta para run_macro. A criação gasta créditos de IA; rodar a macro pronta custa zero. Conheça o MAS Agent.
É grátis? Quanto custa um dispositivo na nuvem?
O servidor local faz parte do app de desktop, sem custo adicional; ele precisa do app aberto e com login feito. O servidor hospedado faz parte da sua conta MAS; suas ferramentas de dispositivo funcionam nos dispositivos na nuvem que você possui, $80/mês cada com a franquia mensal de créditos, e não há cobrança por chamada nas ferramentas de dispositivo. Rodar uma macro pronta custa zero créditos; a criação pelo agente gasta créditos enquanto trabalha. Ver preços.
Pode rodar 24 horas em um dispositivo na nuvem sem o meu PC ligado?
Sim. lease_device abre uma sessão de controle em um dispositivo na nuvem e pode iniciar um que esteja parado; run_macro executa no servidor. Seu PC não precisa ficar ligado, e a reserva se renova a cada chamada e expira depois de 10 minutos ociosos. Ver dispositivos na nuvem.
Posso usar para testes de apps Android e QA?
Sim. Aponte um cliente para uma build de teste, percorra o fluxo com tap, type e press_key, verifique cada tela com read_text ou find_image, e deixe author_macro transformar um fluxo que você percorre uma vez em uma verificação repetível. Ele automatiza o app pela tela como um usuário faz; não é um framework de testes unitários.