Skip to main content
Glama
BismaNwaz

youtube-mcp-server

by BismaNwaz

youtube-mcp-server

Удалённый MCP-сервер, который предоставляет YouTube Data API v3 в виде инструментов через Streamable HTTP, так что его можно добавить в claude.ai как пользовательский коннектор.

Никаких зависимостей. Никакого этапа сборки. node src/server.js — это всё.

Инструменты

Tool

Что делает

Стоимость квоты

youtube_trending

Самые популярные видео для страны, опционально отфильтрованные по одной категории

1 единица

youtube_search

Поиск по ключевым словам среди видео, каналов или плейлистов со статистикой

1 поисковый вызов + 1 единица

youtube_channel_videos

Недавние загрузки канала, а также общее число подписчиков и просмотров

3 единицы

youtube_video_details

Полная статистика для до 50 видео за один вызов

1 единица

youtube_video_comments

Комментарии верхнего уровня с количеством лайков и ответов

1 единица

Транскрипции намеренно отсутствуют. captions.download требует OAuth и прав на редактирование видео, поэтому API-ключ может получать субтитры только для видео, которыми вы владеете. По многочисленным сообщениям, неофициальные библиотеки для скрейпинга блокируются при обращении с облачных IP-диапазонов — а именно там работает этот сервер.

Related MCP server: mcp-server-youtube

Квота

Проект получает 10 000 единиц в день в общем пуле, а search.list находится в отдельном пуле с лимитом 100 вызовов в день. Это определило дизайн инструментов: youtube_channel_videos использует channels.listplaylistItems.listvideos.list вместо search.list?channelId=, поэтому просмотр канала стоит 3 единицы общего пула вместо одного из всего лишь сотни ежедневных поисков.

Запуск локально

cp .env.example .env        # add your YOUTUBE_API_KEY
export $(grep -v '^#' .env | xargs)
npm start
curl localhost:3000/health

curl -s localhost:3000/mcp \
  -H 'content-type: application/json' \
  -H 'accept: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | head -c 400

Тест

npm test

Запускает полное рукопожатие MCP, оба транспортных режима, все пять инструментов и сценарии ошибок против заглушки YouTube API. Не требуется ни API-ключ, ни сеть.

Деплой на Railway

  1. Отправьте этот репозиторий на GitHub.

  2. Railway → New Project → Deploy from GitHub repo → выберите его.

  3. Variables → добавьте YOUTUBE_API_KEY.

  4. Settings → Networking → Generate Domain.

  5. Проверьте, что https://<your-domain>/health возвращает "apiKeyConfigured": true.

Railway сам задаёт PORT; сервер привязывается к 0.0.0.0 и считывает его.

Подключение к claude.ai

Customize → Connectors → Add custom connector → https://<your-domain>/mcp

Поля OAuth не нужны — по умолчанию сервер работает без аутентификации. Чтобы закрыть доступ, задайте MCP_AUTH_TOKEN и укажите Bearer <token> в заголовках запроса коннектора в поле authorization.

Переменные окружения

Переменная

Обязательная

По умолчанию

Примечания

YOUTUBE_API_KEY

да

Google Cloud Console, с включённым YouTube Data API v3

PORT

нет

3000

Railway задаёт его

MCP_PATH

нет

/mcp

Путь, на котором слушает MCP-эндпоint

MCP_AUTH_TOKEN

нет

Если задан, каждый запрос требует Authorization: Bearer <value>

YOUTUBE_API_BASE

нет

Google

Исользуется только для направления тестового набора на заглушку

Заметки по дизайну

Без состояния. Каждый POST самодостаточен — ни Mcp-Session-Id, ни карты сессий, — поэтому перезапуск или вторая реплика никогда не приводят к ошибке "No valid session ID provided".

Согласование содержимого соответствует эталонному SDK: SSE-кадр, когда клиент отправляет Accept: text/event-stream, и обычное JSON-тело в остальных случаях.

GET и DELETE на /mcp возвращают 405 — именно этого ожидает спецификация Streamable HTTP от сервера без инициируемого сервером потока и без сессии, которую нужно закрывать.

Никакой проверки заголовка Origin и ни какой защиты от DNS-rebinding. Эти меры защиты предназначены для MCP-серверов, привязанных к localhost; если оставить их включёнными для публичного развёртывания, они будут отклонять собственные запросы Anthropic, что является частой причиной тайм-аутов initialize.

Сбои инструментов возвращаются как содержимое с isError: true, а не как JSON-RPC ошибки, поэтому Claude видит, что пошло не так, и может скорректировать действия, вмест того чтобы вызов завершался ошибкой на транспорном уровне.

Результаты обрезаются до 120k симоволов, что меньше огранчения claude.ai на результат инструмента — ~150k.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/BismaNwaz/-youtube-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server