Yandex Browser Tabs - Secure MCP Server by ALMC Security 2025

Yandex Browser Tabs

View on GitHub

Yandex Browser Tabs MCP Server v2.0

MCP (Model Context Protocol) сервер для управления вкладками Яндекс Браузера с расширенной функциональностью.

🚀 Новые возможности в версии 2.0

📊 Прямой доступ к консоли браузера

  • Перехват всех логов консоли (log, warn, error, info)
  • Сохранение истории консоли
  • Фильтрация логов по типу

🎯 Быстрый скроллинг

  • Скролл к элементу с плавной анимацией
  • Скролл в любом направлении на заданное расстояние
  • Поддержка smooth и instant режимов

📄 Получение информации без скриншотов

  • Извлечение текста со страницы или элемента
  • Получение HTML контента (inner/outer)
  • Чтение атрибутов элементов
  • Получение метаинформации страницы

🎮 Расширенное взаимодействие

  • Hover эффекты
  • Нажатие клавиш и комбинаций
  • Заполнение форм
  • Ожидание появления элементов

📋 Установка

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

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

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

🔧 Использование

1. Запустите Яндекс Браузер в режиме отладки

Используйте один из предоставленных батников:

start-yandex-debug.bat

Или вручную:

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

2. Подключите MCP сервер к Claude Desktop

Добавьте в конфигурацию Claude Desktop:

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

📚 Полный список функций

Базовые функции

connect_to_browser

Подключиться к уже открытому Яндекс Браузеру

connect_to_browser({ port?: number })

list_tabs

Получить список всех открытых вкладок

list_tabs({})

navigate

Перейти по URL в указанной вкладке

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

Взаимодействие с элементами

click

Кликнуть по элементу

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

type

Ввести текст в поле

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

hover

Навести курсор на элемент

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

key_press

Нажать клавишу или комбинацию

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

Скроллинг

scroll

Прокрутить страницу или к элементу

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

Получение информации

get_text

Получить текстовое содержимое

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

get_html

Получить HTML содержимое

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

get_attributes

Получить атрибуты элемента

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

get_page_info

Получить информацию о странице

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

get_console_logs

Получить логи консоли браузера

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

Работа с формами

fill_form

Заполнить форму данными

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

Утилиты

wait_for_element

Ждать появления элемента

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

screenshot

Сделать скриншот

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

evaluate

Выполнить JavaScript код

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

execute_test

Выполнить тест (выбрать ответы и отправить)

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

💡 Примеры использования

Пример 1: Мониторинг консоли и извлечение данных

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

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

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

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

Пример 2: Заполнение и отправка формы

// Заполняем форму
fill_form({
  fields: {
    '#name': 'Иван Иванов',
    '#email': 'ivan@example.com',
    '#country': 'ru',
    '#subscribe': true
  }
})

// Нажимаем Enter для отправки
key_press({ key: 'Enter' })

Пример 3: Скроллинг и скриншоты

// Скроллим к элементу
scroll({ selector: '#important-section', smooth: true })

// Делаем скриншот элемента
screenshot({ 
  name: 'important-section.png',
  selector: '#important-section'
})

🧪 Тестирование

Откройте test-page-v2.html в браузере для тестирования всех функций:

navigate({ url: "file:///C:/Users/Professional/Desktop/yandex-browser-mcp/test-page-v2.html" })

📝 Лицензия

MIT

👨‍💻 Автор

MIT Professor


v2.0 - Расширенная версия с прямым доступом к данным браузера

Related in Productivity - Secure MCP Servers

ServerSummaryActions
MetaTrader MCP ServerView
Garmin Workouts MCPCreate Garmin Connect workouts using natural language descriptions. Built as an MCP (Model Context P...View
Microsoft 365View
WordPress MCP ServerView
Shine Tools MCP ServerNo documentation available.View
MCP Desktop AutomationA Model Context Protocol server that provides desktop automation capabilities using RobotJS and scre...View