🎌 ani-mcp

🧠 一个面向 AniList 的智能 MCP 服务器——它懂你的动漫与漫画品味,而不只是简单地调用 API。
✨ 主要特性
大多数 AniList 集成只是 1:1 地映射 API,而 ani-mcp 在其之上增加了一层智能化能力:
- 🎭 品味画像(Taste profiling)——根据你的"已完成"列表构建你的偏好模型
- 🎯 个性化推荐——基于你的品味、心情和当季新番给出"接下来该看什么?"
- 🤝 契合度对比——比较两位用户之间的品味契合度
- 📺 续作提醒——找出你已看过的番在本季播出的续作
- 🔗 观看顺序——为长篇系列进行系列关联链遍历
- ⏱️ 观影规划——"我有 90 分钟,该看点什么?",从你当前列表中挑选
- 📊 年度回顾——把你的观影/阅读数据汇总成年度报告
此外还包含基础功能:搜索、详情、热门趋势、当季浏览、列表管理、社交功能以及社区推荐。所有搜索与浏览工具都支持分页,可翻看超出第一页的结果。
🚀 快速开始
无需账号,支持任何兼容 MCP 的客户端。
🖥️ Claude Desktop
添加到你的配置文件(可通过 Settings > Developer > Edit Config 打开,macOS 上路径为 ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"anilist": {
"command": "npx",
"args": ["-y", "ani-mcp"]
}
}
}
保存后重启 Claude Desktop 即可。
或者,从 最新发布 下载 ani-mcp.mcpb,通过 Settings > Extensions 安装。
⌨️ Claude Code
claude mcp add ani-mcp -- npx -y ani-mcp
🎯 个性化功能
添加你的用户名以启用推荐、品味画像和列表管理功能:
{
"mcpServers": {
"anilist": {
"command": "npx",
"args": ["-y", "ani-mcp"],
"env": {
"ANILIST_USERNAME": "your_username"
}
}
}
}
如需写操作(更新进度、评分、编辑列表),还需添加 ANILIST_TOKEN。详情请参见环境变量。
🔧 环境变量
| 变量 |
是否必需 |
说明 |
ANILIST_USERNAME |
否 |
列表与统计工具的默认用户名。也可在每次调用时传入。 |
ANILIST_TOKEN |
否 |
AniList OAuth 令牌。写操作和访问私密列表时必须提供。 |
ANILIST_TITLE_LANGUAGE |
否 |
标题偏好:english(默认)、romaji 或 native。 |
ANILIST_SCORE_FORMAT |
否 |
覆盖评分显示格式:POINT_100、POINT_10_DECIMAL、POINT_10、POINT_5、POINT_3。 |
ANILIST_NSFW |
否 |
设为 true 以在结果中纳入成人内容。默认:false。 |
ANILIST_MOOD_CONFIG |
否 |
用于添加或覆盖情绪关键字的 JSON 对象。参见情绪配置。 |
DEBUG |
否 |
设为 true 以将调试日志输出到 stderr。 |
MCP_TRANSPORT |
否 |
设为 http 以使用 HTTP Stream 传输。默认:stdio。 |
MCP_PORT |
否 |
HTTP 传输的端口。默认:3000。 |
MCP_HOST |
否 |
HTTP 传输的主机。默认:localhost。 |
🛠️ 工具
🔍 搜索与发现
| 工具 |
说明 |
anilist_search |
按标题搜索动漫/漫画,支持类型、年份和格式筛选 |
anilist_details |
获取某部作品的完整详情、关联作品与推荐 |
anilist_seasonal |
浏览某一季的动漫阵容 |
anilist_trending |
查看 AniList 当前的热门内容 |
anilist_genres |
浏览某一类型下的热门作品,支持可选筛选 |
anilist_genre_list |
列出所有有效的类型与内容标签 |
anilist_recommendations |
获取某部作品的社区推荐 |
📋 列表与统计
| 工具 |
说明 |
anilist_list |
用户的动漫/漫画列表,可按状态筛选 |
anilist_lookup |
检查某部作品是否在用户列表中 |
anilist_stats |
观影/阅读统计、热门类型、评分分布 |
🧠 智能分析
| 工具 |
说明 |
anilist_taste |
根据你的已完成列表生成品味画像 |
anilist_pick |
从你的待看列表、当季阵容或发现池中个性化推荐"接下来该看什么" |
anilist_compare |
比较两位用户之间的品味契合度 |
anilist_wrapped |
年度回顾总结 |
anilist_explain |
"我为什么会喜欢这个?"——将某部作品与你的品味画像进行匹配评分 |
anilist_similar |
查找与指定动漫或漫画相似的作品 |
anilist_sequels |
找出你已看完作品在本季播出的续作 |
anilist_watch_order |
查看某个系列的观看顺序 |
anilist_session |
在时间预算内规划一次观影 |
anilist_mal_import |
导入 MyAnimeList 用户的列表并生成推荐 |
anilist_kitsu_import |
导入 Kitsu 用户的列表并生成推荐 |
🎴 卡片
| 工具 |
说明 |
anilist_taste_card |
生成可分享的品味画像卡片(PNG 图片) |
anilist_compat_card |
生成两位用户的契合度对比卡片(PNG 图片) |
ℹ️ 信息查询
| 工具 |
说明 |
anilist_staff |
某部作品的制作人员与声优 |
anilist_staff_search |
按姓名搜索某位人员并查看其全部作品 |
anilist_studio_search |
搜索某家动画制作公司并查看其作品 |
anilist_schedule |
播出时间表与下一集倒计时 |
anilist_airing |
你当前在追作品即将播出的剧集 |
anilist_characters |
按姓名搜索角色,附登场作品与声优 |
anilist_whoami |
检查认证状态与评分格式 |
💬 社交
| 工具 |
说明 |
anilist_profile |
查看用户资料、简介、收藏与统计 |
anilist_feed |
用户动态中的近期活动 |
anilist_reviews |
某部作品的社区评测 |
anilist_favourite |
对动漫、漫画、角色、制作人员或公司切换收藏状态 |
anilist_activity |
向你的动态发布一条文字活动 |
anilist_group_pick |
为一起观看的群体寻找动漫/漫画 |
anilist_shared_planning |
找出两位用户待看列表之间的重叠部分 |
anilist_follow_suggestions |
按品味契合度对关注用户进行排名 |
anilist_react |
对某条活动点赞或回复 |
📈 数据分析
| 工具 |
说明 |
anilist_calibration |
对比社区共识,分析各类型的评分偏差 |
anilist_drops |
弃番模式分析——类型/标签聚类与弃番中位点 |
anilist_evolution |
你的品味在 2 年时间窗口内的变化趋势 |
anilist_completionist |
通过关联图追踪系列完成度 |
anilist_seasonal_stats |
各季度的观看/追完/弃番率 |
anilist_pace |
当前在追作品的预计完成日期 |
✍️ 写操作(需要 ANILIST_TOKEN)
| 工具 |
说明 |
anilist_update_progress |
更新剧集或章节进度 |
anilist_add_to_list |
将某部作品以指定状态添加到你的列表 |
anilist_rate |
给某部作品评分(0-10) |
anilist_delete_from_list |
从列表中移除某条记录 |
anilist_undo |
撤销上一次写操作 |
anilist_unscored |
列出已看完但未评分的作品,便于批量评分 |
anilist_batch_update |
对列表条目进行批量筛选与操作(默认预演模式) |
📚 资源
MCP 资源无需工具调用即可为你的 AI 助手提供上下文。支持资源的客户端可以自动在对话中纳入这些信息。
| 资源 |
说明 |
anilist://profile |
你的 AniList 资料,含简介、统计与收藏 |
anilist://taste/{type} |
品味画像(类型权重、主题、评分模式),适用于 ANIME 或 MANGA |
anilist://list/{type} |
当前正在观看/阅读的条目,含进度与评分 |
💡 提示词
客户端可作为快捷操作提供的预置对话起始语。
| 提示词 |
说明 |
setup |
逐步引导你连接 AniList 账号 |
seasonal_review |
结合你的品味画像回顾本季动漫 |
what_to_watch |
结合可选的心情与时间预算,规划现在该看什么 |
roast_my_taste |
幽默地吐槽你的动漫品味 |
compare_us |
将你的品味与另一位用户进行对比 |
year_in_review |
你的动漫/漫画年度回顾 |
explain_title |
你为什么会对某部作品喜欢(或不喜欢)? |
find_similar |
查找与你喜欢的作品相似的作品 |
💬 使用示例
连接 ani-mcp 后,你可以向 AI 助手提出以下这些请求:
"接下来该看什么?"
使用 anilist_pick 分析你的已完成列表,构建品味画像,并从你的"计划观看"列表中按偏好匹配度排名推荐作品。
"我想看点黑暗、心理向的"
使用 anilist_pick 搭配情绪过滤,提升符合该氛围的作品权重,并降低不匹配作品的权重。
"本季有什么好番?"
使用 anilist_pick 并设置 source: SEASONAL,将当前播出的动漫与你的品味画像进行排名。
"我有 90 分钟,今晚该看点什么?"
使用 anilist_session 从你当前在追列表中挑选,并在时间预算内填入最匹配的剧集。
"有什么我看完的番出了续作吗?"
使用 anilist_sequels 将你的已完成列表与本季阵容进行交叉比对。
"Fate 的观看顺序是什么?"
使用 anilist_watch_order 遍历系列关联图,生成带编号的观看顺序。
"把我的品味和 username123 对比一下"
使用 anilist_compare 找出共同作品,计算契合度得分,并突出显示最大的分歧。
"我为什么会喜欢《冰海战记》?"
使用 anilist_explain 将某部作品与你的品味画像进行评分,分解类型亲和度与主题契合度。
"给我看看我的动漫年度回顾"
使用 anilist_wrapped 汇总你在某一年观看过的全部内容。
🎨 情绪配置
anilist_pick 和 anilist_session 接受一个自由格式的 mood 字符串。内置关键字包括:dark、chill、hype、action、romantic、funny、brainy、sad、scary、epic、wholesome、intense、mystery、fantasy、scifi、trippy、nostalgic、artistic、competitive、cozy。
如需添加或覆盖关键字,请将 ANILIST_MOOD_CONFIG 设置为一个 JSON 对象:
{
"ANILIST_MOOD_CONFIG": "{\"cozy\":{\"boost\":[\"Slice of Life\",\"Iyashikei\"],\"penalize\":[\"Horror\"]},\"mykeyword\":{\"boost\":[\"Romance\"],\"penalize\":[]}}"
}
每个键是一个情绪关键字,映射到 { boost: string[], penalize: string[] },其中为 AniList 类型与标签的数组。
🔒 隐私
详情请参见 PRIVACY.md。简而言之:ani-mcp 在本地运行,仅向 AniList API 发送请求,不存储任何内容,也不收集任何分析数据。
🐳 Docker
docker build -t ani-mcp .
docker run -e ANILIST_USERNAME=your_username ani-mcp
默认以 HTTP Stream 传输方式在 3000 端口运行。
🔨 从源码构建
git clone https://github.com/gavxm/ani-mcp.git
cd ani-mcp
npm install
npm run build
npm test
🐛 支持
Bug 反馈与功能请求:GitHub Issues
📄 许可证
MIT