Bilibili Game Review Analyzer
基于 FastMCP 框架的 B 站视频分析服务,支持视频搜索、播放地址获取及 AI 内容概括。
功能特性
本项目提供以下三个 MCP 工具:
- get_video_results — 根据关键词搜索相关视频,返回视频标题和 BV 号
- extract_videos_url — 根据关键词获取视频的播放地址(含 cid)
- get_video_summary_tool — 根据关键词搜索视频,并使用大语言模型概括视频内容
技术栈
- Python 3.14+
- FastMCP — MCP 服务器框架
- bilibili-api-python — B 站 API 客户端
- LangChain + Qwen — 视频内容智能概括
环境要求
- Python >= 3.14
- uv 包管理器
项目结构
bilibili-game-review-analyzer/
├── pyproject.toml # 项目配置与依赖管理
├── uv.lock # 依赖锁定文件(自动生成)
├── .env.example # 环境变量模板(可复制为 .env)
├── .gitignore # Git 忽略文件
├── README.md # 项目文档
│
├── src/
│ └── bilibili_game_review_analyzer/ # 包根目录
│ ├── __init__.py # 包初始化,暴露公共 API
│ ├── __main__.py # 支持 python -m 直接运行
│ ├── server.py # MCP 服务器核心逻辑与工具注册
│ └── bilibili_client.py # B 站 API 客户端封装
│
└── tests/ # 测试目录(可选)
└── test_bilibili_client.py
安装步骤
- 克隆项目
git clone <repository-url>
cd bilibili-game-review-analyzer
- 使用 uv 安装依赖
uv sync
环境变量配置
在项目根目录创建 .env 文件,配置以下环境变量:
API_KEY=your_api_key_here
BASE_URL=your_api_base_url_here
MODEL=your_model_name_here
| 变量名 | 说明 |
|---|---|
| API_KEY | Qwen 模型的 API 密钥 |
| BASE_URL | Qwen 模型的 API 基础地址 |
| MODEL | 模型名称(如 qwen-vl-plus) |
建议将 .env 添加到 .gitignore 中,避免敏感信息泄露。可参考 .env.example 模板文件。
使用方式
方式一:直接运行(开发模式)
uv run python -m bilibili_game_review_analyzer
方式二:通过命令行入口运行
安装后可通过注册的脚本命令启动:
uv run bilibili-game-review
方式三:通过 MCP 客户端集成
服务器默认使用 stdio 传输协议运行,可与支持 MCP 标准的客户端(如 Claude Desktop、Cursor、Continue 等)集成。
本地开发测试配置(使用本地代码):
{
"mcpServers": {
"bilibili_game_review_analyzer": {
"command": "uvx",
"args": [
"--from",
"D:/path/to/bilibili-game-review-analyzer",
"bilibili_game_review_analyzer"
],
"env": {
"API_KEY": "your_api_key",
"BASE_URL": "your_base_url",
"MODEL": "your_model"
}
}
}
}
线上部署配置(发布到 PyPI 后):
{
"mcpServers": {
"bilibili_game_review_analyzer": {
"command": "uvx",
"args": ["bilibili_game_review_analyzer"],
"env": {
"API_KEY": "your_api_key",
"BASE_URL": "your_base_url",
"MODEL": "your_model"
}
}
}
}
工具说明
get_video_results
根据关键词搜索相关视频,返回视频标题和 BV 号。
参数:
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| keyword | str | ✅ | — | 搜索关键词 |
| limit | int | ❌ | 1 | 返回结果数量限制 |
返回:视频列表 List[Dict],每个元素包含 title(标题)和 bvid(BV 号)
extract_videos_url
根据关键词获取视频的播放地址。
参数:
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| keyword | str | ✅ | — | 视频关键词 |
| limit | int | ❌ | 1 | 最大返回视频数量 |
返回:视频信息列表 List[Dict],每个元素包含 title、bvid、cid、video_url(播放地址)
get_video_summary_tool
根据关键词搜索视频,并使用大语言模型概括视频内容。
参数:
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| keyword | str | ✅ | — | 视频关键词 |
| limit | int | ❌ | 1 | 最大返回视频内容数量 |
返回:概括内容列表 List[str]
配置说明
项目通过 pyproject.toml 集中管理所有配置:
[project]
name = "bilibili_game_review_analyzer"
version = "0.1.0"
description = "B站视频搜索与总结 MCP 服务器"
requires-python = ">=3.10"
dependencies = [
"mcp>=1.0.0",
"bilibili-api-python>=16.0.0",
"python-dotenv>=1.0.0",
"langchain-qwq>=0.1.0",
]
[project.scripts]
bilibili-game-review = "bilibili_game_review_analyzer:main"
开发与测试
运行测试(如有):
uv run pytest
代码格式化与检查(建议使用 ruff):
uv run ruff check .
uv run ruff format .
注意事项
- 请确保环境变量正确配置,否则 LLM 调用将失败。
- B 站 API 存在访问频率限制,高频请求可能触发风控。
- 视频播放地址存在有效期,获取后请及时使用。
免责声明
- 本项目仅供个人学习研究使用,请勿用于商业用途。
- 本项目非 B 站官方产品,与哔哩哔哩公司无任何关联。
- 本项目使用的第三方库 bilibili-api-python 为开源项目,非 B 站官方提供的 API。
- 通过本项目获取的视频内容版权归原作者所有,未经授权不得转载或商用。
- 使用本项目时请严格遵守 B 站用户协议及相关法律法规,使用者需自行承担因使用本项目而产生的一切风险和责任。
- 本项目不对第三方库的合法性、稳定性及安全性做任何担保。
许可证
本项目使用 MIT 许可证,详见 LICENSE 文件。
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bilibili_game_review_analyzer-0.1.3.tar.gz.
File metadata
- Download URL: bilibili_game_review_analyzer-0.1.3.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ceaf9b69854cc33a1254ac493edf8139e8a5d1605dc63934f245a2a2ae36b396
|
|
| MD5 |
e0af9a0593bb33a024601099f73a9551
|
|
| BLAKE2b-256 |
a69b8c78e5b8cfb75dd2ece30cfbde213cbe48da26543774bbd2d77a9e220374
|
File details
Details for the file bilibili_game_review_analyzer-0.1.3-py3-none-any.whl.
File metadata
- Download URL: bilibili_game_review_analyzer-0.1.3-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06294b1bf93d0329dbfab72984a356c0a7ba1163b04f9e48fe9014b6c2c3ba7d
|
|
| MD5 |
32db84c52539efed70256f55db2b9ad7
|
|
| BLAKE2b-256 |
a3019d62e78610ba23d1e6bc929166bf8b72e59cb5261ef2f842128f4bf90c19
|