MobAI MCP

Servidor MCP (Model Context Protocol) para MobAI (https://mobai.run) - automação de dispositivos móveis com IA

Documentação

Servidor MobAI MCP

npm version License

Servidor MCP (Model Context Protocol) para MobAI — automação de dispositivos móveis com IA. Permite que assistentes de IA (Claude Code, Cursor, Windsurf, Cline e outras ferramentas compatíveis com MCP) controlem dispositivos Android e iOS, emuladores e simuladores por meio de uma interface única baseada em DSL.

Como funciona

Toda interação com o dispositivo é agrupada em uma ferramenta principal: execute_dsl. Em vez de expor dezenas de ferramentas granulares (toque, deslize, digitação…), o servidor aceita um script JSON que descreve uma sequência de ações com predicados, asserções, esperas e ramificações condicionais. Isso mantém o número de idas e voltas baixo e codifica estratégias de repetição/falha no lado do servidor.

Um pequeno conjunto de ferramentas complementares lida com descoberta de dispositivos, capturas de tela, gerenciamento de aplicativos e execução de arquivos de teste .mob.

Pré-requisitos

  • Node.js 18+
  • Aplicativo de desktop MobAI em execução localmente (API HTTP em 127.0.0.1:8686)
  • Um dispositivo Android ou iOS, emulador ou simulador conectado

Instalação

Claude Code

claude mcp add mobai -- npx -y mobai-mcp

Cursor

Adicione a .cursor/mcp.json:

{
  "mcpServers": {
    "mobai": {
      "command": "npx",
      "args": ["-y", "mobai-mcp"]
    }
  }
}

Claude Desktop

Adicione a ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "mobai": {
      "command": "npx",
      "args": ["-y", "mobai-mcp"]
    }
  }
}

Windsurf / Cline / outros clientes MCP

O servidor usa stdio — use a configuração MCP genérica do seu cliente:

{
  "command": "npx",
  "args": ["-y", "mobai-mcp"]
}

Ferramentas

Gerenciamento de dispositivos

FerramentaDescrição
list_devicesLista todos os dispositivos Android e iOS conectados
get_deviceObtém detalhes sobre um dispositivo específico
start_bridgeInicia a ponte de automação em um dispositivo (necessário antes da interação)
stop_bridgeInterrompe a ponte de automação
claim_deviceReivindica uso exclusivo de um dispositivo para esta sessão (geralmente opcional: agir em um dispositivo não reivindicado o reivindica automaticamente)
release_deviceLibera uma ou todas as concessões de dispositivo mantidas por esta sessão

Capturas de tela

FerramentaDescrição
get_screenshotCaptura de tela rápida e de baixa qualidade para análise visual por LLM (pode ser reduzida; a resposta inclui o fator de escala)
save_screenshotPNG em qualidade total para disco, para relatórios, depuração ou compartilhamento

Aplicativos

FerramentaDescrição
list_appsLista os aplicativos instalados no dispositivo
install_appInstala um .apk ou .ipa a partir de um caminho de arquivo local
uninstall_appDesinstala um aplicativo por ID do pacote / nome do pacote
debug_appInicia um aplicativo em modo de depuração e grava stdout/stderr em um arquivo de log

Automação

FerramentaDescrição
execute_dslFerramenta principal. Executa um lote de etapas DSL: toque, digitação, deslize, observação, asserções, automação web, métricas, gravação de tela e muito mais.

Gerenciamento de testes

Os testes são arquivos .mob em disco dentro de diretórios de projeto. Você os lê, escreve e edita diretamente usando as ferramentas de sistema de arquivos do seu assistente — o MobAI observa as alterações e atualiza a interface ao vivo. O MCP é necessário apenas para descobrir projetos e executar testes.

FerramentaDescrição
test_get_activeObtém o diretório do projeto de teste ativo e seus casos .mob
test_list_projectsLista todos os diretórios de projeto de teste conhecidos com seus casos .mob
test_runExecuta um caso de teste .mob em um dispositivo (project_dir + case_path + device_id, params opcional para substituição de ${name})

Recursos

Leia estes antes de tentar qualquer interação com o dispositivo — eles descrevem o esquema DSL, o conjunto de ações, predicados, estratégias de falha e a sintaxe .mob.

URIFinalidade
mobai://reference/device-automationComo controlar dispositivos — guia, todas as ações DSL, predicados e estratégias de falha
mobai://reference/testingFluxo de trabalho de testes, regras, correções de erros e sintaxe de script .mob

Exemplo

Abra o aplicativo Ajustes do iOS, navegue até Wi-Fi e verifique se o botão de alternância existe:

{
  "version": "0.2",
  "steps": [
    {"action": "open_app", "bundle_id": "com.apple.Preferences"},
    {"action": "wait_for", "predicate": {"text": "Settings"}, "timeout_ms": 3000},
    {"action": "tap", "predicate": {"text_contains": "Wi-Fi"}},
    {"action": "wait_for", "predicate": {"type": "switch"}, "timeout_ms": 3000},
    {"action": "assert_exists", "predicate": {"type": "switch"}},
    {"action": "observe", "include": ["ui_tree"]}
  ]
}

Passe isso como o argumento commands (uma string JSON) para execute_dsl junto com um device_id de list_devices.

Solução de problemas

"Connection refused" / "Could not reach the MobAI desktop app" — Certifique-se de que o aplicativo de desktop MobAI esteja instalado e em execução, e que a API esteja acessível em http://127.0.0.1:8686. Se você ainda não o tiver, baixe e instale-o em https://mobai.run/download.

"Bridge not running" — Chame start_bridge primeiro. A ponte iOS pode levar até um minuto para ficar pronta.

Capturas de tela não visíveis — get_screenshot salva em /tmp/mobai/screenshots/ por padrão e retorna o caminho do arquivo. Use o recurso de leitura de arquivos do seu assistente para visualizá-las. As capturas de tela DSL observe são extraídas da resposta e salvas no mesmo diretório.

Desenvolvimento

git clone https://github.com/MobAI-App/mobai-mcp.git
cd mobai-mcp
npm install
npm run build
node dist/index.js

Licença

Apache 2.0 — consulte LICENSE.