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 文件。
Metadata
Release files for bilibili-game-review-analyzer 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bilibili_game_review_analyzer-0.1.3.tar.gz | 5.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bilibili_game_review_analyzer-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.1 kB
Release files / bilibili_game_review_analyzer-0.1.3.tar.gz
| Download URL | bilibili_game_review_analyzer-0.1.3.tar.gz |
|---|---|
| Size | 5.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ceaf9b69854cc33a1254ac493edf8139e8a5d1605dc63934f245a2a2ae36b396
|
|
BLAKE2b-256 checksum How to use checksums |
a69b8c78e5b8cfb75dd2ece30cfbde213cbe48da26543774bbd2d77a9e220374
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.4
|
Release files / bilibili_game_review_analyzer-0.1.3-py3-none-any.whl
| Download URL | bilibili_game_review_analyzer-0.1.3-py3-none-any.whl |
|---|---|
| Size | 9.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
06294b1bf93d0329dbfab72984a356c0a7ba1163b04f9e48fe9014b6c2c3ba7d
|
|
BLAKE2b-256 checksum How to use checksums |
a3019d62e78610ba23d1e6bc929166bf8b72e59cb5261ef2f842128f4bf90c19
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.4
|