Постоянные индексы вместо извлечения: архитектура сервера MCP для YouTube

✍️ OpenClawRadar📅 Опубликовано: 15 апреля 2026 г.🔗 Source
Постоянные индексы вместо извлечения: архитектура сервера MCP для YouTube
Ad

Разработчик поделился подробными архитектурными заметками по созданию YouTube MCP-сервера, реализующего постоянные локальные индексы, в отличие от распространённого паттерна «извлечь и забыть», наблюдаемого в более чем 40 существующих серверах.

Архитектурные решения

  • Трёхуровневое резервирование для каждого инструмента: Используется YouTube Data API → yt-dlp → извлечение со страницы. Каждый ответ включает поле происхождения ({sourceTier, fallbackDepth, partial, fetchedAt, sourceNotes}) для предотвращения скрытой деградации. Исчерпание квоты на первом уровне приводит к деградированному ответу с чётким указанием происхождения вместо сбоя.
  • Модель персистентности: SQLite + sqlite-vec для локального векторного хранения в одном файле, без Docker или внешней базы данных. Эмбеддинги сохраняются между сессиями, позволяя накапливать знания — десятый запрос к проиндексированному плейлисту будет богаче и быстрее первого.
  • Абстракция провайдера эмбеддингов: Используется Gemini text-embedding-004 (768d) при наличии ключа Gemini, с резервным вариантом all-MiniLM-L6-v2 (384d) полностью офлайн через локальный вывод. Оба обрабатываются одной абстракцией, позволяя осуществлять семантический поиск без API-ключей с пониженным качеством или прозрачно улучшать его при добавлении ключа.
  • Визуальный поиск как отдельный индекс: Три независимых слоя: Apple Vision VNGenerateImageFeatureVectorRequest для векторных отпечатков признаков каждого кадра для поиска по сходству изображений, Gemini Vision для описания сцен на естественном языке для ключевых кадров, и Gemini text-embedding-004 для 768d эмбеддингов над OCR-текстом + описаниями для текстового→визуального поиска. Возвращает реальные пути к кадрам на диске + временные метки + обоснование совпадения, полностью отдельно от пайплайна транскрипции.
  • Эффективность токенов через строгие схемы вывода: Достигает на 75–87% меньших ответов по сравнению с сырым выводом YouTube API за счёт удаления миниатюр, eTags и раздувания локализации, а также использования нормализованных коэффициентов вовлечённости вместо сырых подсчётов.
Ad

Обнаруженные компромиссы

  • Использование диска растёт с персистентностью: Решено с помощью TTL-кэшей по категориям инструментов, диагностики mediaStoreHealth и инструментов очистки для каждой коллекции.
  • Визуальная индексация ресурсоёмка: Из-за извлечения ключевых кадров + компьютерного зрения + OCR + эмбеддингов. Сделана опциональной для каждого видео, а не автоматической при импорте.
  • Трёхуровневое резервирование добавляет задержку при сбое ранних уровней: Считается оправданным для надёжности, так как исчерпание квоты API — реальная проблема в продакшене, а yt-dlp/извлечение со страницы поддерживают работу.
  • Риск коллизии mcpName и npm имени: Реестр MCP использует io.github.<user>/<name>, а npm — плоский. Решено путём их явного разграничения.
  • Apple Vision привязывает слой поиска по сходству изображений к macOS: Принятый компромисс, так как слои на основе Gemini работают кроссплатформенно.

Код открыт, и разработчик открыт к дальнейшему обсуждению архитектурных решений, особенно по компромиссу персистентность vs извлечение или визуальному пайплайну.

📖 Read the full source: r/LocalLLaMA

Ad

👀 Смотрите также

Interact MCP: Быстрый веб-сёрфинг для Claude Code с постоянным браузером Chromium
Инструменты

Interact MCP: Быстрый веб-сёрфинг для Claude Code с постоянным браузером Chromium

Interact MCP — это инструмент Model Context Protocol, который поддерживает постоянный браузер Chromium в процессе, сокращая время выполнения действий в браузере с 2-5 секунд до 5-50 мс после первого вызова. Он включает систему ссылок для взаимодействия с элементами без CSS-селекторов и содержит 46 инструментов для веб-автоматизации.

OpenClawRadar
Замена Kafka, Redis и RabbitMQ на NATS: опыт разработчика
Инструменты

Замена Kafka, Redis и RabbitMQ на NATS: опыт разработчика

Разработчик заменил Kafka, Redis и RabbitMQ на NATS в своей архитектуре, поделившись конкретными деталями реализации и извлечёнными уроками от консолидации нескольких систем обмена сообщениями в один инструмент.

OpenClawRadar
О, Моя Русалка: Навык Клода для Автоматического Создания Архитектурных Диаграмм
Инструменты

О, Моя Русалка: Навык Клода для Автоматического Создания Архитектурных Диаграмм

Oh-My-Mermaid — это навык Claude Code, который анализирует кодовые базы и автоматически генерирует архитектурные диаграммы Mermaid и документацию. Устанавливается через npm и используется с командой /omm-scan в Claude Code.

OpenClawRadar
Relay позволяет сессиям Claude Code обмениваться сообщениями без переключения окон
Инструменты

Relay позволяет сессиям Claude Code обмениваться сообщениями без переключения окон

Плагин под названием Relay использует функцию каналов Claude Code, чтобы параллельные сеансы могли общаться напрямую, устраняя необходимость в ручном копировании контекста между репозиториями бэкенда и фронтенда.

OpenClawRadar