使用说明
网站.tv-mcp
Trakt.tv API的MCP服务器-使人工智能助手能够使用自然语言跟踪观看的节目、电影和动画
项目链接
- 存储库:https://github.com/kofort9/trakt.tv-mcp
- 问题:https://github.com/kofort9/trakt.tv-mcp/issues
- 安全:请参阅 安全.md
特性
- 自然语言支持:使用会话短语,如“昨天看的”、“今晚”、“3天前”、“上周一”
- 跟踪观看的内容:用灵活的日期表达方式记录电影和电视节目
- 批量日志记录:使用范围支持同时录制多集或多部电影(“第1-5集”)
- 批量导入脚本:从CSV文件导入100多个历史条目(请参阅指南)
- 观看历史:按日期范围查询和汇总您的查看历史记录
- 搜索:在Trakt.TV上查找电影、电视节目和动漫
- 智能消歧:自动处理多个版本或年份的内容
- OAuth 2.0身份验证:与您的Trakt.tv帐户安全集成
- 廊坊可观察性:全面的AI原生跟踪和监控(请参阅文档)
快速开始
对于用户
自然语言示例:
"Watched Breaking Bad S1E1 yesterday"
"Binged episodes 1-5 of Demon Slayer tonight"
"What did I watch last week?"
"Watched Dune 2021 last Friday"
看 自然语言指南 获取完整的使用文档。
离线捕捉 logwatch
当无法访问Claude/AI时,在本地排队并稍后进行对账。我们只存储您提供的原始文本,不进行解析或摘要。
logwatch "yesterday watched The Bear S2E5"-将原始注释附加到~/.trakt-mcp/pending-logs.jsonllogwatch list-检查队列- 自动跳过重复的原始钞票;重新运行相同的输入将指向已排队的条目。
使用以下命令全局安装CLI npm install -g 在此repo或run中 npm link 同时发展。队列使用仅限所有者的权限(600),并遵循 手动E2E计划 用于离线捕获。
人工智能助理(Claude)
该服务器专为AI助手集成而设计。看 贡献指南-人工智能助理科 用于:
- 如何解释用户查询
- 自然语言模式映射
- 错误处理和消歧
- 会话交互的最佳实践
文档
📚 完整文档索引
快速链接:
- 安装说明 在......下面
- 自然语言指南 -自然语言模式完整指南
- 观察性指南 -OpenTetry仪器和蜂窝集成
- 贡献指南 -面向开发人员和AI助手
- 测试指导 -全面的测试文档
- E2E运行 -Live Trakt API测试(opt-in)和GitHub操作工作流
- 更新日志 -版本历史和发行说明
- 技术_DEBT.md -依赖引脚和技术债务跟踪
安全
日志和数据隐私
- 日志目录:日志存储在
~/.trakt-mcp/logs(用户主目录)。 - 权限:
- 目录权限限制为
0o700(仅限所有者读/写/执行)。 - 日志文件仅限于
0o600(仅限所有者读/写)。
- 目录权限限制为
- 保留:
- 当日志达到10MB时,会自动轮换。
- 最多保留10个日志文件(可通过以下方式配置
maxLogFiles). - 超过7天的日志将自动删除(可通过配置
maxLogAge).
- 编辑:敏感标题,如
Authorization从所有日志中删除。 - 平台说明:
- 权限强制在Linux和macOS(POSIX)上处于活动状态。
- 在Windows上,文件权限不是由严格执行的
chmod。确保日志目录位于安全的、特定于用户的位置。
令牌存储
- 位置:OAuth令牌存储在
~/.trakt-mcp/.trakt-token.json - 权限:令牌文件是使用创建的
0o600(仅限所有者读/写) - 目录:使用创建的父目录
0o700(仅限所有者)
OAuth身份验证
OAuth设备流包括防止竞争条件的保护措施:
- 并发投票预防:一次只能运行一个轮询操作
- 取消支持:使用
cancelPolling()中止正在进行的身份验证 - 状态检测:检查
isPollingInProgress()在开始新的民意调查之前 - 自动清理:轮询状态在完成或出错后始终重置
发展
先决条件
- Node.js 20.x或更高版本
- npm
- Trakt.tv帐户和API凭据
回购包括
.nvmrc(20.19.6)和apreinstall在Node<20上快速失败的防护程序。使用nvm use或export PATH="/opt/homebrew/opt/node@20/bin:$PATH"如果你在Homebrew上。
设置
# Install dependencies
npm install
# Copy environment template
cp .env.example .env
# Add your Trakt.tv credentials to .env
# TRAKT_CLIENT_ID=your_client_id
# TRAKT_CLIENT_SECRET=your_client_secret
Claude桌面集成
使用 run-mcp.sh Claude Desktop集成的包装器脚本。此包装:
- 抑制dotenv横幅输出以进行干净的JSON-RPC通信
- 使用动态路径解析(适用于任何目录)
- 运行前验证构建是否存在
配置示例:
添加到您的Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"trakt": {
"command": "/absolute/path/to/trakt.tv-mcp/run-mcp.sh"
}
}
}
备注:始终使用包装器脚本,而不是运行
node dist/index.js直接。直接执行将导致Claude Desktop中的协议错误。包装套DOTENV_CONFIG_QUIET=true以抑制否则会污染stdout的dotenv横幅,从而破坏MCP JSON-RPC协议。
可用脚本
# Build the project
npm run build
# Run in development mode with auto-reload
npm run dev
# Run linter
npm run lint
# Fix linting issues
npm run lint:fix
# Check code formatting
npx prettier --check "src/**/*.ts"
# Format code
npm run format
# Run tests
npm test
# Run tests in watch mode
npm run test:watch
# Run tests with UI
npm run test:ui
# Bulk import historical data from CSV
npm run bulk-import -- --help
代码质量
本项目使用:
- TypeScript 具有严格的型号安全模式
- ESLint 用于代码过滤
- 更漂亮 用于代码格式化
- Vitest 用于测试
所有代码更改都必须通过:
- TypeScript编译
- ESLint检查
- 预处理格式检查
- 所有单元测试
持续集成
GitHub Actions会自动对每个推送和拉取请求进行质量检查:
- TypeScript编译
- ESLint验证
- 预分级格式验证
- 完整的测试套件
- 安全审计
看 分支保护建议 用于设置分支保护规则。
贡献与人工智能集成
该项目专为AI助手集成(Claude等)而设计。关键资源:
所有更改都必须通过测试和代码质量检查。
支持
许可证
麻省理工学院