Назад к блогу

Как создать сервер YouTube MCP для ИИ-ассистентов кодирования Cursor и Windsurf

2025-04-255 мин чтения

При миграции моего сайта Learn English Sounds с CMS на Next.js я столкнулся с неприятным препятствием. Мне нужно было найти видео на YouTube, демонстрирующие каждый английский фонетический звук, но мои ИИ-ассистенты кодирования (Cursor и Windsurf) не могли напрямую искать на YouTube.

Это означало, что мне приходилось вручную проверять каждое предложенное видео, что прерывало мой рабочий процесс. Я получал рекомендацию, проверял, существует ли она, а затем возвращался к кодированию. Не огромная проблема, но определенно неэффективно.

Чтобы оптимизировать этот процесс, я создал простой сервер протокола управления моделями (MCP) для YouTube. Он позволяет моим инструментам ИИ-кодирования искать и получать фактическую информацию о видео без моего вмешательства.

В этом руководстве объясняется, как создать собственный сервер MCP. Это простой проект, который может сэкономить вам время, если вам часто требуется, чтобы ваш ИИ-ассистент кодирования получал доступ к внешним сервисам, таким как YouTube.

Что такое MCP?

Представьте, что вы используете ИИ-ассистента, такого как Claude или GPT, но он не может напрямую получать доступ к Интернету или другим сервисам. MCP (Model Control Protocol) — это как переводчик, который помогает ИИ общаться с этими сервисами.

Подумайте об этом так: если вы говорите по-английски, а ваш друг говорит по-испански, вам нужен переводчик для общения. Аналогично, сервер MCP переводит между инструментом ИИ (например, Cursor или Windsurf) и внешним сервисом (например, YouTube). Он следует определенным правилам, чтобы обе стороны понимали друг друга идеально.

В техническом плане это стандартизированный сервер API, который следует определенным форматам, чтобы инструменты ИИ могли запрашивать и получать данные без вмешательства человека. Протокол определяет, как форматируются запросы, как должны быть структурированы ответы и как обрабатываются ошибки.

Примечательно, что Anthropic сделал свой протокол Model Context Protocol открытым исходным кодом, что позволяет разработчикам создавать безопасные соединения между источниками данных и инструментами ИИ. Их реализация включает SDK, локальную поддержку серверов в настольных приложениях Claude и предварительно созданные серверы для популярных систем, таких как Google Drive, GitHub и Slack.

Почему мне это было нужно

Learn English Sounds требует видео, демонстрирующих правильное произношение каждого фонетического звука. Без прямого доступа к YouTube Cursor или Windsurf предлагали видео, которые часто не существовали, что требовало от меня ручной проверки каждого предложения.

Пример рабочего процесса до MCP:

Я: «Мне нужны видео для звука 'th'». Cursor или Windsurf: «Я рекомендую 'English TH Sounds - How to pronounce TH correctly'». Я: «Это действительно существует? Какой канал?» Cursor или Windsurf: «Он должен быть на канале 'English Pronunciation'». Я: *ищет на YouTube* «Этот канал существует, а этого видео нет».

Создание сервера YouTube

Я создал сервер с использованием Python и FastAPI, подключившись к YouTube Data API. Вот диаграмма архитектуры, показывающая, как это работает:

Диаграмма архитектуры сервера YouTube MCP

Основная проблема заключалась в управлении квотами API YouTube и обеспечении правильного соответствия сервера спецификации MCP.

Как это работает

С сервером MCP Cursor или Windsurf теперь могут напрямую искать на YouTube и предоставлять фактические видео с количеством просмотров и рейтингами. Это уменьшает количество переключений и позволяет мне сосредоточиться на разработке.

Новый рабочий процесс:

Я: «Найди видео для звука 'th'». Cursor или Windsurf: *запрашивает сервер MCP* Cursor или Windsurf: «Я нашел эти варианты с количеством просмотров и рейтингами. Какой вы предпочитаете?» Я: «Первый». Cursor или Windsurf: *добавляет код вставки с правильным идентификатором видео*

Технические детали реализации

Ключевые технические соображения при создании MCP:

1. Аутентификация: Спецификация MCP не имеет стандартизированного метода аутентификации. Я использовал ключ API YouTube, хранящийся в переменной среды (файл .env).

2. Формат ответа: Инструменты ИИ ожидают определенные форматы ответов. Формат варьируется в зависимости от конечной точки, но вот пример из конечной точки search_videos:


{
  "videos": [
    {
      "title": "How to Pronounce TH - English Pronunciation Lesson",
      "videoId": "dQw4w9WgXcQ",
      "channelTitle": "English Pronunciation",
      "description": "Learn how to pronounce the TH sound in English correctly."
    }
  ]
}

