d8796531ee
- Added 9 new tools: visual overlay, highlight, toast, drag-drop, etc. - Fixed evaluateJS to support function arguments - Fixed hover for non-visible elements - Fixed storage operations with try/catch - Added 10 new wait tools: clickable, element visible, text - Fixed tool name mapping in server.js for MCP protocol - Updated README with 60+ tools documentation - Version bump to 3.1.1
273 lines
6.8 KiB
Markdown
273 lines
6.8 KiB
Markdown
# MCP-Browser v3.1.1
|
|
|
|
MCP server para automação de navegador de alta qualidade usando [Playwright](https://playwright.dev/) com **60+ tools** para automação avançada.
|
|
|
|

|
|

|
|

|
|

|
|
|
|
## Novidades v3.1.1
|
|
|
|
- **Correções de bugs** - hover, storage, evaluateJS com argumentos
|
|
- **Melhor responsividade** - Visual overlay adaptável para mobile/tablet
|
|
- **Stealth Mode** - Anti-detecção avançada
|
|
- **60+ ferramentas** - Cobertura completa de automação
|
|
|
|
## Instalação
|
|
|
|
```bash
|
|
npm install
|
|
npx playwright install chromium
|
|
```
|
|
|
|
## Configuração
|
|
|
|
```bash
|
|
node server.js
|
|
```
|
|
|
|
## Tools Disponíveis (60+)
|
|
|
|
### Navegação
|
|
| Tool | Descrição |
|
|
|------|-----------|
|
|
| `open_url` | Abre URL |
|
|
| `new_tab` | Nova aba |
|
|
| `switch_tab` | Troca aba |
|
|
| `list_tabs` | Lista abas |
|
|
| `close_tab` | Fecha aba |
|
|
| `go_back` | Voltar |
|
|
| `go_forward` | Avançar |
|
|
| `reload` | Recarregar |
|
|
| `wait_for_url` | Espera URL |
|
|
|
|
### Interação
|
|
| Tool | Descrição |
|
|
|------|-----------|
|
|
| `click` | Clica (suporta duplo, right-click) |
|
|
| `smart_click` | Clica por texto |
|
|
| `type` | Digita (suporta lentamente) |
|
|
| `smart_type` | Digita por label |
|
|
| `hover` | Faz hover |
|
|
| `select` | Seleciona opção |
|
|
| `press_key` | Pressiona tecla |
|
|
| `scroll_to` | Rola página (top/bottom/selector/px) |
|
|
| `drag_and_drop` | Arrasta e solta elemento |
|
|
| `upload_file` | Upload de arquivo |
|
|
|
|
### Extração
|
|
| Tool | Descrição |
|
|
|------|-----------|
|
|
| `get_text` | Extrai texto |
|
|
| `get_html` | Extrai HTML |
|
|
| `get_links` | Lista links |
|
|
| `get_buttons` | Lista botões |
|
|
| `get_forms` | Lista formulários |
|
|
| `extract_elements` | Extrai elementos |
|
|
| `get_input_values` | Obtém valores de inputs |
|
|
| `get_url` | URL atual |
|
|
| `get_title` | Título da página |
|
|
| `evaluate_js` | Executa JavaScript |
|
|
|
|
### Screens & PDF
|
|
| Tool | Descrição |
|
|
|------|-----------|
|
|
| `screenshot` | Screenshot (full/elemento) |
|
|
| `annotated_screenshot` | Screenshot com elementos highlights |
|
|
| `pdf` | Gera PDF |
|
|
|
|
### Visuais & Overlay
|
|
| Tool | Descrição |
|
|
|------|-----------|
|
|
| `enable_visual_overlay` | Ativa cursor customizado + indicadores |
|
|
| `highlight_element` | Destaca elemento com animação |
|
|
| `show_toast` | Notificação toast na página |
|
|
|
|
### Viewport & Device
|
|
| Tool | Descrição |
|
|
|------|-----------|
|
|
| `set_viewport` | Define viewport |
|
|
| `emulate_device` | Emula dispositivo |
|
|
|
|
### Cookies & Storage
|
|
| Tool | Descrição |
|
|
|------|-----------|
|
|
| `get_cookies` | Obtém cookies |
|
|
| `set_cookies` | Define cookies |
|
|
| `clear_cookies` | Limpa cookies |
|
|
| `get_storage` | Obtém storage |
|
|
| `set_storage` | Define storage |
|
|
| `clear_storage` | Limpa storage |
|
|
|
|
### Network
|
|
| Tool | Descrição |
|
|
|------|-----------|
|
|
| `get_network_logs` | Logs de rede |
|
|
| `block_resources` | Bloqueia recursos |
|
|
|
|
### Performance
|
|
| Tool | Descrição |
|
|
|------|-----------|
|
|
| `get_performance_metrics` | Métricas |
|
|
|
|
### Wait
|
|
| Tool | Descrição |
|
|
|------|-----------|
|
|
| `wait` | Aguarda ms |
|
|
| `wait_for_selector` | Espera elemento |
|
|
| `wait_for_element_visible` | Espera elemento visível |
|
|
| `wait_for_clickable` | Espera elemento clicável |
|
|
| `wait_for_text` | Espera texto aparecer |
|
|
|
|
### Automação
|
|
| Tool | Descrição |
|
|
|------|-----------|
|
|
| `fill_form_auto` | Preenche formulário |
|
|
| `agent_flow` | Fluxo automático |
|
|
| `agent_flow_v2` | Fluxo com retry |
|
|
|
|
### Controle
|
|
| Tool | Descrição |
|
|
|------|-----------|
|
|
| `close_browser` | Fecha navegador |
|
|
|
|
## Exemplo de Uso
|
|
|
|
```javascript
|
|
// Abrir site
|
|
open_url("https://example.com")
|
|
|
|
// Login automático
|
|
fill_form_auto({"email": "user@test.com", "password": "123"})
|
|
smart_click("Entrar")
|
|
wait_for_url("**dashboard**")
|
|
|
|
// Destacar elemento
|
|
highlight_element("button.submit")
|
|
|
|
// Screenshot com anotações
|
|
annotated_screenshot({highlight: [".product-card", ".buy-button"]})
|
|
|
|
// Extrair dados
|
|
get_links()
|
|
get_text(".product-title")
|
|
|
|
// Emular mobile
|
|
emulate_device("iphone-14")
|
|
```
|
|
|
|
## Dispositivos Disponíveis
|
|
|
|
- iphone-se, iphone-14, iphone-14-pro-max
|
|
- ipad, ipad-pro
|
|
- pixel-5, galaxy-s20, galaxy-s23-ultra
|
|
- desktop-1080p, desktop-4k
|
|
|
|
## Estrutura
|
|
|
|
```
|
|
MCP-Browser/
|
|
├── server.js # Servidor MCP
|
|
├── browser.js # Engine Playwright
|
|
├── package.json
|
|
└── tools/ # 60+ tools
|
|
├── openUrl.js
|
|
├── click.js
|
|
├── type.js
|
|
├── screenshot.js
|
|
├── getText.js
|
|
├── getLinks.js
|
|
├── waitForSelector.js
|
|
├── extractElements.js
|
|
├── smartClick.js
|
|
├── smartType.js
|
|
├── getButtons.js
|
|
├── smartWaitNavigation.js
|
|
├── getForms.js
|
|
├── fillFormAuto.js
|
|
├── agentFlow.js
|
|
├── agentFlowV2.js
|
|
├── closeBrowser.js
|
|
├── getURL.js
|
|
├── getTitle.js
|
|
├── getHTML.js
|
|
├── goBack.js
|
|
├── goForward.js
|
|
├── reload.js
|
|
├── evaluateJS.js
|
|
├── waitForURL.js
|
|
├── newTab.js
|
|
├── switchTab.js
|
|
├── listTabs.js
|
|
├── closeTab.js
|
|
├── setViewport.js
|
|
├── emulateDevice.js
|
|
├── hover.js
|
|
├── select.js
|
|
├── pressKey.js
|
|
├── scrollTo.js
|
|
├── pdf.js
|
|
├── getCookies.js
|
|
├── setCookies.js
|
|
├── clearCookies.js
|
|
├── getStorage.js
|
|
├── setStorage.js
|
|
├── clearStorage.js
|
|
├── getNetworkLogs.js
|
|
├── blockResources.js
|
|
├── uploadFile.js
|
|
├── getPerformanceMetrics.js
|
|
├── wait.js
|
|
├── enableVisualOverlay.js
|
|
├── showToast.js
|
|
├── highlightElement.js
|
|
├── dragAndDrop.js
|
|
├── annotatedScreenshot.js
|
|
├── getInputValues.js
|
|
├── waitForClickable.js
|
|
├── waitForElementVisible.js
|
|
└── waitForText.js
|
|
```
|
|
|
|
## Sugestões de Novas Funcionalidades Premium
|
|
|
|
### 1. Gravação e Replay de Ações
|
|
- Gravar sequência de ações (click, type, scroll)
|
|
- Replay automatizado com timing
|
|
- Exportar/importar scripts
|
|
|
|
### 2. OCR e Detecção Visual
|
|
- Detectar texto em imagens (Tesseract)
|
|
- Identificar elementos por imagem
|
|
- Screenshots AI-driven
|
|
|
|
### 3. Integração com IA
|
|
- Análise de página com LLM
|
|
- Auto-complete de ações
|
|
- Detecção de formulários智能化
|
|
|
|
### 4. Proxy Rotativo
|
|
- Múltiplos proxies
|
|
- Rotação automática
|
|
-Geo-targeting
|
|
|
|
### 5. Sessões Persistentes
|
|
- Salvar/carregar estado
|
|
- Snapshot de abas
|
|
- Backup de cookies
|
|
|
|
### 6. Webhooks e Eventos
|
|
- Notificações em tempo real
|
|
- Monitoramento de mudanças
|
|
- Integração com Zapier
|
|
|
|
### 7. headless + UI Mode
|
|
- Alternar entre headless/visible
|
|
- DevTools integrado
|
|
- Debug visual
|
|
|
|
## Licença
|
|
|
|
MIT
|