Bangumi MCP服务器
______________________________________________________________________
英语
一种模型上下文协议(MCP)服务器,提供对 Bangumi电视台 API,使像Claude这样的人工智能助手能够与全面的动漫、漫画、音乐、游戏和现实世界的媒体数据进行交互。
特性
- 55 MCP工具:全面覆盖Bangumi API端点
- 3工作流提示:为常见任务预先构建多步骤工作流
- 1资源:API文档的完整OpenAPI规范
- 模块化架构:遵循MCP最佳实践的干净、可维护的代码库
- 类型安全:完整的Python类型提示和枚举定义
- 异步支持:使用httpx的非阻塞API调用
快速开始
先决条件
- Python 3.10或更高版本
- 紫外线 包管理器(推荐)或pip
安装
# Clone the repository
git clone https://github.com/Ukenn2112/BangumiMCP.git
cd BangumiMCP
# Create and activate virtual environment
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
uv pip install -e .Claude桌面配置
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"bangumi-tv": {
"command": "uv",
"args": [
"--directory",
"/path/to/BangumiMCP",
"run",
"main.py"
],
"env": {
"BANGUMI_TOKEN": "your_token_here"
}
}
}
}备注: BANGUMI_TOKEN 是可选的,但对于以下情况是必需的:
- 经过身份验证的操作(收集、个人数据)
- R18内容访问
- 写入操作(创建、更新、删除)
在以下地址获取您的代币:https://next.bgm.tv/demo/access-token
项目架构
BangumiMCP遵循为可维护性和可扩展性而设计的模块化架构:
BangumiMCP/
├── main.py # Server initialization (44 lines)
├── src/
│ ├── config.py # Configuration constants
│ ├── enums.py # API enum definitions (8 types)
│ ├── utils/
│ │ ├── api_client.py # HTTP client & error handling
│ │ └── formatters.py # Data formatting utilities
│ ├── resources/
│ │ └── openapi_resource.py # OpenAPI specification resource
│ ├── tools/ # 55 MCP tools organized by domain
│ │ ├── subject_tools.py # Subjects & episodes (10 tools)
│ │ ├── character_tools.py # Characters (7 tools)
│ │ ├── person_tools.py # Persons & companies (7 tools)
│ │ ├── user_tools.py # User information (3 tools)
│ │ ├── collection_tools.py # Collections (11 tools)
│ │ ├── revision_tools.py # Edit history (8 tools)
│ │ └── index_tools.py # Indices/directories (9 tools)
│ └── prompts/
│ └── workflow_prompts.py # Composite prompts (3)
├── bangumi-tv-api.json # OpenAPI 3.0.3 specification
└── pyproject.toml # Project metadata可用工具
主题和剧集(10个工具)
get_daily_broadcast-每周播出时间表search_subjects-带过滤器的全文搜索browse_subjects-基于类别的浏览get_subject_details-详细的主题信息get_subject_image-主题图片URLget_subject_persons-相关创作者/员工get_subject_characters-相关人物get_subject_relations-相关主题get_episodes-剧集列表get_episode_details-事件信息
角色(7个工具)
search_characters-字符搜索get_character_details-角色信息get_character_image-字符图像URLget_character_subjects-具有个性的主题get_character_persons-配音演员和创作者collect_character-添加到收藏夹⚠️ 需要身份验证uncollect_character-从收藏夹中删除⚠️ 需要身份验证
人员(7个工具)
search_persons-搜索创建者/演员get_person_details-人员信息get_person_image-人物图像URLget_person_subjects-个人作品get_person_characters-关联字符collect_person-添加到收藏夹⚠️ 需要身份验证uncollect_person-从收藏夹中删除⚠️ 需要身份验证
用户(3个工具)
get_user_info-公共用户配置文件get_user_avatar-用户头像URLget_current_user-经过身份验证的用户信息⚠️ 需要身份验证
收藏(11个工具)
get_user_collections-用户的主题集合get_user_subject_collection-受试者采集状态update_subject_collection-更新受试者状态⚠️ 需要身份验证get_user_episode_collection-剧集观察名单⚠️ 需要身份验证update_episode_collection-批量更新剧集⚠️ 需要身份验证get_single_episode_collection-单集状态⚠️ 需要身份验证update_single_episode_collection-更新单集⚠️ 需要身份验证get_user_character_collections-人物系列get_user_character_collection-字符收集状态get_user_person_collections-个人收藏get_user_person_collection-人员收集状态
修订(8个工具)
get_person_revisions-人员编辑历史记录get_person_revision-单人编辑详细信息get_character_revisions-角色编辑历史get_character_revision-单字符编辑详细信息get_subject_revisions-主题编辑历史记录get_subject_revision-单主题编辑详细信息get_episode_revisions-剧集编辑历史get_episode_revision-单集编辑细节
指数(9种工具)
create_index-创建新索引⚠️ 需要身份验证get_index-索引详细信息update_index-更新索引信息⚠️ 需要身份验证get_index_subjects-索引中的主题add_subject_to_index-添加主题⚠️ 需要身份验证update_index_subject-更新主题信息⚠️ 需要身份验证remove_subject_from_index-删除主题⚠️ 需要身份验证collect_index-向集合添加索引⚠️ 需要身份验证uncollect_index-从集合中删除索引⚠️ 需要身份验证
工作流提示
为常见任务预先构建的多步骤工作流程:
- 搜索和摘要_动漫 -按关键字搜索动漫,获取AI摘要
- get_subject_full_info -获取全面的主题信息(细节、人物、人物、关系)
- find_voice_ator -搜索角色并识别配音演员
发展
添加新工具
- 确定适当的类别(主题、人物、人等)
- 将工具功能添加到中的相应文件中
src/tools/ - 在模块中注册工具
register()功能 - 用新的工具数量更新此README
测试
# Test imports
python -c "from src.config import BANGUMI_TOKEN; print('OK')"
python -c "from src.tools import subject_tools; print('OK')"
# Run the server
uv run main.py代码结构
依赖层次结构 (无循环进口):
- 级别0:
config.py,enums.py(无依赖关系) - 第一级:
utils/(取决于配置和菜单) - 第二级:
resources/,tools/,prompts/(取决于utils) - 第三级:
main.py(协调一切)
进口指南:
- 在内部使用相对进口
src/包装(例如。,from ..config import) - 从特定模块而非包级别导入
- 遵循依赖关系层次结构以避免循环导入
环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
BANGUMI_TOKEN | 否 | 用于身份验证操作和R18内容的Bangumi访问令牌 |
许可证
本项目建立在Bangumi API文件的基础上,并遵循其服务条款。
相关项目
- 班加罗尔。 -BangumiMCP的TypeScript版本
贡献
欢迎投稿!请随时提交问题或拉取请求。
______________________________________________________________________
中文
一个基于 Model Context Protocol (MCP) 的服务器,为 Bangumi电视台 API 提供程序化访问接口,使 Claude 等 AI 助手能够与海量的动画、漫画、音乐、游戏和真人影视数据进行交互。
功能特性
- 55 个 MCP 工具:完整覆盖 Bangumi API 端点
- 3 个工作流提示:预构建的多步骤工作流,用于常见任务
- 1 个资源:完整的 OpenAPI 规范文档
- 模块化架构:清晰、可维护的代码库,遵循 MCP 最佳实践
- 类型安全:完整的 Python 类型提示和枚举定义
- 异步支持:使用 httpx 的非阻塞 API 调用
快速开始
前置要求
- Python 3.10 或更高版本
- 紫外线 包管理器(推荐)或 pip
安装
# 克隆仓库
git clone https://github.com/Ukenn2112/BangumiMCP.git
cd BangumiMCP
# 创建并激活虚拟环境
uv venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# 安装依赖
uv pip install -e .Claude Desktop 配置
在 claude_desktop_config.json 中添加:
{
"mcpServers": {
"bangumi-tv": {
"command": "uv",
"args": [
"--directory",
"/path/to/BangumiMCP",
"run",
"main.py"
],
"env": {
"BANGUMI_TOKEN": "your_token_here"
}
}
}
}注意:BANGUMI_TOKEN 是可选的,但以下操作需要:
- 认证操作(收藏、个人数据)
- 访问 R18 内容
- 写操作(创建、更新、删除)
获取令牌:https://next.bgm.tv/demo/access-token
项目架构
BangumiMCP 采用模块化架构,便于维护和扩展:
BangumiMCP/
├── main.py # 服务器初始化(44 行)
├── src/
│ ├── config.py # 配置常量
│ ├── enums.py # API 枚举定义(8 种类型)
│ ├── utils/
│ │ ├── api_client.py # HTTP 客户端和错误处理
│ │ └── formatters.py # 数据格式化工具
│ ├── resources/
│ │ └── openapi_resource.py # OpenAPI 规范资源
│ ├── tools/ # 55 个 MCP 工具,按领域组织
│ │ ├── subject_tools.py # 条目和章节(10 个工具)
│ │ ├── character_tools.py # 角色(7 个工具)
│ │ ├── person_tools.py # 人物和公司(7 个工具)
│ │ ├── user_tools.py # 用户信息(3 个工具)
│ │ ├── collection_tools.py # 收藏(11 个工具)
│ │ ├── revision_tools.py # 编辑历史(8 个工具)
│ │ └── index_tools.py # 目录(9 个工具)
│ └── prompts/
│ └── workflow_prompts.py # 组合提示(3 个)
├── bangumi-tv-api.json # OpenAPI 3.0.3 规范
└── pyproject.toml # 项目元数据可用工具
条目和章节(10 个工具)
get_daily_broadcast- 每周放送时间表search_subjects- 全文搜索,支持过滤browse_subjects- 按分类浏览get_subject_details- 详细条目信息get_subject_image- 条目图片 URLget_subject_persons- 相关创作者/制作人员get_subject_characters- 相关角色get_subject_relations- 相关条目get_episodes- 章节列表get_episode_details- 章节信息
角色(7 个工具)
search_characters- 角色搜索get_character_details- 角色信息get_character_image- 角色图片 URLget_character_subjects- 角色出现的条目get_character_persons- 声优和创作者collect_character- 添加到收藏 ⚠️ 需要认证uncollect_character- 从收藏中移除 ⚠️ 需要认证
人物(7 个工具)
search_persons- 搜索创作者/演员get_person_details- 人物信息get_person_image- 人物图片 URLget_person_subjects- 人物参与的作品get_person_characters- 关联的角色collect_person- 添加到收藏 ⚠️ 需要认证uncollect_person- 从收藏中移除 ⚠️ 需要认证
用户(3 个工具)
get_user_info- 公开用户资料get_user_avatar- 用户头像 URLget_current_user- 当前认证用户信息 ⚠️ 需要认证
收藏(11 个工具)
get_user_collections- 用户的条目收藏get_user_subject_collection- 条目收藏状态update_subject_collection- 更新条目状态 ⚠️ 需要认证get_user_episode_collection- 章节观看列表 ⚠️ 需要认证update_episode_collection- 批量更新章节 ⚠️ 需要认证get_single_episode_collection- 单个章节状态 ⚠️ 需要认证update_single_episode_collection- 更新单个章节 ⚠️ 需要认证get_user_character_collections- 角色收藏get_user_character_collection- 角色收藏状态get_user_person_collections- 人物收藏get_user_person_collection- 人物收藏状态
修订历史(8 个工具)
get_person_revisions- 人物编辑历史get_person_revision- 单个人物编辑详情get_character_revisions- 角色编辑历史get_character_revision- 单个角色编辑详情get_subject_revisions- 条目编辑历史get_subject_revision- 单个条目编辑详情get_episode_revisions- 章节编辑历史get_episode_revision- 单个章节编辑详情
目录(9 个工具)
create_index- 创建新目录 ⚠️ 需要认证get_index- 目录详情update_index- 更新目录信息 ⚠️ 需要认证get_index_subjects- 目录中的条目add_subject_to_index- 添加条目 ⚠️ 需要认证update_index_subject- 更新条目信息 ⚠️ 需要认证remove_subject_from_index- 移除条目 ⚠️ 需要认证collect_index- 收藏目录 ⚠️ 需要认证uncollect_index- 取消收藏目录 ⚠️ 需要认证
工作流提示
预构建的多步骤工作流,用于常见任务:
- 搜索和摘要_动漫 - 按关键字搜索动画并获取 AI 摘要
- get_subject_full_info - 获取全面的条目信息(详情、人物、角色、关联)
- find_voice_ator - 搜索角色并识别声优
开发
添加新工具
- 确定合适的类别(条目、角色、人物等)
- 将工具函数添加到
src/tools/中相应的文件 - 在模块的
register()函数中注册工具 - 更新此 README 中的工具数量
测试
# 测试导入
python -c "from src.config import BANGUMI_TOKEN; print('OK')"
python -c "from src.tools import subject_tools; print('OK')"
# 运行服务器
uv run main.py代码结构
依赖层次结构(无循环导入):
- 级别0:
config.py,enums.py(无依赖) - 第一级:
utils/(依赖 config 和 enums) - 第二级:
resources/,tools/,prompts/(依赖 utils) - 第三级:
main.py(协调所有模块)
导入指南:
- 在
src/包内使用相对导入(例如from ..config import) - 从特定模块导入,而不是包级别
- 遵循依赖层次结构以避免循环导入
环境变量
| 变量 | 必填 | 说明 |
|---|---|---|
BANGUMI_TOKEN | 否 | Bangumi 访问令牌,用于认证操作和访问 R18 内容 |
许可证
此项目基于 Bangumi API 文档构建,并遵循其服务条款。
相关项目
- 班加罗尔。 - BangumiMCP 的 TypeScript 版本
贡献
欢迎贡献!请随时提交问题或拉取请求。
______________________________________________________________________
致谢
此项目基于 API班古米 文档构建。

