bilibili-mcp-python 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,5 @@
1
+ # Bilibili Credential(可选,用于需要登录的操作)
2
+ BILI_SESSDATA=
3
+ BILI_JCT=
4
+ BILI_BUVID3=
5
+
@@ -0,0 +1,38 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ # 当推送标签时触发(如 v0.1.0)
5
+ push:
6
+ tags:
7
+ - 'v*'
8
+
9
+ # 或者手动触发
10
+ workflow_dispatch:
11
+
12
+ jobs:
13
+ publish:
14
+ runs-on: ubuntu-latest
15
+ permissions:
16
+ contents: read
17
+ id-token: write # 用于 OIDC 认证
18
+
19
+ steps:
20
+ - name: Checkout code
21
+ uses: actions/checkout@v4
22
+
23
+ - name: Set up Python
24
+ uses: actions/setup-python@v5
25
+ with:
26
+ python-version: '3.12'
27
+
28
+ - name: Install build tools
29
+ run: |
30
+ python -m pip install --upgrade pip
31
+ pip install build
32
+
33
+ - name: Build package
34
+ run: python -m build
35
+
36
+ - name: Publish to PyPI
37
+ uses: pypa/gh-action-pypi-publish@release/v1
38
+ # 注意:不需要配置密码,使用 OIDC 可信发布
@@ -0,0 +1,17 @@
1
+ # 排除敏感文件和开发环境文件
2
+ exclude .env
3
+ exclude .env.example
4
+ exclude .gitignore
5
+
6
+ # 排除开发相关目录
7
+ recursive-exclude .venv *
8
+ recursive-exclude .git *
9
+ recursive-exclude .idea *
10
+ recursive-exclude .vscode *
11
+ recursive-exclude .claude *
12
+ recursive-exclude tests *
13
+ recursive-exclude __pycache__ *
14
+
15
+ # 排除其他不需要的文件
16
+ exclude *.log
17
+ exclude uv.lock
@@ -0,0 +1,414 @@
1
+ Metadata-Version: 2.4
2
+ Name: bilibili-mcp-python
3
+ Version: 0.1.0
4
+ Summary: MCP server for Bilibili API
5
+ Author-email: Yungaoluo <1925001814@qq.com>
6
+ License: MIT
7
+ Keywords: api,bilibili,mcp,model-context-protocol,video
8
+ Classifier: Development Status :: 4 - Beta
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Topic :: Internet :: WWW/HTTP
16
+ Requires-Python: >=3.10
17
+ Requires-Dist: bilibili-api-python>=16.2.0
18
+ Requires-Dist: mcp>=1.6.0
19
+ Requires-Dist: python-dotenv>=1.0.0
20
+ Description-Content-Type: text/markdown
21
+
22
+ # Bilibili MCP Server
23
+
24
+ 基于 `bilibili-api-python` 的 MCP (Model Context Protocol) 服务器,提供完整的 Bilibili API 工具调用能力。
25
+
26
+ ## 特性
27
+
28
+ - **22个实用工具**,覆盖视频、用户、搜索、评论、排行榜、消息等核心功能
29
+ - 使用 **stdio** 传输方式,与 Claude Desktop 无缝集成
30
+ - 支持环境变量配置登录凭证,安全便捷
31
+ - 统一的响应格式,易于处理
32
+ - 完整的类型注解和参数验证
33
+
34
+ ---
35
+
36
+ ## 安装
37
+
38
+ ### 方式一:从 PyPI 安装(推荐)
39
+
40
+ ```bash
41
+ # 使用 pip 安装
42
+ pip install bilibili_mcp_python
43
+
44
+ # 或使用 uv 安装
45
+ uv pip install bilibili_mcp_python
46
+ ```
47
+
48
+ ### 方式二:从源码运行
49
+
50
+ ```bash
51
+ # 克隆仓库
52
+ git clone https://github.com/YunGaoluo/bilibili-mcp-python.git
53
+ cd bilibili-mcp
54
+
55
+ # 使用 uv 安装依赖(推荐)
56
+ uv sync
57
+ source .venv/bin/activate # Linux/Mac
58
+ # 或
59
+ .venv\Scripts\activate # Windows
60
+
61
+ # 或使用 pip 安装
62
+ pip install -e .
63
+ ```
64
+
65
+ ---
66
+
67
+ ## 配置
68
+
69
+ ### 环境变量
70
+
71
+ 复制 `.env.example` 为 `.env` 并填写:
72
+
73
+ ```bash
74
+ # Bilibili 登录凭证(可选,用于需要登录的操作)
75
+ BILI_SESSDATA=your_sessdata
76
+ BILI_JCT=your_bili_jct
77
+ BILI_BUVID3=your_buvid3
78
+ ```
79
+
80
+ **获取登录凭证:**
81
+ 1. 登录 Bilibili 网页版
82
+ 2. 打开浏览器开发者工具 (F12) → Application/应用 → Cookies
83
+ 3. 复制 `SESSDATA`, `bili_jct`, `buvid3` 的值
84
+
85
+ ### Claude Desktop 配置
86
+
87
+ 在 Claude Desktop 配置文件 `claude_desktop_config.json` 中添加:
88
+
89
+ #### PyPI 安装方式的配置
90
+
91
+ ```json
92
+ {
93
+ "mcpServers": {
94
+ "bilibili": {
95
+ "command": "bilibili_mcp_python",
96
+ "env": {
97
+ "BILI_SESSDATA": "your_sessdata",
98
+ "BILI_JCT": "your_bili_jct",
99
+ "BILI_BUVID3": "your_buvid3"
100
+ }
101
+ }
102
+ }
103
+ }
104
+ ```
105
+
106
+ 如果 `bilibili-mcp` 命令不在 PATH 中,可以使用完整路径:
107
+
108
+ ```json
109
+ {
110
+ "mcpServers": {
111
+ "bilibili": {
112
+ "command": "python",
113
+ "args": ["-m", "bilibili_mcp_python.server"],
114
+ "env": {
115
+ "BILI_SESSDATA": "your_sessdata",
116
+ "BILI_JCT": "your_bili_jct",
117
+ "BILI_BUVID3": "your_buvid3"
118
+ }
119
+ }
120
+ }
121
+ }
122
+ ```
123
+
124
+ #### 源码运行方式的配置
125
+
126
+ ```json
127
+ {
128
+ "mcpServers": {
129
+ "bilibili": {
130
+ "command": "uv",
131
+ "args": ["run", "bilibili_mcp_python"],
132
+ "cwd": "/path/to/bilibili_mcp_python",
133
+ "env": {
134
+ "BILI_SESSDATA": "your_sessdata",
135
+ "BILI_JCT": "your_bili_jct",
136
+ "BILI_BUVID3": "your_buvid3"
137
+ }
138
+ }
139
+ }
140
+ }
141
+ ```
142
+
143
+ 或使用 Python 直接运行:
144
+
145
+ ```json
146
+ {
147
+ "mcpServers": {
148
+ "bilibili": {
149
+ "command": "python",
150
+ "args": ["-m", "bilibili_mcp_python.server"],
151
+ "cwd": "/path/to/bilibili_mcp_python",
152
+ "env": {
153
+ "BILI_SESSDATA": "your_sessdata",
154
+ "BILI_JCT": "your_bili_jct",
155
+ "BILI_BUVID3": "your_buvid3"
156
+ }
157
+ }
158
+ }
159
+ }
160
+ ```
161
+
162
+ ---
163
+
164
+ ## 工具详解
165
+
166
+ ### 视频模块(Video)
167
+
168
+ 视频相关操作,包含信息获取、互动、弹幕等功能。
169
+
170
+ | 工具名 | 功能 | 关键参数 | 需登录 |
171
+ |--------|------|----------|--------|
172
+ | `bilibili_video_get_info` | 获取视频完整信息 | `bvid`: BV号 | 否 |
173
+ | `bilibili_video_interact` | 点赞/投币/收藏/三连 | `bvid`, `action`, `cancel` | **是** |
174
+ | `bilibili_video_get_download_info` | 获取下载链接和清晰度 | `bvid`, `page_num` | 否 |
175
+ | `bilibili_video_get_danmaku` | 获取弹幕列表 | `bvid`, `page_num`, `from_seg` | 否 |
176
+ | `bilibili_video_send_danmaku` | 发送弹幕 | `bvid`, `message`, `progress` | **是** |
177
+ | `bilibili_video_get_ai_conclusion` | 获取AI视频总结 | `bvid` | **是** |
178
+
179
+ **使用示例:**
180
+ ```python
181
+ # 获取视频信息
182
+ bilibili_video_get_info(bvid="BV1xx411c7mD")
183
+
184
+ # 给视频三连
185
+ bilibili_video_interact(bvid="BV1xx411c7mD", action="triple")
186
+
187
+ # 发送弹幕(视频第10秒处)
188
+ bilibili_video_send_danmaku(
189
+ bvid="BV1xx411c7mD",
190
+ message="精彩!",
191
+ progress=10000, # 毫秒
192
+ color="ff0000"
193
+ )
194
+ ```
195
+
196
+ ---
197
+
198
+ ### 用户模块(User)
199
+
200
+ 用户信息查询和关系管理。
201
+
202
+ | 工具名 | 功能 | 关键参数 | 需登录 |
203
+ |--------|------|----------|--------|
204
+ | `bilibili_user_get_info` | 获取用户完整信息 | `uid`: 用户UID | 否 |
205
+ | `bilibili_user_get_contents` | 获取用户发布的内容 | `uid`, `content_type` | 否 |
206
+ | `bilibili_user_modify_relation` | 关注/取关/拉黑/移除粉丝 | `uid`, `action` | **是** |
207
+ | `bilibili_user_get_followings` | 获取关注列表 | `uid`, `page_num` | **是** |
208
+ | `bilibili_user_get_followers` | 获取粉丝列表 | `uid`, `page_num` | **是** |
209
+
210
+ **`content_type` 类型说明:**
211
+ - `video` - 视频(支持关键词搜索)
212
+ - `article` - 专栏文章
213
+ - `album` - 相簿
214
+ - `bangumi` - 追番列表
215
+
216
+ **使用示例:**
217
+ ```python
218
+ # 获取UP主信息
219
+ bilibili_user_get_info(uid=208259)
220
+
221
+ # 获取用户的所有视频
222
+ bilibili_user_get_contents(uid=208259, content_type="video")
223
+
224
+ # 关注用户
225
+ bilibili_user_modify_relation(uid=208259, action="follow")
226
+ ```
227
+
228
+ ---
229
+
230
+ ### 搜索模块(Search)
231
+
232
+ 全网内容搜索和热门发现。
233
+
234
+ | 工具名 | 功能 | 关键参数 | 需登录 |
235
+ |--------|------|----------|--------|
236
+ | `bilibili_search` | 统一搜索 | `keyword`, `search_type` | 否 |
237
+ | `bilibili_get_hot_search` | 获取热门搜索词 | 无 | 否 |
238
+
239
+ **`search_type` 类型说明:**
240
+ - `all` - 综合搜索
241
+ - `video` - 视频
242
+ - `user` - 用户
243
+ - `article` - 专栏
244
+ - `live` - 直播
245
+
246
+ **使用示例:**
247
+ ```python
248
+ # 搜索视频
249
+ bilibili_search(keyword="Python教程", search_type="video")
250
+
251
+ # 搜索用户
252
+ bilibili_search(keyword="老番茄", search_type="user")
253
+
254
+ # 获取热搜榜
255
+ bilibili_get_hot_search()
256
+ ```
257
+
258
+ ---
259
+
260
+ ### 评论模块(Comment)
261
+
262
+ 视频、动态、专栏的评论管理。
263
+
264
+ | 工具名 | 功能 | 关键参数 | 需登录 |
265
+ |--------|------|----------|--------|
266
+ | `bilibili_comment_get` | 获取评论列表(懒加载) | `oid`, `type_`, `mode`, `offset` | 否 |
267
+ | `bilibili_comment_send` | 发送评论/回复 | `oid`, `text`, `root` | **是** |
268
+ | `bilibili_comment_operate` | 点赞/点踩/删除/获取子评论 | `oid`, `rpid`, `action` | **是** |
269
+
270
+ **`type_` 类型说明:**
271
+ - `video` - 视频(oid为aid)
272
+ - `dynamic` - 动态(oid为动态id)
273
+ - `article` - 专栏(oid为cv号)
274
+
275
+ **使用示例:**
276
+ ```python
277
+ # 获取视频评论(首次)
278
+ bilibili_comment_get(oid=170001, type_="video", mode="main")
279
+
280
+ # 回复评论(root为评论ID)
281
+ bilibili_comment_send(
282
+ oid=170001,
283
+ type_="video",
284
+ text="说得好!",
285
+ root=12345678
286
+ )
287
+
288
+ # 点赞评论
289
+ bilibili_comment_operate(oid=170001, rpid=12345678, action="like")
290
+ ```
291
+
292
+ ---
293
+
294
+ ### 排行榜模块(Rank)
295
+
296
+ 各类排行榜和热门视频获取。
297
+
298
+ | 工具名 | 功能 | 关键参数 | 需登录 |
299
+ |--------|------|----------|--------|
300
+ | `bilibili_get_rank` | 获取分区排行榜 | `rank_type`, `day` | 否 |
301
+ | `bilibili_get_hot` | 获取热门视频 | `page`, `page_size` | 否 |
302
+
303
+ **`rank_type` 排行榜类型:**
304
+
305
+ | 类型值 | 说明 | 类型值 | 说明 |
306
+ |--------|------|--------|------|
307
+ | `all` | 全站榜 | `game` | 游戏 |
308
+ | `bangumi` | 番剧 | `music` | 音乐 |
309
+ | `movie` | 电影 | `douga` | 动画 |
310
+ | `documentary` | 纪录片 | `ent` | 娱乐 |
311
+ | `guochuang` | 国创 | `life` | 生活 |
312
+ | `technology` | 科技数码 | `food` | 美食 |
313
+ | `knowledge` | 知识 | `sports` | 运动 |
314
+ | `dance` | 舞蹈 | `kichiku` | 鬼畜 |
315
+ | `original` | 原创 | `rookie` | 新人 |
316
+ | ... | 还有更多 | | |
317
+
318
+ **使用示例:**
319
+ ```python
320
+ # 获取全站排行榜
321
+ bilibili_get_rank(rank_type="all")
322
+
323
+ # 获取游戏区三日榜
324
+ bilibili_get_rank(rank_type="game", day=3)
325
+
326
+ # 获取热门视频
327
+ bilibili_get_hot(page=1, page_size=20)
328
+ ```
329
+
330
+ ---
331
+
332
+ ### 消息会话模块(Session)
333
+
334
+ 私信、互动消息和系统通知管理。
335
+
336
+ | 工具名 | 功能 | 关键参数 | 需登录 |
337
+ |--------|------|----------|--------|
338
+ | `bilibili_session_list` | 获取会话列表/聊天记录 | `talker_id`, `session_type` | **是** |
339
+ | `bilibili_session_send` | 发送私信 | `receiver_id`, `content` | **是** |
340
+ | `bilibili_session_interactions` | 获取互动消息 | `interaction_type` | **是** |
341
+ | `bilibili_session_notifications` | 获取通知/未读统计 | `notification_type` | **是** |
342
+
343
+ **`interaction_type` 互动类型:**
344
+ - `replies` - 收到的回复
345
+ - `likes` - 收到的赞
346
+ - `at` - @我的消息
347
+
348
+ **`notification_type` 通知类型:**
349
+ - `unread` - 未读消息统计
350
+ - `system` - 系统消息
351
+ - `settings` - 消息设置
352
+
353
+ **使用示例:**
354
+ ```python
355
+ # 获取会话列表
356
+ bilibili_session_list()
357
+
358
+ # 获取与某用户的聊天记录
359
+ bilibili_session_list(talker_id=208259)
360
+
361
+ # 发送私信
362
+ bilibili_session_send(receiver_id=208259, content="你好!")
363
+
364
+ # 获取收到的赞
365
+ bilibili_session_interactions(interaction_type="likes")
366
+
367
+ # 获取未读消息数
368
+ bilibili_session_notifications(notification_type="unread")
369
+ ```
370
+
371
+ ---
372
+
373
+ ## 响应格式
374
+
375
+ 所有工具返回统一的 JSON 格式:
376
+
377
+ ```json
378
+ {
379
+ "success": true,
380
+ "code": 0,
381
+ "message": "ok",
382
+ "data": { ... }
383
+ }
384
+ ```
385
+
386
+ | 字段 | 类型 | 说明 |
387
+ |------|------|------|
388
+ | `success` | boolean | 是否成功 |
389
+ | `code` | int | 状态码,0表示成功 |
390
+ | `message` | string | 状态描述或错误信息 |
391
+ | `data` | any | 实际返回数据 |
392
+
393
+ ---
394
+
395
+ ## 工具权限速查
396
+
397
+ ### 无需登录(只读操作)
398
+ - 视频信息、弹幕、下载链接
399
+ - 用户信息、用户公开内容
400
+ - 搜索、热搜、排行榜、热门视频
401
+ - 评论列表
402
+
403
+ ### 需要登录(写入操作)
404
+ - 视频互动(点赞/投币/收藏/三连)
405
+ - 发送弹幕、获取AI总结
406
+ - 关注/取关/拉黑等用户关系操作
407
+ - 发送评论、评论互动
408
+ - 所有消息会话相关操作
409
+
410
+ ---
411
+
412
+ ## License
413
+
414
+ GPL-3.0