А вот пример из конечной точки get_video_details, которая возвращает более полную информацию:


{
  "title": "How to Pronounce TH - English Pronunciation Lesson",
  "description": "Learn how to pronounce the TH sound in English correctly.",
  "channelTitle": "English Pronunciation",
  "publishedAt": "2023-04-15T14:30:00Z",
  "duration": "PT5M30S",
  "viewCount": "1234567",
  "likeCount": "12345",
  "commentCount": "1234"
}

3. Обработка ошибок: Последовательные форматы ошибок имеют решающее значение, поскольку инструменты ИИ могут быть сбиты с толку неожиданными ответами. Моя реализация включает специальную обработку ошибок для различных сценариев:

  • Отсутствие ключа API: «Не удалось инициализировать службу YouTube. Проверьте переменную среды YOUTUBE_API_KEY».
  • Недействительный ключ API: «Произошла ошибка HTTP 400: [содержимое ошибки]. Это может указывать на недействительный или отсутствующий ключ API (YOUTUBE_API_KEY)».
  • Ресурс не найден: «Видео с идентификатором '[video_id]' не найдено».
  • Общие ошибки HTTP: «Произошла ошибка HTTP [статус]: [содержимое ошибки]»

Почему это важно для ИИ-инструментов кодирования

Когда вы пишете код с помощью ИИ-ассистентов, таких как Cursor или Windsurf, вы постоянно принимаете решения на основе внешней информации. Без MCP эти инструменты фактически работают с завязанными глазами, когда дело доходит до данных в реальном времени.

Вот почему MCP меняют правила игры для ИИ-кодирования:

  • Сокращение переключения контекста: Оставайтесь в своем рабочем процессе кодирования, не переключаясь между приложениями
  • Проверенная информация: Получайте точные данные в реальном времени вместо потенциально устаревшего или сгенерированного контента
  • Специализированные знания: Получайте доступ к информации из конкретной предметной области, на которой ИИ не обучался
  • Настроенные рабочие процессы: Создавайте MCP для ваших конкретных потребностей и шаблонов разработки

Согласно документации OpenAI, MCP предоставляют «знания, специфичные для предметной области, с четкими границами», что делает их идеальными для расширения возможностей ИИ контролируемым и предсказуемым образом. Аналогично, настольное приложение Claude от Anthropic использует MCP для безопасного подключения Claude к таким сервисам, как Google Drive и GitHub.

Создайте свой собственный MCP

Если вы хотите создать MCP:

1. Начните с одной конечной точки API, которая сэкономит вам больше всего времени

2. Сосредоточьтесь на правильном формате ответа

3. Реализуйте надлежащую обработку ошибок

Мой MCP для YouTube включает следующие конечные точки:

  • /search_videos — Поиск видео по запросу
  • /get_video_details — Получение подробной информации о конкретном видео
  • /get_related_videos — Поиск видео, связанных с конкретным видео
  • /list_channel_videos — Получение последних загрузок с канала
  • /get_channel_details — Получение информации о канале YouTube
  • /search_playlists — Поиск плейлистов по запросу
  • /get_playlist_items — Получение видео из конкретного плейлиста

Результаты

Создание этого сервера MCP значительно сократило время разработки. Cursor и Windsurf теперь делают лучшие предложения на основе фактических данных видео, и я могу сосредоточиться на разработке, не переключая контекст для поиска на YouTube.

Популярные серверы MCP и текущее использование

Несколько серверов MCP уже используются в производственных средах:

  • GitHub MCP: Позволяет инструментам ИИ искать репозитории, просматривать код и получать доступ к проблемам/PR
  • Google Drive MCP: Обеспечивает поиск и получение документов из Google Drive
  • Slack MCP: Предоставляет доступ к каналам, сообщениям и информации о рабочей области
  • Firebase MCP: Позволяет запрашивать и обновлять коллекции и документы Firestore
  • MongoDB MCP: Предоставляет доступ к базам данных MongoDB для анализа данных с помощью ИИ
  • PostgreSQL MCP: Позволяет инструментам ИИ запрашивать реляционные базы данных и визуализировать результаты
  • Jira MCP: Позволяет запрашивать и обновлять билеты и информацию о проекте
  • Mermaid MCP: Помогает генерировать диаграммы из текстовых описаний (аналогично моему посту об автоматизации Mermaid)
  • Wolfram Alpha MCP: Предоставляет вычислительные и фактические знания

Эти серверы особенно популярны среди пользователей Claude Desktop и разработчиков, работающих с Cursor или Windsurf. По мере роста экосистемы MCP мы видим все больше специализированных серверов для таких областей, как анализ данных, тестирование API и генерация документации.

Попробуйте сами

Код моего сервера MCP для YouTube доступен на GitHub. Для его настройки вам понадобится ключ API YouTube.