
TV Recommender
STDIOTV series recommendation MCP server with genre-based suggestions and show details.
TV series recommendation MCP server with genre-based suggestions and show details.
基于TMDb API的美剧推荐MCP服务器,提供按类型推荐、相似剧集推荐和剧集详情功能。
本项目是一个基于MCP(Model Context Protocol)的服务器,专门用于提供全面的美剧推荐和信息查询服务。服务器通过标准输入/输出(stdio)与支持MCP的客户端通信,并通过调用TMDb(The Movie Database) API获取数据。服务覆盖从剧集发现、详情查询到观看渠道、演员信息、用户评论等多方面功能,为用户提供一站式剧集探索体验。
大型语言模型(LLM)在理解和生成文本方面表现出色,但在提供实时、个性化的美剧推荐方面存在局限性(如知识截止、缺乏用户偏好理解)。用户期望通过自然语言交互获得更精准、更及时的推荐,而现有LLM难以完全满足此需求。本项目旨在通过Model Context Protocol (MCP) Server扩展LLM的能力,解决这一痛点,抓住提供更智能影视发现体验的机会。
愿景: 让用户能够通过与LLM的自然对话,无缝地发现、了解并获取个性化、实时、可解释的美剧推荐,将LLM变为强大的个人娱乐顾问。
主要目标用户是熟悉并使用支持MCP的LLM客户端(如Claude Desktop)的个人用户。他们是美剧爱好者,对通过AI获取信息持开放态度,并希望以更自然、交互的方式发现符合口味的新剧集。
此MCP服务器采用模块化设计,具有明确的关注点分离。服务器初始化MCP框架,注册各种推荐工具,并使用TMDb客户端与TMDb API交互。配置设置(特别是TMDb API密钥)通过环境变量管理。
flowchart TD A["MCP客户端<br>(LLM工具)"] -- "MCP请求<br>(stdio)" --> B subgraph "服务器架构" B["MCP核心<br>(stdio)"] --> C["工具路由器"] C --> D["工具实现层"] D --> E["TMDb服务客户端"] D --> F["工具辅助功能<br>(如类型映射)"] E -- "HTTP请求" --> G["TMDb API"] D --> H["日志系统"] E --> H end G -- "HTTP响应" --> E B -- "发送响应" --> A
以下是本项目的完整功能列表及开发状态 (基于 .ai
目录下的用户故事):
Epic 1: 核心推荐工具 MVP (Core Recommendation Tools MVP)
story-1-1-setup-integration.md
)story-1-2-recommend-genre.md
) - 工具: get_recommendations_by_genre
story-1-3-recommend-similar.md
) - 工具: get_similar_shows
story-1-4-show-details.md
) - 工具: get_show_details
Epic 2: 增强与扩展 (Enhancements & Expansion)
story-2-1-keyword-discovery.md
)story-2-2-early-works.md
)story-2-3-episode-details.md
)story-2-4-provider-aggregation.md
)story-2-5-actor-info.md
) - 工具: get_actor_details_and_credits
, find_shows_by_actor
, get_recommendations_by_actor
story-2-6-advanced-discovery.md
) - 工具: discover_shows
story-2-7-popular-trending.md
) - 工具: get_popular_shows
, get_trending_shows
story-2-8-reviews-ratings.md
) - 工具: get_show_reviews
story-2-9-trailers.md
) - 工具: get_show_videos
story-2-10-watch-providers.md
) - 工具: get_watch_providers
Epic 3: 个性化与集成 (Personalization & Integration)
story-3-1-watch-progress.md
)Epic 4: 可视化与探索 (Visualization & Exploration)
story-4-1-franchise-visualization.md
)使用npx可以快速运行服务器,无需安装:
# 设置TMDb API密钥(必须) export TMDB_API_KEY=your_api_key_here # 运行服务器 npx tv-recommender-mcp-server
从NPM安装
npm install -g tv-recommender-mcp-server
配置环境变量
export TMDB_API_KEY=your_api_key_here
运行服务器
tv-recommender-mcp-server
或者,您可以克隆仓库:
克隆仓库
git clone <仓库地址> cd tv-recommender-mcp-server
安装依赖
npm install
配置环境变量
.env-example
为.env
.env
文件的TMDB_API_KEY
字段构建并运行项目
npm run build npm start
要在Smithery平台中使用此MCP服务器,请按照以下步骤操作:
要在Cursor中使用此MCP服务器,请按照以下步骤操作:
在项目根目录创建(或编辑).cursor/mcp.json
文件
在文件中配置服务器信息,格式如下(使用npx方式):
{ "mcpServers": { "TVRecommender": { "command": "npx", "args": [ "tv-recommender-mcp-server" ] } } }
使用环境变量传递TMDb API密钥:
{ "mcpServers": { "TVRecommender": { "command": "env", "args": [ "TMDB_API_KEY=your_api_key_here", "npx", "tv-recommender-mcp-server" ] } } }
保存文件后,Cursor会自动检测并加载此MCP服务器
现在,您可以在Cursor中通过以下方式使用此工具:
/
并选择 TVRecommender
工具如需调试或查看日志:
Cmd+Option+I
打开)查看控制台输出"DEBUG=mcp:*,npx tv-recommender-mcp-server"
以下是几个实际使用场景示例,展示如何结合多个工具获得更好的体验:
发现新剧集:
get_popular_shows
或 get_trending_shows
获取当前热门剧集get_show_details
查看详情get_show_videos
观看预告片get_watch_providers
查找哪里可以观看基于喜爱的演员探索:
get_actor_details_and_credits
查看喜欢的演员的所有作品get_recommendations_by_actor
获取与该演员相关的推荐get_show_reviews
查看其他观众的评价精确筛选剧集:
discover_shows
结合多种条件(类型、年代、评分、关键词等)精确查找符合个人口味的剧集相似内容探索:
get_similar_shows
寻找风格相似的其他剧集get_recommendations_by_genre
探索更多同类型优质内容以上功能可以在AI聊天中自然地组合使用,例如可以对AI说"推荐一些类似《怪奇物语》的科幻剧,并告诉我在哪里可以观看",MCP工具会自动配合AI提供所需信息。
本MCP服务器提供以下工具:
更多关于工具使用和系统架构的详细文档,请访问我们的DeepWiki文档,其中包含:
以下是各工具的使用示例:
/TVRecommender get_watch_providers --show_title="怪奇物语" --country_code="US"
/TVRecommender discover_shows --with_genres=["科幻", "惊悚"] --vote_average_gte=8.0 --first_air_date_year=2022
/TVRecommender get_actor_details_and_credits --actor_name="布莱恩·科兰斯顿"
/TVRecommender get_popular_shows
/TVRecommender get_trending_shows --time_window="day"
/TVRecommender get_show_videos --show_title="权力的游戏"
/TVRecommender get_show_reviews --show_title="绝命毒师" --page=1
如果您希望参与开发,可以使用以下命令启动开发模式:
npm run dev
本项目配置了GitHub Actions工作流,可以自动发布到NPM:
package.json
中的版本号NPM_TOKEN
: 您的NPM访问令牌您也可以手动触发工作流进行发布。
欢迎提交Issue和Pull Request来帮助改进这个项目。
MIT © 2023-present