Skip to main content
Glama

Trakt

by wwiens

🎬 MCP Trakt:人工智能通往娱乐数据的门户

MCP 牵引车使用 Cursor 构建由 Claude 提供支持

模型上下文协议 (MCP) 服务器在 AI 语言模型和 Trakt.tv API 之间架起了一座桥梁,允许 LLM 访问实时娱乐数据和个人 Trakt 观看历史记录。

🖥️ 一项人工智能实验

除了这一段,这里的所有内容,包括代码,都是由AI生成的。我的目标是了解更多关于MCP的知识,而且我一直在使用Cursor,所以把这些结合起来似乎是理所当然的。最终成果就是这个项目。以后所有的修改也将由AI完成。

🤖 什么是 MCP?

模型上下文协议 (MCP) 是一种开放规范,它使 Claude 等大型语言模型 (LLM) 能够与外部系统和数据源进行交互。

MCP 为 AI 模型创建了一种标准化方法:

  • 获取培训截止日期之后的实时数据
  • 通过专用服务器连接到外部 API 和 Web 服务
  • 安全地执行专门的工具和功能
  • 读取和写入外部资源
  • 处理纯文本格式难以处理的复杂数据

MCP 的核心工作原理如下:

  1. 资源:AI 可以读取或写入的结构化数据源(例如trakt://shows/trending
  2. 工具:AI 可以调用来执行特定操作的函数(例如fetch_trending_shows
  3. 会话:AI 和 MCP 服务器之间的安全连接

像这样的 MCP 服务器充当 AI 模型和外部世界之间的桥梁,允许它们扩展新功能而无需重新训练。

📺 什么是 Trakt?

Trakt.tv是一个自动追踪你观看的电视节目和电影的平台。该服务提供:

  • 全面跟踪多个流媒体服务的观看习惯
  • 社交功能可与朋友分享和讨论您正在观看的内容
  • 根据您的观看历史进行个性化推荐
  • 开发人员可以使用广泛的 API 来构建应用程序

Trakt 已成为娱乐追踪的标准,其特点如下:

  • 超过 1400 万用户追踪他们的观看习惯
  • 数百万部电影和电视节目的数据,包括详细的元数据
  • 与流行的媒体播放器和流媒体服务集成

该 MCP 服务器利用 Trakt 丰富的 API 生态系统,将实时娱乐数据直接带入您与 Claude 等 AI 助手的对话中。

🚀 游标开发体验

整个项目使用Cursor (一款为人工智能时代打造的代码编辑器)开发,所有代码均由 Claude 3.7 Sonnet 生成。这种方法演示了:

  • AI辅助开发如何显著加速构建专用MCP服务器
  • 现代人工智能编写功能性、结构良好的代码的能力
  • 人类意图与人工智能实现之间的协作工作流程

✨ 特点

🌎 公共轨迹数据

  • 观看热门和热门的节目和电影
  • 发现最受欢迎、播放和观看次数最多的内容
  • 从 Trakt 的全球社区获取实时数据
  • 带有标题、年份和受欢迎程度指标的格式化回复

👤 个人数据

  • 查看您观看过的节目:获取您亲自观看过的节目的完整列表
  • 查看您上次观看每部剧集的确切日期
  • 追踪你观看每个节目的次数
  • 签到您正在观看的节目并将其标记为已观看
    • 按节目 ID(更精确)或节目标题(更方便)
    • 将签到分享到 Twitter、Mastodon 或 Tumblr
    • 在您的签到中添加自定义消息
    • 以人类可读的格式查看您观看该剧集的时间
  • 搜索节目以查找其详细信息和 ID
  • 通过设备代码流使用 Trakt 进行安全身份验证
  • 个人数据直接从您的 Trakt 帐户获取

💬 评论和评价

  • 查看节目和电影的评论:阅读其他人对您喜欢的内容的评价
  • 查看特定季节和剧集的评论:了解节目的特定部分
  • 查看个人评论及其回复:参与社区讨论
  • 剧透保护:带有剧透的评论默认隐藏
  • 切换剧透可见性:选择是否显示或隐藏剧透
  • 查看评论:较长、更详细的评论将被标记为评论

🔄 一般功能

  • 通过 MCP 资源公开 Trakt API 数据
  • 提供获取实时娱乐信息的工具
  • 使人工智能模型能够提供个性化的娱乐推荐
  • 简单的身份验证和注销过程

📺 当前热门节目

自 2025 年 4 月起,您可以访问以下热门节目:

  • 《白莲花》(2021)——7,870 名观众
  • 《夜魔侠:重生》(2025)——6738名观众
  • 《遣散》(2022)——4507名观众

🎥 当前热门电影

目前最热门的电影:

  • 《黑包》(2025)——1,491 名观众
  • 《一个工作的人》(2025)——1226名观众
  • 《米奇17号》(2025年)——764名观众

🔌可用资源

显示资源

资源描述示例数据
trakt://shows/trending过去 24 小时内观看次数最多的节目节目名称、年份、观看人数
trakt://shows/popular根据收视率最受欢迎的节目节目名称、年份、热门分数
trakt://shows/favorited最受喜爱的节目显示标题、年份、收藏数
trakt://shows/played播放次数最多的节目节目名称、年份、播放次数
trakt://shows/watched独立用户观看次数最多的节目节目名称、年份、观看人数

电影资源

资源描述示例数据
trakt://movies/trending过去 24 小时内观看次数最多的电影电影名称、年份、观看人数
trakt://movies/popular根据评分最受欢迎的电影电影名称、年份、评分
trakt://movies/favorited最喜爱的电影电影名称、年份、收藏数
trakt://movies/played播放次数最多的电影电影名称、年份、播放次数
trakt://movies/watched独立用户观看次数最多的电影电影名称、��份、观看人数

用户资源

资源描述示例数据
trakt://user/auth/status当前身份验证状态身份验证状态、令牌到期
trakt://user/watched/shows经过身份验证的用户观看的节目节目名称、年份、上次观看日期、播放次数
trakt://user/watched/movies经过身份验证的用户观看的电影电影名称、年份、上次观看日期、播放次数

评论资源

资源描述示例数据
trakt://comments/movie/:id特定电影的评论评论文本、作者、日期、点赞
trakt://comments/show/:id特定节目的评论评论文本、作者、日期、点赞
trakt://comments/show/:id/season/:season特定季节的评论评论文本、作者、日期、点赞
trakt://comments/show/:id/season/:season/episode/:episode特定剧集的评论评论文本、作者、日期、点赞
trakt://comments/:id具体评论评论文本、作者、日期、点赞
trakt://comments/:id/replies回复特定评论回复文本、作者、日期

🛠️ 可用工具

显示工具

# 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")

🔐 身份验证

服务器使用 Trakt 的设备认证流程:

  1. 当你请求用户特定数据时,服务器将根据需要自动启动身份验证
  2. 您将收到一个代码和一个可以在浏览器上访问的 URL
  3. 在 Trakt 网站上输入代码并授权应用程序后,通知 Claude 您已完成授权
  4. Claude 将检查身份验证状态,然后获取您的个人数据
  5. 您的身份验证令牌将被安全存储,以供将来的请求使用

您可以随时使用clear_auth工具注销。

🚀 设置

  1. 克隆此存储库
    git clone https://github.com/yourusername/mcp-trakt.git cd mcp-trakt
  2. 安装依赖项
    pip install -r requirements.txt
  3. 设置您的环境
    cp .env.example .env
    然后编辑.env以添加您的 Trakt API 凭证:
    TRAKT_CLIENT_ID=your_client_id TRAKT_CLIENT_SECRET=your_client_secret
  4. 运行服务器
    python server.py

🧪 开发与测试

使用 MCP Inspector 进行测试

mcp dev server.py

在 Claude Desktop 中安装

mcp install server.py

📝 与 Claude 一起使用

安装完成后,您可以向 Claude 询问以下问题:

  • “现在什么节目最流行?”
  • “你能推荐一些本周热门的电影吗?”
  • “本月收视率最高的节目是什么?”
  • “显示我看过的节目”(需要身份验证)
  • “我看的最后一部电视剧是什么?”(需要身份验证)
  • “显示我看过的电影”(需要身份验证)
  • “我看的最后一部电影是什么?”(需要身份验证)
  • “搜索类似《绝命毒师》的电视剧”
  • “帮我看看《绝命毒师》第二季第五集” (使用标题)
  • “请关注节目 ID 1388 第 1 季第 3 集并在 Twitter 上分享”(使用 ID)
  • “显示《绝命毒师》的评论”
  • “人们对《教父》这部电影有什么评价?”
  • “显示《怪奇物语》第一季的评论”
  • “获取《权力的游戏》第二季第五集的评论”
  • “显示评论 #12345 及其回复”
  • “显示《绝命毒师》的评论,但包含剧透”
  • “搜索类似《教父》的电影”
  • “显示《绝命毒师》最受欢迎的评论”(使用 sort="likes")
  • “获取《教父》电影的最高评分评论”(使用 sort="highest")
  • “显示《怪奇物语》第一季回复最多的评论”(使用 sort="replies")

Claude 将使用此 MCP 服务器为您提供来自 Trakt 的实时数据。

👤 个人数据访问

通过身份验证,您可以访问:

  • 您观看过的节目和电影的完整历史记录
  • 每部电视剧和电影的最后观看日期
  • 您观看每个节目和电影的次数
  • 签到您正在观看的节目并跟踪您的进度
  • 个人收视统计
  • 在社交媒体平台上分享您的观看活动

所有数据均直接从您的 Trakt 帐户实时获取。

🔮 未来发展

  • 扩展用户身份验证以访问更多个人数据
  • 为即将播出的剧集添加日历事件
  • 支持 scrobbling(跟踪您正在观看的内容)
  • 根据观看历史实施推荐
  • 扩展搜索范围,除节目外还包含电影
  • 增加对更多社交媒体平台的支持以供分享

📄 许可证

MIT 许可证


Related MCP Servers

  • -
    security
    A
    license
    -
    quality
    The Model Context Protocol (MCP) server provides a conversational interface for the exploration and analysis of RDF Turtle Knowledge Graph in Local File mode or SPARQL Endpoint.
    Last updated -
    15
    Python
    MIT License
  • -
    security
    A
    license
    -
    quality
    A high-performance Model Context Protocol (MCP) server designed for large language models, enabling real-time communication between AI models and applications with support for session management and intelligent tool registration.
    Last updated -
    2
    Python
    MIT License
  • A
    security
    F
    license
    A
    quality
    An all-in-one Model Context Protocol (MCP) server that connects your coding AI to numerous databases, data warehouses, data pipelines, and cloud services, streamlining development workflow through seamless integrations.
    Last updated -
    2
    Python
    • Apple
    • Linux
  • -
    security
    A
    license
    -
    quality
    A Model Context Protocol (MCP) server that provides AI capabilities to Teambition applications, enabling programmatic access to user management, organization data, and project collaboration features through natural language.
    Last updated -
    TypeScript
    MIT License

View all related MCP servers

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/wwiens/trakt_mcpserver'

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