Yandex Browser Tabs

Um servidor MCP para gerenciar abas do Yandex Browser com funcionalidade estendida.

Documentação

Yandex Browser Tabs MCP Server v2.0

Servidor MCP (Model Context Protocol) para gerenciar abas do Yandex Browser com funcionalidade avançada.

🚀 Novos recursos na versão 2.0

📊 Acesso direto ao console do navegador

  • Captura de todos os logs do console (log, warn, error, info)
  • Salvamento do histórico do console
  • Filtragem de logs por tipo

🎯 Rolagem rápida

  • Rolagem até um elemento com animação suave
  • Rolagem em qualquer direção por uma distância definida
  • Suporte aos modos smooth e instant

📄 Obtenção de informações sem capturas de tela

  • Extração de texto da página ou de um elemento
  • Obtenção do conteúdo HTML (inner/outer)
  • Leitura de atributos de elementos
  • Obtenção de metainformações da página

🎮 Interação avançada

  • Efeitos de hover
  • Pressionamento de teclas e combinações
  • Preenchimento de formulários
  • Espera pelo aparecimento de elementos

📋 Instalação

# Клонируйте репозиторий
git clone <repository-url>
cd yandex-browser-mcp

# Установите зависимости
npm install

# Соберите проект
npm run build

🔧 Uso

1. Inicie o Yandex Browser no modo de depuração

Use um dos arquivos batch fornecidos:

start-yandex-debug.bat

Ou manualmente:

"C:\Users\%USERNAME%\AppData\Local\Yandex\YandexBrowser\Application\browser.exe" --remote-debugging-port=9222

2. Conecte o servidor MCP ao Claude Desktop

Adicione à configuração do Claude Desktop:

{
  "mcpServers": {
    "yandex-browser": {
      "command": "node",
      "args": ["C:\\Users\\Professional\\Desktop\\yandex-browser-mcp\\build\\index.js"]
    }
  }
}

📚 Lista completa de funções

Funções básicas

connect_to_browser

Conectar-se ao Yandex Browser já aberto

connect_to_browser({ port?: number })

list_tabs

Obter a lista de todas as abas abertas

list_tabs({})

navigate

Navegar para uma URL na aba especificada

navigate({ 
  url: string, 
  tabIndex?: number, 
  waitForSelector?: string 
})

Interação com elementos

click

Clicar em um elemento

click({ selector: string, tabIndex?: number })

type

Digitar texto em um campo

type({ 
  selector: string, 
  text: string, 
  tabIndex?: number, 
  delay?: number 
})

hover

Passar o cursor sobre um elemento

hover({ selector: string, tabIndex?: number })

key_press

Pressionar uma tecla ou combinação

key_press({ 
  key: string, 
  modifiers?: ['Control' | 'Shift' | 'Alt' | 'Meta'][], 
  tabIndex?: number 
})

Rolagem

scroll

Rolar a página ou até um elemento

scroll({ 
  tabIndex?: number,
  direction?: 'up' | 'down' | 'left' | 'right',
  distance?: number,
  selector?: string,
  smooth?: boolean
})

Obtenção de informações

get_text

Obter o conteúdo de texto

get_text({ selector?: string, tabIndex?: number })

get_html

Obter o conteúdo HTML

get_html({ 
  selector?: string, 
  outerHTML?: boolean, 
  tabIndex?: number 
})

get_attributes

Obter os atributos de um elemento

get_attributes({ 
  selector: string, 
  attributes?: string[], 
  tabIndex?: number 
})

get_page_info

Obter informações sobre a página

get_page_info({ tabIndex?: number })
// Возвращает: URL, title, description, viewport, metaTags

get_console_logs

Obter os logs do console do navegador

get_console_logs({ 
  tabIndex?: number,
  type?: 'all' | 'log' | 'warn' | 'error' | 'info',
  limit?: number
})

Trabalho com formulários

fill_form

Preencher um formulário com dados

fill_form({ 
  formSelector?: string,
  fields: { [selector: string]: any },
  tabIndex?: number
})

Utilitários

wait_for_element

Aguardar o aparecimento de um elemento

wait_for_element({ 
  selector: string,
  tabIndex?: number,
  timeout?: number,
  visible?: boolean
})

screenshot

Tirar uma captura de tela

screenshot({ 
  name: string,
  tabIndex?: number,
  fullPage?: boolean,
  selector?: string
})

evaluate

Executar código JavaScript

evaluate({ script: string, tabIndex?: number })

execute_test

Executar teste (selecionar respostas e enviar)

execute_test({ 
  tabIndex: number,
  testSelectors: string[],
  submitButtonSelector: string
})

💡 Exemplos de uso

Exemplo: Monitoramento do console e extração de dados

// Подключаемся к браузеру
connect_to_browser({})

// Переходим на страницу
navigate({ url: "https://example.com" })

// Получаем логи консоли
get_console_logs({ type: 'error' })

// Извлекаем текст
get_text({ selector: '.main-content' })