MCP server that gives Claude Code control of the Arc browser via the Chrome DevTools Protocol.
Arc CDP MCP has 11 well-structured tools with consistent naming (arc_* prefix) and mostly complete schemas using Zod. Descriptions are present and contextual (Portuguese, appropriate for the domain). However, several tools lack parameter descriptions, output schemas are not formally documented, and error handling is minimal. Tool composition is sound (each does one thing), but parameter validation and recovery guidance are weak. Average tool score: 62/100.
Clica num elemento, identificado por ref (de arc_read_page), seletor CSS ou texto visível.
Fecha uma aba aberta por este servidor. Abas do usuário não podem ser fechadas.
Mensagens de console e erros de página capturados desde que a aba abriu.
Roda JavaScript na página e devolve o resultado serializado.
Abre uma URL no Arc. Por padrão reusa a aba ativa; passe newTab para abrir outra.
Respostas HTTP capturadas na aba desde que ela abriu.
Aperta uma tecla na página (Enter, Escape, ArrowDown, Control+A…).
Output schemas not formally documented. Tools return text/image responses via helper functions (text(), fail()) but no structured schema is declared for downstream tool chaining. LLMs cannot predict response structure for planning.
Error handling lacks recovery guidance. Catch-all try/catch returns 'Erro: {message}' with isError=true but no actionable next steps. LLMs cannot self-correct or know if error is retryable.
arc_eval accepts arbitrary JavaScript expressions with no validation or sandboxing. Malicious or buggy code can crash the page or leak sensitive data. No input sanitization against injection.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Devolve o texto visível da página e a lista de elementos interativos, cada um com um ref estável. Use os refs em arc_click e arc_type em vez de inventar seletores CSS.
Captura a aba como PNG. Use para ver o estado visual da página.
Lista as abas do Arc visíveis, com id, título e URL. `owned: true` são as abas que este servidor abriu; `owned: false` são abas do próprio usuário — só atue nelas se ele pedir, passando o tabId explicitamente.
Preenche um campo de texto. Com submit, aperta Enter no fim.
Destructive operations (arc_close_tab, arc_click, arc_type, arc_eval) lack confirmation or dry-run support. Agents can irreversibly modify browser state without safeguards.
locate() helper accepts ref, selector, or text but does not validate that at least one is provided. Error message 'Informe ref, selector ou text' is generic and does not guide LLM to correct usage.