Patchright Lite MCP Server
Um servidor que encapsula o Patchright SDK para fornecer automação de navegador furtiva para modelos de IA.
Documentação
Patchright Lite MCP Server
Um servidor simplificado do Model Context Protocol (MCP) que encapsula o SDK Node.js do Patchright para fornecer capacidades de automação de navegador stealth para modelos de IA. Este servidor leve foca na funcionalidade essencial para facilitar o uso por modelos de IA mais simples.
O que é o Patchright?
Patchright é uma versão não detectada do framework de teste e automação Playwright. Ele foi projetado como um substituto direto do Playwright, mas com capacidades avançadas de stealth para evitar detecção por sistemas anti-bot. O Patchright corrige várias técnicas de detecção, incluindo:
- Vazamento de Runtime.enable
- Vazamento de Console.enable
- Vazamentos de flags de comando
- Pontos de detecção gerais
- Interações com Shadow Root fechado
Este servidor MCP encapsula a versão Node.js do Patchright para disponibilizar suas capacidades a modelos de IA por meio de um protocolo simples e padronizado.
Recursos
- Interface Simples: Focado na funcionalidade principal com apenas 4 ferramentas essenciais
- Automação Stealth: Usa o modo stealth do Patchright para evitar detecção
- Padrão MCP: Implementa o Model Context Protocol para fácil integração com IA
- Transporte Stdio: Usa entrada/saída padrão para integração perfeita
Pré-requisitos
- Node.js 18+
- npm ou yarn
Instalação
-
Clone este repositório:
git clone https://github.com/yourusername/patchright-lite-mcp-server.git cd patchright-lite-mcp-server -
Instale as dependências:
npm install -
Compile o código TypeScript:
npm run build -
Instale o Chromium-Driver para Pathright:
npx patchright install chromium
Uso
Execute o servidor com:
npm start
Isso iniciará o servidor com transporte stdio, tornando-o pronto para integração com ferramentas de IA que suportam MCP.
Integração com Modelos de IA
Claude Desktop
Adicione isto ao seu arquivo claude-desktop-config.json:
{
"mcpServers": {
"patchright": {
"command": "node",
"args": ["path/to/patchright-lite-mcp-server/dist/index.js"]
}
}
}
VS Code com GitHub Copilot
Use a CLI do VS Code para adicionar o servidor MCP:
code --add-mcp '{"name":"patchright","command":"node","args":["path/to/patchright-lite-mcp-server/dist/index.js"]}'
Ferramentas Disponíveis
O servidor fornece apenas 4 ferramentas essenciais:
1. browse
Inicia um navegador, navega para uma URL e extrai conteúdo.
Tool: browse
Parameters: {
"url": "https://example.com",
"headless": true,
"waitFor": 1000
}
Retorna:
- Título da página
- Prévia do texto visível
- ID do navegador (para operações subsequentes)
- ID da página (para operações subsequentes)
- Caminho da captura de tela
2. interact
Realiza uma interação simples em uma página.
Tool: interact
Parameters: {
"browserId": "browser-id-from-browse",
"pageId": "page-id-from-browse",
"action": "click", // can be "click", "fill", or "select"
"selector": "#submit-button",
"value": "Hello World" // only needed for fill and select
}
Retorna:
- Resultado da ação
- URL atual
- Caminho da captura de tela
3. extract
Extrai conteúdo específico da página atual.
Tool: extract
Parameters: {
"browserId": "browser-id-from-browse",
"pageId": "page-id-from-browse",
"type": "text" // can be "text", "html", or "screenshot"
}
Retorna:
- Conteúdo extraído com base no tipo solicitado
4. close
Fecha um navegador para liberar recursos.
Tool: close
Parameters: {
"browserId": "browser-id-from-browse"
}
Fluxo de Uso de Exemplo
-
Inicie um navegador e navegue para um site:
Tool: browse Parameters: { "url": "https://example.com/login", "headless": false } -
Preencha um formulário de login:
Tool: interact Parameters: { "browserId": "browser-id-from-step-1", "pageId": "page-id-from-step-1", "action": "fill", "selector": "#username", "value": "user@example.com" } -
Preencha a senha:
Tool: interact Parameters: { "browserId": "browser-id-from-step-1", "pageId": "page-id-from-step-1", "action": "fill", "selector": "#password", "value": "password123" } -
Clique no botão de login:
Tool: interact Parameters: { "browserId": "browser-id-from-step-1", "pageId": "page-id-from-step-1", "action": "click", "selector": "#login-button" } -
Extraia texto para verificar o login:
Tool: extract Parameters: { "browserId": "browser-id-from-step-1", "pageId": "page-id-from-step-1", "type": "text" } -
Feche o navegador:
Tool: close Parameters: { "browserId": "browser-id-from-step-1" }
Considerações de Segurança
- Este servidor fornece capacidades poderosas de automação. Use-o de forma responsável e ética.
- Evite automatizar ações que violem os termos de serviço dos sites.
- Esteja atento aos limites de taxa e não sobrecarregue os sites com solicitações.
Licença
Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.
Agradecimentos
- Patchright-nodejs por Kaliiiiiiiiii-Vinyzu
- Model Context Protocol por modelcontextprotocol
Uso com Docker
Você pode executar este servidor usando Docker:
docker run -it --rm dylangroos/patchright-mcp
Construindo a Imagem Docker Localmente
Construa a imagem Docker:
docker build -t patchright-mcp .
Execute o contêiner:
docker run -it --rm patchright-mcp
Docker Hub
A imagem é publicada automaticamente no Docker Hub quando alterações são mescladas no branch principal. Você pode encontrar a imagem mais recente em: dylangroos/patchright-mcp