🎬 MCP Trakt: шлюз вашего ИИ к развлекательным данным
Сервер протокола контекста модели (MCP), который создает мост между языковыми моделями ИИ и API Trakt.tv, позволяя магистрам права получать доступ к данным о развлечениях в реальном времени и личной истории просмотра Trakt.
🖥️ Эксперимент с искусственным интеллектом
За исключением этого абзаца, все здесь было сгенерировано ИИ, включая код. У меня была цель узнать больше о MCP, и я много играл с Cursor, поэтому мне показалось естественным следующим шагом объединить их. Результатом стал этот проект. Все дальнейшие изменения также будут сделаны ИИ.
Related MCP server: FastAPI MCP Server
🤖 Что такое МКП?
Протокол контекста модели (MCP) — это открытая спецификация, которая позволяет большим языковым моделям (LLM), таким как Claude, взаимодействовать с внешними системами и источниками данных.
MCP создает стандартизированный способ для моделей ИИ:
Доступ к данным в реальном времени после даты окончания обучения
Подключайтесь к внешним API и веб-сервисам через выделенные серверы
Безопасное выполнение специализированных инструментов и функций
Чтение и запись на внешние ресурсы
Обрабатывать сложные данные, которые было бы трудно обрабатывать в текстовых форматах.
По своей сути MCP работает, определяя:
Ресурсы : структурированные источники данных, которые ИИ может считывать или в которые может записывать данные (например
trakt://shows/trending).Инструменты : функции, которые ИИ может вызывать для выполнения определенных действий (например,
fetch_trending_shows).Сеансы : безопасные соединения между серверами AI и MCP
Подобные серверы MCP выступают в качестве мостов между моделями ИИ и внешним миром, позволяя расширять их возможности без необходимости переобучения.
📺 Что такое Тракт?
Trakt.tv — это платформа, которая автоматически отслеживает, какие телепередачи и фильмы вы смотрите. Сервис предлагает:
Комплексное отслеживание привычек просмотра на нескольких потоковых сервисах
Социальные функции, позволяющие делиться просмотренным контентом и обсуждать его с друзьями
Персонализированные рекомендации на основе вашей истории просмотров
Обширные API, которые разработчики могут использовать для создания приложений
Trakt стал стандартом для отслеживания развлечений благодаря:
Более 14 миллионов пользователей отслеживают свои привычки просмотра
Данные о миллионах фильмов и телешоу, включая подробные метаданные
Интеграция с популярными медиаплеерами и стриминговыми сервисами
Этот сервер MCP подключается к богатой экосистеме API Trakt, чтобы передавать развлекательные данные в реальном времени непосредственно в ваши разговоры с помощниками на базе искусственного интеллекта, такими как Клод.
🚀 Опыт разработки курсора
Весь этот проект был разработан с использованием Cursor , редактора кода, созданного для эпохи ИИ, с Claude 3.7 Sonnet, генерирующим весь код. Этот подход демонстрирует:
Как разработка с помощью ИИ может значительно ускорить создание специализированных MCP-серверов
Возможности современного ИИ в написании функционального, хорошо структурированного кода
Совместный рабочий процесс между человеческим намерением и реализацией ИИ
✨ Особенности
🌎 Данные публичного тракта
Получите доступ к популярным и трендовым шоу и фильмам
Откройте для себя самый любимый, воспроизводимый и просматриваемый контент
Получайте данные в режиме реального времени от мирового сообщества Trakt
Форматированные ответы с заголовками, годами и показателями популярности
Просматривайте подробные рейтинги шоу и фильмов, включая средние баллы и распределение.
👤 Данные личного трактата
Просмотр просмотренных вами шоу : получите полный список шоу, которые вы лично смотрели.
Посмотрите точные даты последнего просмотра для каждого сериала
Отслеживайте, сколько раз вы смотрели каждое шоу.
Отметьте шоу, которые вы сейчас смотрите, чтобы отметить их как просмотренные
По идентификатору шоу (точнее) или названию шоу (удобнее)
Поделитесь чекинами в Twitter, Mastodon или Tumblr
Включайте персонализированные сообщения в ваши отметки
Посмотрите, когда вы смотрели эпизод в удобном для чтения формате
Поиск шоу, чтобы узнать их данные и идентификаторы.
Безопасная аутентификация с помощью Trakt через поток кода устройства
Персональные данные извлекаются непосредственно из вашего аккаунта Trakt.
💬 Комментарии и отзывы
Просмотр комментариев к шоу и фильмам : прочитайте, что говорят другие о вашем любимом контенте
Смотрите комментарии к определенным сезонам и эпизодам : получайте информацию об определенных частях шоу.
Просмотр отдельных комментариев и ответов на них : участие в обсуждениях сообщества
Защита от спойлеров : Комментарии со спойлерами по умолчанию скрыты.
Переключить видимость спойлера : выберите, показывать или скрывать спойлеры.
Просмотреть отзывы : Более длинные и подробные комментарии помечаются как отзывы.
Посмотреть распределение оценок : посмотреть, сколько пользователей дали каждую оценку от 1 до 10
🔄 Общие характеристики
Предоставляет данные API Trakt через ресурсы MCP
Предоставляет инструменты для получения развлекательной информации в режиме реального времени.
Позволяет моделям ИИ предлагать персонализированные рекомендации по развлечениям
Простой процесс аутентификации и выхода из системы
📺 Текущие популярные шоу
С апреля 2025 года вы сможете получить доступ к таким популярным шоу, как:
«Белый лотос» (2021) — 7870 зрителей
«Сорвиголова: Рожденный заново» (2025) — 6738 зрителей
«Расставание» (2022) — 4507 зрителей
🎥 Фильмы, которые сейчас в тренде
Самые популярные фильмы прямо сейчас:
«Черный мешок» (2025) — 1491 зритель
«Рабочий человек» (2025) — 1226 зрителей
«Микки 17» (2025) — 764 зрителя
🔌 Доступные ресурсы
Показать ресурсы
Ресурс | Описание | Пример данных |
| Самые просматриваемые шоу за последние 24 часа | Название шоу, год, количество зрителей |
| Самые популярные шоу по рейтингам | Показать название, год, рейтинг популярности |
| Самые любимые шоу | Показать название, год, количество избранных |
| Самые популярные шоу | Показать название, год, количество воспроизведений |
| Самые просматриваемые шоу уникальными пользователями | Название шоу, год, количество зрителей |
Ресурсы фильмов
Ресурс | Описание | Пример данных |
| Самые просматриваемые фильмы за последние 24 часа | Название фильма, год, количество зрителей |
| Самые популярные фильмы по рейтингам | Название фильма, год, популярная оценка |
| Самые любимые фильмы | Название фильма, год, количество избранных |
| Самые популярные фильмы | Название фильма, год, количество показов |
| Самые просматриваемые фильмы уникальными пользователями | Название фильма, год, количество зрителей |
Ресурсы пользователя
Ресурс | Описание | Пример данных |
| Текущий статус аутентификации | Статус аутентификации, истечение срока действия токена |
| Шоу, просмотренные аутентифицированным пользователем | Название показа, год, дата последнего просмотра, количество воспроизведений |
| Фильмы, просмотренные аутентифицированным пользователем | Название фильма, год, дата последнего просмотра, количество воспроизведений |
Ресурсы комментариев
Ресурс | Описание | Пример данных |
| Комментарии к определенному фильму | Текст комментария, автор, дата, лайки |
| Комментарии к конкретному шоу | Текст комментария, автор, дата, лайки |
| Комментарии для определенного сезона | Текст комментария, автор, дата, лайки |
| Комментарии к конкретному эпизоду | Текст комментария, автор, дата, лайки |
| Конкретный комментарий | Текст комментария, автор, дата, лайки |
| Ответы на конкретный комментарий | Текст ответа, автор, дата |
Рейтинг ресурсов
Ресурс | Описание | Пример данных |
| Рейтинги для конкретного шоу | Средний рейтинг, количество голосов, распределение |
| Рейтинги для определенного фильма | Средний рейтинг, количество голосов, распределение |
🛠️ Доступные инструменты
Показать инструменты
# Get trending shows with optional limit parameter
fetch_trending_shows(limit=10)
# Get popular shows with optional limit parameter
fetch_popular_shows(limit=10)
# Get favorited shows with optional limit and period parameters
fetch_favorited_shows(limit=10, period="weekly")
# Get most played shows with optional limit and period parameters
fetch_played_shows(limit=10, period="weekly")
# Get most watched shows with optional limit and period parameters
fetch_watched_shows(limit=10, period="weekly")
# Search for shows by title to get show IDs and details
search_shows(query="Breaking Bad", limit=5)
# Search for movies by title to get movie IDs and details
search_movies(query="The Godfather", limit=5)Инструменты для фильмов
# Get trending movies with optional limit parameter
fetch_trending_movies(limit=10)
# Get popular movies with optional limit parameter
fetch_popular_movies(limit=10)
# Get favorited movies with optional limit and period parameters
fetch_favorited_movies(limit=10, period="weekly")
# Get most played movies with optional limit and period parameters
fetch_played_movies(limit=10, period="weekly")
# Get most watched movies with optional limit and period parameters
fetch_watched_movies(limit=10, period="weekly")Аутентификация и пользовательские инструменты
# Start the device authorization flow with Trakt
start_device_auth()
# Check the status of an ongoing authentication
check_auth_status()
# Clear authentication (logout)
clear_auth()
# Fetch shows watched by the authenticated user
fetch_user_watched_shows(limit=0) # 0 for all shows
# Fetch movies watched by the authenticated user
fetch_user_watched_movies(limit=0) # 0 for all moviesИнструменты для регистрации
# Method 1: Check in using show ID (recommended when precision is important)
# First use search_shows to find the correct show ID
search_shows(query="Breaking Bad", limit=5)
# Then use the ID for check-in
checkin_to_show(
season=1,
episode=3,
show_id="1388",
message="Loving this show!"
)
# Method 2: Check in using show title (more convenient)
checkin_to_show(
season=1,
episode=1,
show_title="Breaking Bad",
show_year=2008, # Optional but helps with accuracy
message="I'm the one who knocks!",
share_twitter=True,
share_mastodon=False,
share_tumblr=False
)Инструменты для комментирования
# Get comments for a movie (sorted by newest by default)
fetch_movie_comments(movie_id="123", limit=10, show_spoilers=False)
# Get comments for a show sorted by most likes
fetch_show_comments(show_id="456", limit=10, show_spoilers=False, sort="likes")
# Get comments for a specific season sorted by highest rating
fetch_season_comments(show_id="456", season=1, limit=10, show_spoilers=False, sort="highest")
# Get comments for a specific episode sorted by most replies
fetch_episode_comments(show_id="456", season=1, episode=3, limit=10, show_spoilers=False, sort="replies")
# Get a specific comment
fetch_comment(comment_id="789", show_spoilers=False)
# Get a comment with its replies sorted by oldest first
fetch_comment_replies(comment_id="789", limit=10, show_spoilers=False, sort="oldest")Инструменты оценки
# Get ratings for a show
fetch_show_ratings(show_id="game-of-thrones")
# Get ratings for a movie
fetch_movie_ratings(movie_id="tron-legacy-2010")🔐 Аутентификация
Сервер использует поток аутентификации устройств Trakt:
При запросе данных пользователя сервер автоматически инициирует аутентификацию, если это необходимо.
Вы получите код и URL-адрес для перехода в вашем браузере.
После ввода кода на сайте Trakt и авторизации приложения сообщите Клоду, что вы завершили авторизацию.
Клод проверит статус аутентификации, а затем получит ваши персональные данные.
Ваш токен аутентификации надежно хранится для будущих запросов.
Вы можете выйти из системы в любое время с помощью инструмента clear_auth .
🚀 Настройка
Клонировать этот репозиторий
git clone https://github.com/yourusername/mcp-trakt.git cd mcp-traktУстановить зависимости
pip install -r requirements.txtНастройте свою среду
cp .env.example .envЗатем отредактируйте
.env, чтобы добавить ваши учетные данные API Trakt:TRAKT_CLIENT_ID=your_client_id TRAKT_CLIENT_SECRET=your_client_secretЗапустить сервер
python server.py
🧪 Разработка и тестирование
Тестирование с помощью MCP Inspector
mcp dev server.pyУстановка в Claude Desktop
mcp install server.pyПроведение тестов
# Install test dependencies
pip install -r requirements-dev.txt
# Run all tests
pytest
# Run with verbose output
pytest -v -s📝 Использование с Клодом
После установки вы сможете задавать Клоду такие вопросы:
«Какие шоу сейчас в тренде?»
«Можете ли вы порекомендовать несколько популярных фильмов на этой неделе?»
«Какие шоу месяца пользуются наибольшей популярностью?»
«Покажи мне шоу, которые я смотрел» (требуется аутентификация)
«Какое последнее шоу я смотрел?» (требуется аутентификация)
«Покажи мне фильмы, которые я смотрел» (требуется аутентификация)
«Какой последний фильм я посмотрел?» (требуется аутентификация)
«Поиск шоу, похожих на «Во все тяжкие»»
«Запишите меня на 5 серию 2 сезона сериала «Во все тяжкие»» (использует заголовок)
«Зацените 3 серию 1 сезона шоу с идентификатором 1388 и поделитесь им в Twitter» (использует идентификатор)
"Покажи мне комментарии к Breaking Bad"
«Что говорят люди о фильме «Крёстный отец»?»
«Покажите мне комментарии к первому сезону сериала «Очень странные дела»»
«Получить комментарии к 5 серии 2 сезона «Игры престолов»»
«Покажи мне комментарий #12345 с ответами на него»
«Показывать комментарии к сериалу «Во все тяжкие», но со спойлерами»
«Поиск фильмов, похожих на «Крестный отец»»
«Покажи мне комментарии, которым больше всего понравился сериал «Во все тяжкие»» (использует sort="likes")
«Получите самые высокие оценки комментариев к фильму «Крёстный отец»» (использует sort="highest")
«Покажи мне комментарии с наибольшим количеством ответов для 1-го сезона «Очень странных дел»» (использует sort="replies")
«Какой рейтинг у «Игры престолов»?»
«Покажите мне распределение рейтингов фильма «Крёстный отец»»
«Насколько высок рейтинг сериала «Во все тяжкие»?»
Клод будет использовать этот сервер MCP для предоставления вам данных из Trakt в режиме реального времени.
👤 Доступ к персональным данным
Пройдя аутентификацию, вы сможете получить доступ к:
Ваша полная история просмотренных шоу и фильмов
Даты последнего просмотра каждого шоу и фильма
Сколько раз вы смотрели каждое шоу и фильм
Подпишитесь на шоу, которые вы сейчас смотрите, и отслеживайте свой прогресс
Статистика личных просмотров
Поделитесь своими просмотрами в социальных сетях
Все данные извлекаются непосредственно из вашего аккаунта Trakt в режиме реального времени.
🔮 Будущее развитие
Расширение аутентификации пользователя для доступа к большему количеству персональных данных
Добавление событий календаря для предстоящих эпизодов
Поддержка скробблинга (отслеживание того, что вы смотрите)
Реализация рекомендаций на основе истории просмотров
Добавление поддержки большего количества социальных сетей для обмена
📄 Лицензия
Лицензия Массачусетского технологического института