cliqueja
Enables fast browser automation on a real Chrome tab via a local hub, providing MCP tools for clicking, filling, snapshotting, and navigating without launching a full browser instance.
README
Clique Já
<p align="center"> <img src="ext/icon-128.png" width="96" height="96" alt="Clique Já" /> </p>
<p align="center"> <strong>Automação de browser rápida</strong> · extensão Chrome MV3 · hub local · MCP<br/> Clique, fill e snapshot na aba real — sem esperar o Playwright inteiro pra cada gesto. </p>
<p align="center"> <a href="https://github.com/paivaxqz/cliqueja/stargazers"><img alt="stars" src="https://img.shields.io/github/stars/paivaxqz/cliqueja?style=for-the-badge&color=ff0033" /></a> <a href="LICENSE"><img alt="license" src="https://img.shields.io/badge/license-MIT-111827?style=for-the-badge" /></a> <img alt="mv3" src="https://img.shields.io/badge/Chrome-MV3-4285F4?style=for-the-badge&logo=googlechrome&logoColor=white" /> <img alt="node" src="https://img.shields.io/badge/node-%3E%3D20-3776AB?style=for-the-badge&logo=nodedotjs&logoColor=white" /> <img alt="mcp" src="https://img.shields.io/badge/MCP-tools-0A0A0A?style=for-the-badge" /> </p>
Por que existe
Playwright e puppeteer são ótimos — e pesados pra “só clicar nesse botão agora”.
Clique Já prende uma aba do Chrome que você já usa, injeta um micro-runtime vermelho (__cliqueja) e responde comandos via WebSocket em milissegundos.
| Clique Já | Automação clássica | |
|---|---|---|
| Browser | Chrome real (sua sessão) | Chromium isolado |
| Sessão / login | já logado | re-auth / storage state |
| Latência por click | 1 evaluate |
stack completa |
| Agente IA | tools MCP | scripts / custom |
Fluxograma
flowchart LR
subgraph Agent["Agente / CLI"]
MCP["mcp.mjs<br/>tools MCP"]
HTTP["POST /cmd"]
end
subgraph Hub["Hub local :17321"]
H["hub.mjs<br/>WebSocket + HTTP"]
end
subgraph Chrome["Chrome"]
EXT["Extensão Clique Já<br/>service worker"]
TAB["Aba http(s)"]
INJ["inject.js<br/>window.__cliqueja"]
end
MCP -->|WS| H
HTTP -->|HTTP| H
H <-->|WS| EXT
EXT -->|scripting MAIN world| INJ
INJ --> TAB
Fluxo de um click
sequenceDiagram
participant A as Agente
participant H as Hub :17321
participant E as Extensão
participant P as Página
A->>H: { method: "click", sel: "button" }
H->>E: mesmo envelope (WS)
E->>P: inject + __cliqueja.click
P-->>E: ok (+ flash vermelho)
E-->>H: { ok: true }
H-->>A: result
Arquitetura detalhada: docs/ARCHITECTURE.md
Quick start
1. Hub
git clone https://github.com/paivaxqz/cliqueja.git
cd cliqueja
npm install
npm run hub
# ou: start-hub.bat (Windows)
Hub escuta só 127.0.0.1:17321.
2. Extensão
- Chrome →
chrome://extensions→ Developer mode - Load unpacked → pasta
ext/ - Abra um site
http(s)(nãochrome://) - Clique no ícone → usar esta aba (badge ON vermelho)
3. Smoke HTTP
curl http://127.0.0.1:17321/status
curl -X POST http://127.0.0.1:17321/cmd -H "content-type: application/json" -d "{\"method\":\"ping\"}"
4. MCP na IA (PC do usuário)
Hub + extensão rodam na máquina de quem usa — não na nuvem.
Guia completo (3 passos + Cursor/Claude): docs/MCP.md
Config Cursor — path do clone do usuário:
{
"mcpServers": {
"cliqueja": {
"command": "node",
"args": ["${workspaceFolder}/mcp.mjs"]
}
}
}
Se a pasta aberta no Cursor não for o clone, use path absoluto (C:\\Users\\...\\cliqueja\\mcp.mjs ou /Users/.../cliqueja/mcp.mjs).
Tools: cliqueja_status · abas · usar_aba · ir · click · fill · texto · snapshot · links · upload
Por que não Vercel?
Vercel não abre o Chrome do usuário nem recebe o WebSocket da extensão (127.0.0.1).
Landing/docs na Vercel ok. Hub + MCP + extensão = sempre local. → docs/MCP.md
5. Modo lib (Playwright fino)
npm run exemplo
index.js + inject.js: Chrome via playwright-core, 1 evaluate por ação, marca vermelha no canto.
Seletores
- CSS:
button.buy,#email - Texto:
text=Entrar - XPath:
xpath=//button[@type='submit']
Timeout padrão da extensão: 4s (inject espera com requestAnimationFrame).
Estrutura
cliqueja/
├── ext/ # Chrome MV3 (load unpacked)
│ ├── manifest.json
│ ├── background.js # WS client + comandos
│ ├── inject.js # runtime na página
│ ├── popup.* # UI vermelha
│ └── icon-128.png
├── hub.mjs # bridge WS/HTTP
├── mcp.mjs # MCP stdio → hub
├── index.js # lib Playwright rápida
├── inject.js # mesmo runtime (lib)
├── exemplo.js
├── start-hub.bat
└── docs/
└── ARCHITECTURE.md
Segurança
- Hub localhost only — não exponha a porta
- Extensão pede
debuggersó pra upload de arquivo (CDPDOM.setFileInputFiles) - Não rode em máquinas compartilhadas sem entender o que o agente pode clicar
- Use por sua conta e risco; respeite ToS dos sites que automatizar
Licença
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.