Yandex Browser Tabs

Un servidor MCP para gestionar las pestañas del navegador Yandex con funcionalidad extendida.

Documentación

Yandex Browser Tabs MCP Server v2.0

Servidor MCP (Model Context Protocol) para gestionar pestañas del Yandex Browser con funcionalidad ampliada.

🚀 Novedades en la versión 2.0

📊 Acceso directo a la consola del navegador

  • Captura de todos los registros de consola (log, warn, error, info)
  • Guardado del historial de consola
  • Filtrado de registros por tipo

🎯 Desplazamiento rápido

  • Desplazamiento a un elemento con animación suave
  • Desplazamiento en cualquier dirección a una distancia determinada
  • Soporte de modos smooth e instant

📄 Obtención de información sin capturas de pantalla

  • Extracción de texto de la página o de un elemento
  • Obtención del contenido HTML (inner/outer)
  • Lectura de atributos de elementos
  • Obtención de metainformación de la página

🎮 Interacción ampliada

  • Efectos hover
  • Pulsación de teclas y combinaciones
  • Relleno de formularios
  • Espera de aparición de elementos

📋 Instalación

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

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

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

🔧 Uso

1. Inicie el Yandex Browser en modo de depuración

Use uno de los archivos batch proporcionados:

start-yandex-debug.bat

O manualmente:

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

2. Conecte el servidor MCP a Claude Desktop

Agregue a la configuración de Claude Desktop:

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

📚 Lista completa de funciones

Funciones básicas

connect_to_browser

Conectarse a un Yandex Browser ya abierto

connect_to_browser({ port?: number })

list_tabs

Obtener la lista de todas las pestañas abiertas

list_tabs({})

navigate

Navegar a una URL en la pestaña indicada

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

Interacción con elementos

click

Hacer clic en un elemento

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

type

Escribir texto en un campo

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

hover

Colocar el cursor sobre un elemento

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

key_press

Pulsar una tecla o combinación

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

Desplazamiento

scroll

Desplazar la página o hacia un elemento

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

Obtención de información

get_text

Obtener el contenido de texto

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

get_html

Obtener el contenido HTML

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

get_attributes

Obtener los atributos de un elemento

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

get_page_info

Obtener información sobre la página

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

get_console_logs

Obtener los registros de la consola del navegador

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

Trabajo con formularios

fill_form

Rellenar un formulario con datos

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

Utilidades

wait_for_element

Esperar la aparición de un elemento

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

screenshot

Tomar una captura de pantalla

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

evaluate

Ejecutar código JavaScript

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

execute_test

Ejecutar una prueba (seleccionar respuestas y enviar)

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

💡 Ejemplos de uso

Ejemplo: Monitoreo de consola y extracción de datos

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

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

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

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