Как создать сервер YouTube MCP для ИИ-ассистентов кодирования Cursor и Windsurf
При миграции моего сайта 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. Вот диаграмма архитектуры, показывающая, как это работает:
Основная проблема заключалась в управлении квотами 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.