MCP Selenium Server

Automatize navegadores web usando Selenium WebDriver via MCP.

Documentação

MCP Selenium Server

Um servidor Model Context Protocol (MCP) para Selenium WebDriver — automação de navegador para agentes de IA.

Watch the video

Selenium MCP server

Configuração

Goose (Desktop)

Cole na barra de endereços do seu navegador:

goose://extension?cmd=npx&arg=-y&arg=%40angiejones%2Fmcp-selenium%40latest&id=selenium-mcp&name=Selenium%20MCP&description=automates%20browser%20interactions
Goose (CLI)
goose session --with-extension "npx -y @angiejones/mcp-selenium@latest"
Claude Code
claude mcp add selenium -- npx -y @angiejones/mcp-selenium@latest
Cursor / Windsurf / outros clientes MCP
{
  "mcpServers": {
    "selenium": {
      "command": "npx",
      "args": ["-y", "@angiejones/mcp-selenium@latest"]
    }
  }
}

Exemplo de Uso

Diga ao agente de IA de sua escolha:

Abra o Chrome, vá para github.com/angiejones e tire uma captura de tela.

O agente chamará as APIs do Selenium para start_browser, navigate e take_screenshot. Sem necessidade de scripts manuais ou instruções explícitas.

Navegadores Suportados

Chrome, Firefox, Edge e Safari.

Nota sobre Safari: Requer macOS. Execute sudo safaridriver --enable uma vez e habilite "Permitir Automação Remota" em Safari → Ajustes → Desenvolvedor. Sem modo headless.


Ferramentas

start_browser

Inicia uma sessão de navegador.

ParâmetroTipoObrigatórioDescrição
browserstringSimchrome, firefox, edge ou safari
optionsobjectNão{ headless: boolean, arguments: string[] }

navigate

Navega para uma URL.

ParâmetroTipoObrigatórioDescrição
urlstringSimURL para navegar

interact

Executa uma ação de mouse em um elemento.

ParâmetroTipoObrigatórioDescrição
actionstringSimclick, doubleclick, rightclick ou hover
bystringSimEstratégia de localização: id, css, xpath, name, tag, class
valuestringSimValor para a estratégia de localização
timeoutnumberNãoTempo máximo de espera em ms (padrão: 10000)

send_keys

Digita texto em um elemento. Limpa o campo primeiro.

ParâmetroTipoObrigatórioDescrição
bystringSimEstratégia de localização
valuestringSimValor do localizador
textstringSimTexto a inserir
timeoutnumberNãoTempo máximo de espera em ms (padrão: 10000)

get_element_text

Obtém o conteúdo de texto de um elemento.

ParâmetroTipoObrigatórioDescrição
bystringSimEstratégia de localização
valuestringSimValor do localizador
timeoutnumberNãoTempo máximo de espera em ms (padrão: 10000)

get_element_attribute

Obtém o valor de um atributo de um elemento.

ParâmetroTipoObrigatórioDescrição
bystringSimEstratégia de localização
valuestringSimValor do localizador
attributestringSimNome do atributo (ex.: href, value, class)
timeoutnumberNãoTempo máximo de espera em ms (padrão: 10000)

press_key

Pressiona uma tecla do teclado.

ParâmetroTipoObrigatórioDescrição
keystringSimTecla a pressionar (ex.: Enter, Tab, a)

upload_file

Envia um arquivo por meio de um elemento de entrada de arquivo.

ParâmetroTipoObrigatórioDescrição
bystringSimEstratégia de localização
valuestringSimValor do localizador
filePathstringSimCaminho absoluto para o arquivo
timeoutnumberNãoTempo máximo de espera em ms (padrão: 10000)

take_screenshot

Captura uma captura de tela da página atual.

ParâmetroTipoObrigatórioDescrição
outputPathstringNãoCaminho de salvamento. Se omitido, retorna dados de imagem em base64.

close_session

Fecha a sessão atual do navegador. Sem parâmetros.

execute_script

Executa JavaScript no navegador. Use para interações avançadas não cobertas por outras ferramentas (ex.: arrastar e soltar, rolagem, leitura de estilos computados, manipulação de DOM).

ParâmetroTipoObrigatórioDescrição
scriptstringSimCódigo JavaScript a executar
argsarrayNãoArgumentos acessíveis via arguments[0], etc.

window

Gerencia janelas e abas do navegador.

ParâmetroTipoObrigatórioDescrição
actionstringSimlist, switch, switch_latest ou close
handlestringNãoIdentificador da janela (obrigatório para switch)

frame

Alterna o foco para um frame ou de volta para a página principal.

ParâmetroTipoObrigatórioDescrição
actionstringSimswitch ou default
bystringNãoEstratégia de localização (para switch)
valuestringNãoValor do localizador (para switch)
indexnumberNãoÍndice do frame, baseado em 0 (para switch)
timeoutnumberNãoTempo máximo de espera em ms (padrão: 10000)

alert

Lida com diálogos de alerta, confirmação ou prompt do navegador.

ParâmetroTipoObrigatórioDescrição
actionstringSimaccept, dismiss, get_text ou send_text
textstringNãoTexto a enviar (obrigatório para send_text)
timeoutnumberNãoTempo máximo de espera em ms (padrão: 5000)

add_cookie

Adiciona um cookie. O navegador deve estar em uma página do domínio do cookie.

ParâmetroTipoObrigatórioDescrição
namestringSimNome do cookie
valuestringSimValor do cookie
domainstringNãoDomínio do cookie
pathstringNãoCaminho do cookie
securebooleanNãoSinalizador seguro
httpOnlybooleanNãoSinalizador somente HTTP
expirynumberNãoCarimbo de data/hora Unix

get_cookies

Obtém cookies. Retorna todos ou um específico pelo nome.

ParâmetroTipoObrigatórioDescrição
namestringNãoNome do cookie. Omita para obter todos.

delete_cookie

Exclui cookies. Exclui todos ou um específico pelo nome.

ParâmetroTipoObrigatórioDescrição
namestringNãoNome do cookie. Omita para excluir todos.

diagnostics

Obtém diagnósticos do navegador capturados via WebDriver BiDi (habilitado automaticamente quando suportado).

ParâmetroTipoObrigatórioDescrição
typestringSimconsole, errors ou network
clearbooleanNãoLimpar buffer após retornar (padrão: false)
Recursos

Os recursos MCP fornecem dados somente leitura que os clientes podem acessar sem chamar uma ferramenta.

browser-status://current

Retorna o status da sessão atual do navegador (ID da sessão ativa ou "nenhuma sessão ativa").

PropriedadeValor
Tipo MIMEtext/plain
Requer navegadorNão

accessibility://current

Retorna um instantâneo da árvore de acessibilidade da página atual — uma representação JSON compacta e estruturada de elementos interativos e conteúdo de texto. Muito menor que o HTML completo. Útil para entender o layout da página e encontrar elementos para interagir.

PropriedadeValor
Tipo MIMEapplication/json
Requer navegadorSim

Desenvolvimento

Configuração

git clone https://github.com/angiejones/mcp-selenium.git
cd mcp-selenium
npm install

Executar Testes

npm test

Requer Chrome + chromedriver no PATH. Os testes são executados em modo headless.

Instalar via Smithery

npx -y @smithery/cli install @angiejones/mcp-selenium --client claude

Instalar globalmente

npm install -g @angiejones/mcp-selenium
mcp-selenium

Licença

MIT