Letterboxd 交互服务器

一个基于 Model Context Protocol (MCP) 的服务器,允许AI模型与 Letterboxd 数据进行交互,执行评分、写评论和管理观影列表等账户操作。

  • by alexstajos
  • JavaScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 alexstajos/Letterboxd-MCP

使用说明

带信箱的MCP服务器

原产地说明: 该项目最初基于 Racimy/字母盒MCP此后,它被广泛重写和扩展(V3+),以包括全面的剧作家动作、多模式传输(Stdio/SSE)和扩展的工具集。

A. 模型上下文协议(MCP) 服务器 信箱它使AI模型能够与Letterbox数据交互,并执行帐户操作,如评级电影、撰写评论和管理观察名单。

此服务器使用 剧作家 用于经过身份验证的帐户操作和读取端点的快速HTML抓取。

特性

  • 丰富的电影元数据:获取海报、演员、运行时、流派和概要。
  • 搜索:全面搜索电影、成员、列表和评论。
  • 会员见解:获取个人资料摘要、统计数据、观察列表、日记条目和评分。
  • 账户管理:
    • 给电影评分(0.5到5颗星)。
    • 切换“已监视”、“监视列表”和“点赞”状态。
    • 撰写和更新评论(支持评级、剧透和重新观看标志)。
    • 创建和管理列表。
  • me 捷径:使用“me”作为用户名来定位您的已验证帐户。
  • 自动分页:默认情况下获取所有页面或支持基于光标的手动导航。

安装

先决条件

设置

  1. 克隆存储库:

    git clone https://github.com/yourusername/Letterboxd-MCP.git
    cd Letterboxd-MCP
    
  2. 安装依赖项:

    npm install
    

    注意:这也将下载Chromium for Playwright。

  3. 创建一个 .env 文件(参见 配置):

    cp .env.example .env
    

配置

服务器是通过环境变量配置的。创建一个 .env 根目录中的文件:

# Required for account actions & private data
LETTERBOXD_USERNAME=your_username
LETTERBOXD_PASSWORD=your_password

# Optional
PORT=3000
MCP_API_KEY=your_optional_secret_key
LETTERBOXD_LOGIN_FOR_READS=true # Set to false to avoid logging in for public data

用法

标准模式(推荐用于本地MCP客户端)

要在Stdio模式下为本地客户端(如Claude Desktop)运行服务器,请执行以下操作:

node index.js --mode=stdio

SSE模式(用于远程集成)

要在SSE(服务器发送事件)模式下运行服务器,请执行以下操作:

npm start

与AI代理集成

有关如何配置AI代理(如Claude或Gemini)以有效使用此服务器的详细说明,包括自然语言评论发布等专门工作流程,请参阅 代理说明和示例指南.

与Claude Desktop集成

将此添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "letterboxd": {
      "command": "node",
      "args": ["/absolute/path/to/Letterboxd-MCP/index.js", "--mode=stdio"],
      "env": {
        "LETTERBOXD_USERNAME": "your_username",
        "LETTERBOXD_PASSWORD": "your_password"
      }
    }
  }
}

可用工具

阅读工具

  • search:搜索信箱(电影、列表、成员、评论)。
  • get_film:获取电影的详细元数据。
  • get_member:获取会员的个人资料和统计数据。
  • get_member_watchlist:在成员的观察名单中列出电影。
  • get_member_diary:列出成员的日记条目。
  • get_member_films:列出成员看过的电影。
  • get_member_ratings:列出成员评价的电影。
  • get_member_reviews:列出成员撰写的评论。
  • get_member_pinned:获取会员最喜欢/固定的电影。
  • get_member_lists:列出成员创建的列表。
  • get_list:获取特定列表的条目和元数据。
  • get_review:获取完整的审核详细信息。
  • get_current_user:检查身份验证状态。

写入工具(需要身份验证)

  • rate_film:设置星级。
  • add_to_watched:将一部电影标记为已观看/未观看。
  • add_to_watchlist:从你的观看名单中添加/删除一部电影。
  • toggle_like喜欢/不喜欢一部电影。
  • write_review:撰写或更新评论。
  • write_review_by_title:按标题搜索并撰写评论。
  • add_to_list:将电影添加到现有列表中。
  • create_list:创建新列表。

开发与测试

运行测试

  • 只读测试: npm run test:read
  • 突变试验 (需要实时凭据): RUN_MUTATING_TESTS=true npm run test:mutating
  • 所有测试: npm run test:all

学分

该项目最初基于 Racimy/字母盒MCP此后,它被广泛重写和扩展(V3+),以包括全面的剧作家动作、多模式传输(Stdio/SSE)和扩展的工具集。

安全警告

此服务器使用Playwright自动化您的Letterbox帐户。 从不 分享你的 .env 将其归档或提交到版本控制。始终使用强力 MCP_API_KEY 如果在互联网上以SSE模式运行。

许可证

国际学生中心