bangumi-mcp
Provides anime airing schedule reminders by querying AniList for next airing times and matching them with Bangumi watch statuses.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@bangumi-mcpmark episode 5 of MyGo as watched"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
bangumi-mcp
Akashic Plugin API v3 插件,用 Bangumi 官方 API 分页查询收藏列表、查询单个条目的准确进度、设置“在看/看过”,通过章节接口逐集更新动画观看进度,并按 AniList 计划放送时间记录在看动画的新一集提醒。
安全边界
只连接
https://api.bgm.tv和https://graphql.anilist.co,使用符合官方要求的 User-Agent。Bangumi Access Token 和 AniList Access Token 通过插件配置程序写入 Akashic 私有凭据库;固定配置与工具结果里只有不可变引用,没有明文 Token。
所有远端写入先生成包含作品名和目标状态/集数的预览;确认记录单次使用并在 10 分钟后过期。
完整收藏查询或累计读取达到 100 条时,先显示只读查询范围与预计请求数,并等待本轮之后的逐字确认。
动画进度使用
PATCH /v0/users/-/collections/{subject_id}/episodes和明确的章节 ID,不用条目级ep_status修改动画集数。
Related MCP server: Bangumi TV MCP Service
安装
Akashic 只安装 Git 已提交快照。从 Akashic 仓库执行:
.venv/bin/python main.py plugin-install \
--source https://github.com/akashic-plugins/bangumi-mcp.git \
--marketplace github安装输出会给出数据目录,默认是:
<workspace>/plugin-data/bangumi-github/配置
登录 Bangumi 后,前往 Bangumi Access Token 页面 生成个人 Token。该 Token 是账号的 API 访问凭据,不是 Bangumi 密码。
V3 插件不再读取手写的 config.local.toml;配置由插件自己的命令写入固定输入与私有凭据库。不要把 Token 放进命令行参数(会进入进程列表),用环境变量传递:
export AKASHIC_BANGUMI_ACCESS_TOKEN="<Bangumi Access Token>"
.venv/bin/python main.py bangumi-configure宿主的 main.py setup 只初始化 Core,不再发现或执行插件的 configure.py;配置入口是本插件通过 entrypoints 声明的 bangumi-configure 命令。
该命令只从已提交的插件选择里查找,所以要先安装并启用插件,否则会以退出码 2 结束:
从未安装 →
当前空选择没有命令 provider: bangumi-configure已安装但未启用 →
命令 bangumi-configure 需要唯一 provider,当前有 0 个
可选配置项(同样只用环境变量):
环境变量 | 含义 |
| AniList Access Token;启用放送提醒时必须提供 |
|
|
| 提前提醒分钟数, |
| 展示用 IANA 时区,默认 |
| 覆盖默认 User-Agent |
放送提醒必须同时满足两个条件:ANIME_PUSH_ENABLED 为真,且 AniList Token 非空。
只打开开关而没有 Token 时,后台刷新不会启动(background_refresh_enabled 要求两者同时成立),
本地事件库也不会新增记录,界面上不会有任何报错。启用前请先确认 Token 已写入。
media_id_overrides(AniList 自动匹配失败时的人工映射)需要在固定配置里手工补充,左侧是 Bangumi subject ID:
// <workspace>/plugin-data/bangumi-github/config.input.json
"media_id_overrides": { "501963": 123456 }配置完成后检查:
.venv/bin/python main.py plugin-doctor bangumi@github运行中的 Akashic 会观察配置变化并发布新的 committed generation;新会话会加载 bangumi Skill 与插件工具。
从旧版本升级
旧版本把 Token 明文写在 plugin-data/bangumi-github/config.local.toml。V3 运行时遇到该文件会拒绝加载,必须先显式升级:
.venv/bin/python main.py bangumi-configure --upgrade升级会把明文 Token 转入私有凭据库、写出 config.input.json,并把旧文件与其命名备份保存在 .plugin-credentials/bangumi-github/upgrades/ 的恢复点里,便于人工核对。
放送提醒
提醒依据是 AniList
nextAiringEpisode.airingAt,精度规范化到分钟;它表示计划放送,不代表流媒体、字幕或片源已经上线。notify_before_minutes=0从计划放送时刻开始等待投递;可设置为0至1440的整数以提前提醒。插件只处理 Bangumi 标记为“在看”的动画,并在记录提醒前通过逐集接口确认该集尚未标记为“看过”。
刷新循环把到期事件写入
plugin-data/bangumi-github/anime_updates.db,再通过eventmail告警邮箱交给wake插件投递到用户渠道。到达提醒时刻后,Akashic 在下一次 tick 读取事件。Gate、Judge、会话繁忙或 channel 状态可能使消息延后数分钟。
投递前提:Akashic 需要安装并启用
eventmail与wake,且为wake配置投递目标(delivery的 channel / recipient / session)。未配置时告警会留在邮箱里,不会送到用户,但不会报错。eventmail不可用时自动降级:抓取与本地事件库照常运行,get_anime_update_alerts/acknowledge_anime_update_alerts仍可手动查看与清理。启用
anime_push必须配置 AniList Access Token(见上方环境变量表)。AniList 与 Bangumi 没有共同稳定 ID。自动匹配只接受唯一严格候选;失败时可用固定配置中的
media_id_overrides明确指定 AniList media ID。缓存、待投递事件和 ACK 保存在同一 plugin-data 目录下的
anime_updates.db。关闭anime_push.enabled不会删除该数据库。
设计文档
开发验证
测试必须在宿主环境里运行:插件的工具结果直接使用
plugins.ledger.contract.ContentPart,导入它就等于导入宿主。
git clone https://github.com/kachofugetsu09/akashic-agent ~/akashic-agent
cd ~/akashic-agent && python -m pip install -r requirements.txt -r requirements-dev.txt
cd <本仓库>
AKASHIC_AGENT_ROOT=~/akashic-agent \
~/akashic-agent/.venv/bin/python -m pytestAKASHIC_AGENT_ROOT 也可以不设:默认查找同级的 ../akashic-agent。
只有宿主源码存在且其依赖可导入时测试才会执行,否则收集阶段直接报错,
不会用本地桩假装通过。
单元测试全部使用假的 HTTP 会话,不访问真实 Bangumi 账户,也不需要 Access Token。
测试分三层:
文件 | 覆盖 |
| 纯领域逻辑:收藏查询、确认、AniList、事件库、配置解析 |
| 契约形状: |
| 把契约放进真实宿主验证(加载器、ServiceKey 身份、工具结果类型) |
测试为什么能导入相对导入的 plugin.py
plugin.py 用 from .bangumi.…(宿主把插件注册成包,插件根不在 sys.path)。
测试通过 tests/conftest.py 注册的伪包 bangumi_test_plugin 拿到同样的包身份,
所以测试里写 from bangumi_test_plugin import plugin。这与同组织
akashic-plugins/fitbit-mcp 的做法一致。
This server cannot be deployed
Maintenance
Related MCP Connectors
AniList MCP — wraps AniList GraphQL API (free, no auth)
MCP server for GLM chat completions using Zhipu AI models via AceDataCloud
The official MCP Server for the Mux API
MCP server for the Vulners.com API
Related MCP Servers
- AlicenseBqualityBmaintenanceAniList MCP server for accessing AniList API data44177 npm92MIT
- FlicenseAqualityDmaintenanceProvides MCP access to the BangumiTV API, allowing users to retrieve and interact with anime, manga, music, and game information through natural language queries.1727-
- AlicenseBqualityDmaintenanceMCP Server for interacting with the MyAnimeList API, allowing LLM clients to access and interact with anime, manga and more.154MIT
- AlicenseAqualityAmaintenanceMCP server for MyAnimeList that enables searching anime/manga, getting details, rankings, seasons, characters, reviews, and user profiles without authentication, and managing personal anime/manga lists with authentication (token required).54194 npm3MIT