关于 animeport
animeport 是面向 AniList 的只读 MCP 服务和命令行工具,可查询动画、漫画、人物及用户列表。它通过 AniList 公共 GraphQL API 提供核心数据子集。
主要功能
- 01搜索动画、漫画、角色、职员、工作室和用户
- 02获取作品、角色、职员和工作室详情
- 03查看用户资料、统计信息和列表
- 04查询今日生日的角色与职员
- 05获取媒体条目的推荐
适用场景
- 01按标题、类型或季度年份查找动画
- 02按姓名查询角色或职员
- 03查看 AniList 用户的列表和资料
- 04发现某部作品的推荐作品
MCP 相关
通过 stdio 将 AniList 只读操作作为 MCP 工具提供。每个工具都会向 AniList 公共 API 发送 GraphQL 查询。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
20收录的工具列表 · 更新于 1 周前
此工具无需参数。
详细介绍
animeport
animeport 使用 AniList 回答有关动漫和漫画的问题:作品讲述了什么、评分如何、由谁创作、今天有哪些角色和工作人员过生日、指定用户正在观看或阅读什么,以及某部作品的粉丝通常会推荐接下来看什么。所有回答均来自 AniList 的公开 GraphQL API。
此软件包是一次从头独立重建,并且是一个标注范围的核心子集:涵盖 AniList MCP 服务原始文档中 42 个工具里的 20 个。未涵盖的工具列于下方的“范围”部分。
与服务的通信方式
每个工具都会通过 POST 向 AniList API 发送且仅发送一个 GraphQL 查询,并返回响应中的 data 负载:
# Optional: raises rate limits / unlocks authenticated reads on AniList.
export ANILIST_TOKEN="your token"
# Optional override (default: https://graphql.anilist.co)
export ANILIST_API_URL="https://graphql.anilist.co"
令牌确实是可选的。未设置令牌时,请求会以无密钥方式发送,而 AniList 允许这些只读工具这样使用——仅仅因为缺少 ANILIST_TOKEN,请求不会失败。当 AniList 返回 GraphQL errors 数组时,调用会失败并显示首个错误的消息;上游 HTTP 错误则会显示其状态码和响应正文摘录。
**字段选择说明:**原项目的 README 介绍了这些工具及其用途,但没有记录 GraphQL 字段选择。这里的查询是针对每个工具所述用途重新设计的合理方案,并非复制原项目的查询。
安装
npx @reneturcios/animeport search_anime '{"search":"Frieren"}'
或者运行容器镜像:
docker run -i ghcr.io/cloudcorprecords/animeport
容器默认启动 MCP 服务。传入 CLI 参数即可将其用作 CLI。
CLI
CLI 与这些工具相对应:每个工具都有一个子命令,并将参数作为单个 JSON 对象传入。
animeport get_genres '{}'
animeport search_anime '{"search":"Frieren","perPage":5}'
animeport get_anime '{"id":154587}'
animeport get_todays_birthday_characters '{}'
animeport get_user_anime_list '{"username":"someone","status":"CURRENT"}'
animeport get_recommendations_for_media '{"mediaId":154587}'
animeport --version
退出代码:成功时为 0;API 或验证错误时为 1(错误会指出问题);用法错误时为 2。
MCP 服务
一个二进制文件即可提供这两种用法。mcp 子命令会启动 stdio MCP 服务:
npx -y @reneturcios/animeport mcp
MCP 客户端配置:
{
"mcpServers": {
"animeport": {
"command": "npx",
"args": ["-y", "@reneturcios/animeport", "mcp"],
"env": { "ANILIST_TOKEN": "your token (optional)" }
}
}
}
工具
| 工具 | 输入 | 功能 |
|---|---|---|
get_genres | — | 获取 AniList 上可用的类型列表。 |
get_media_tags | — | 获取 AniList 上可用的媒体标签列表。 |
get_studio | id 和/或 name(至少填写一项,并在本地验证) | 根据 AniList ID 或名称获取工作室详情。 |
search_anime | search、page、perPage、genre、seasonYear(均为可选) | 按标题、类型或季度年份搜索动漫。 |
search_manga | search、page、perPage、genre、seasonYear(均为可选) | 按标题、类型或季度年份搜索漫画。 |
search_character | search(必填)、page、perPage | 按名称搜索角色。 |
search_staff | search(必填)、page、perPage | 按名称搜索工作人员。 |
search_studio | search(必填)、page、perPage | 按名称搜索工作室。 |
search_user | search(必填)、page、perPage | 按用户名搜索 AniList 用户。 |
get_anime | id(必填) | 根据 AniList ID 获取动漫的详细信息。 |
get_manga | id(必填) | 根据 AniList ID 获取漫画的详细信息。 |
get_character | id(必填) | 根据 AniList ID 获取角色的详细信息。 |
get_staff | id(必填) | 根据 AniList ID 获取工作人员的详细信息。 |
get_todays_birthday_characters | — | 获取今天过生日的角色。 |
get_todays_birthday_staff | — | 获取今天过生日的工作人员。 |
get_user_anime_list | username(必填)、status | 获取用户的动漫列表,可按状态筛选。 |
get_user_manga_list | username(必填)、status | 获取用户的漫画列表,可按状态筛选。 |
get_user_profile | username(必填) | 获取用户的 AniList 个人资料。 |
get_user_stats | username(必填) | 获取用户的活动统计数据。 |
get_recommendations_for_media | mediaId(必填)、page、perPage | 根据 AniList ID 获取媒体条目的推荐内容。 |
范围
以下内容未包含在此核心子集中:get_site_statistics、get_activity、
get_user_activity、post_message_activity、post_text_activity、
delete_activity、add_list_entry、remove_list_entry、
update_list_entry、favourite_anime、favourite_manga、
favourite_character、favourite_staff、favourite_studio、
get_recommendation、get_thread、get_thread_comments、
delete_thread、get_full_user_info、get_authorized_user、
follow_user 和 update_user。省略的部分特意涵盖登录、写入、收藏和讨论串功能;animeport 按设计仅提供只读功能。目录数据本身属于 AniList;此软件包复现的是工具接口以及请求/响应处理,而不是 AniList 的数据库。
开发
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, fake fetch only, no network
npm run dev # run the CLI from source via tsx
许可证
MIT — 参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。