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

  1. Clone este repositório:

    git clone https://github.com/yourusername/patchright-lite-mcp-server.git
    cd patchright-lite-mcp-server
    
  2. Instale as dependências:

    npm install
    
  3. Compile o código TypeScript:

    npm run build
    
  4. 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

  1. Inicie um navegador e navegue para um site:

    Tool: browse
    Parameters: {
      "url": "https://example.com/login",
      "headless": false
    }
    
  2. 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"
    }
    
  3. Preencha a senha:

    Tool: interact
    Parameters: {
      "browserId": "browser-id-from-step-1",
      "pageId": "page-id-from-step-1",
      "action": "fill",
      "selector": "#password",
      "value": "password123"
    }
    
  4. 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"
    }
    
  5. Extraia texto para verificar o login:

    Tool: extract
    Parameters: {
      "browserId": "browser-id-from-step-1",
      "pageId": "page-id-from-step-1",
      "type": "text"
    }
    
  6. 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