bangumi-mcp
Enables querying and updating Bangumi anime collections, tracking per-episode progress, and receiving airing reminders for currently-watching anime via AniList.
README
bangumi-mcp
Roxy Plugin API v2 插件,用 Bangumi 官方 API 分页查询收藏列表、查询单个条目的准确进度、设置“在看/看过”,通过章节接口逐集更新动画观看进度,并按 AniList 计划放送时间主动提醒在看动画的新一集。
安全边界
- 只连接
https://api.bgm.tv和https://graphql.anilist.co,使用符合官方要求的 User-Agent。 - Bangumi Access Token 和 AniList Access Token 只从 Roxy plugin-data 的
config.local.toml读取,不写入仓库、日志或工具结果。 - 所有远端写入先生成包含作品名和目标状态/集数的预览;确认记录单次使用并在 10 分钟后过期。
- 完整收藏查询或累计读取达到 100 条时,先显示只读查询范围与预计请求数,并等待本轮之后的逐字确认。
- 动画进度使用
PATCH /v0/users/-/collections/{subject_id}/episodes和明确的章节 ID,不用条目级ep_status修改动画集数。
安装
Roxy 只安装 Git 已提交快照。从 Roxy 仓库执行:
.venv/bin/python main.py plugin-install \
--source https://github.com/roxy-plugins/bangumi-mcp.git \
--marketplace github
安装输出会给出数据目录,默认是:
<workspace>/plugin-data/bangumi-github/
登录 Bangumi 后,前往 Bangumi Access Token 页面 生成个人 Token。该 Token 是账号的 API 访问凭据,不是 Bangumi 密码。
在该目录创建权限为 0600 的 config.local.toml:
access_token = "<在此填写 Bangumi Access Token>"
user_agent = "roxy-plugins/bangumi-mcp/0.5.0 (https://github.com/roxy-plugins/bangumi-mcp)"
[anime_push]
enabled = true
notify_before_minutes = 0
display_timezone = "Asia/Shanghai"
anilist_token = "<在此填写 AniList Access Token>"
# 只有自动匹配失败时才需要配置;左侧是 Bangumi subject ID。
[anime_push.media_id_overrides]
"501963" = 123456
已安装旧版本的用户如果在本地配置中显式设置了 user_agent,更新插件后也需要将其改为上述新标识。不要把 Token 放进命令行参数或聊天消息。配置完成后检查:
.venv/bin/python main.py plugin-doctor bangumi@github
运行中的 Roxy 会观察配置变化并发布新的 committed generation;新会话会加载 bangumi Skill 和 MCP 工具。
放送提醒
- 提醒依据是 AniList
nextAiringEpisode.airingAt,精度规范化到分钟;它表示计划放送,不代表流媒体、字幕或片源已经上线。 notify_before_minutes=0从计划放送时刻开始等待投递;可设置为0至1440的整数以提前提醒。- 到达提醒时刻后,Roxy 在下一次 proactive tick 读取事件。Gate、Judge、会话繁忙或 channel 状态可能使消息延后数分钟。
- 插件只处理 Bangumi 标记为“在看”的动画,并在生成提醒前通过逐集接口确认该集尚未标记为“看过”。
- AniList 与 Bangumi 没有共同稳定 ID。自动匹配只接受唯一严格候选;失败时可在私密配置的
media_id_overrides中明确指定 AniList media ID。 - 启用
anime_push必须配置 AniList Access Token;它只能写入上述 plugin-data 私密文件,不要放在命令行、对话或仓库中。 - 缓存、待投递事件和 ACK 保存在同一 plugin-data 目录下的
anime_updates.db。关闭anime_push.enabled不会删除该数据库。
设计文档
开发验证
python -m pip install -r mcp/requirements.txt -r requirements-dev.txt
pytest
PYTHONPATH=/path/to/plugin-contracts \
python -m akashic_plugin_contracts check plugin.py
单元测试全部使用假的 HTTP 会话,不访问真实 Bangumi 账户,也不需要 Access Token。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。