@xzxzzx/bilibili-mcp 1.4.2 → 1.4.4
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.
- package/README.md +79 -18
- package/README_EN.md +85 -15
- package/dist/bilibili/comments.d.ts.map +1 -1
- package/dist/bilibili/comments.js +2 -1
- package/dist/bilibili/comments.js.map +1 -1
- package/dist/bilibili/subtitle.d.ts.map +1 -1
- package/dist/bilibili/subtitle.js +2 -1
- package/dist/bilibili/subtitle.js.map +1 -1
- package/dist/cli.js +35 -19
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +2 -1
- package/dist/server.js.map +1 -1
- package/dist/utils/credentials.d.ts.map +1 -1
- package/dist/utils/credentials.js +8 -2
- package/dist/utils/credentials.js.map +1 -1
- package/dist/utils/logger.d.ts +1 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +38 -3
- package/dist/utils/logger.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1133,21 +1133,27 @@ nanobot 的 MCP 配置兼容 Claude Desktop / Cursor 风格;也支持远程 MC
|
|
|
1133
1133
|
|
|
1134
1134
|
## ⚙️ 凭证配置
|
|
1135
1135
|
|
|
1136
|
-
|
|
1136
|
+
如果你使用上方“用 agent 工具帮你安装”的提示词,agent 会引导你完成本节步骤;通常不需要手动阅读完整配置。这里用于说明 Cookie 保存位置、安全边界,以及 Docker、本地开发等手动场景。为了稳定获取字幕、转录和评论,建议配置 Bilibili Cookie;公开视频元数据可能无需 Cookie。
|
|
1137
1137
|
|
|
1138
|
-
###
|
|
1138
|
+
### 推荐方式:让 agent 引导你配置
|
|
1139
|
+
|
|
1140
|
+
```bash
|
|
1141
|
+
npx -y @xzxzzx/bilibili-mcp config
|
|
1142
|
+
npx -y @xzxzzx/bilibili-mcp check
|
|
1143
|
+
```
|
|
1144
|
+
|
|
1145
|
+
如果你使用上方“用 agent 工具帮你安装”的提示词,agent 会在添加 MCP server 后引导你运行这两个命令。`config` 输入不会在终端回显,会把 Cookie 保存到本机凭证配置;MCP server 启动后会自动读取,不会写入 MCP 客户端配置或仓库。
|
|
1146
|
+
|
|
1147
|
+
如果已经全局安装,也可以运行:
|
|
1139
1148
|
|
|
1140
1149
|
```bash
|
|
1141
|
-
npm install -g @xzxzzx/bilibili-mcp
|
|
1142
1150
|
bilibili-mcp config
|
|
1143
1151
|
bilibili-mcp check
|
|
1144
1152
|
```
|
|
1145
1153
|
|
|
1146
|
-
CLI 会把凭证保存在本地配置目录,不会写入仓库。
|
|
1147
|
-
|
|
1148
1154
|
### 环境变量方式
|
|
1149
1155
|
|
|
1150
|
-
适合 Docker
|
|
1156
|
+
适合 Docker、本地开发或你明确知道当前 MCP server 运行环境的情况。不要把真实 Cookie 写进可共享的 MCP 客户端配置文件。
|
|
1151
1157
|
|
|
1152
1158
|
| 变量名 | 说明 |
|
|
1153
1159
|
|---|---|
|
|
@@ -1186,11 +1192,43 @@ BILIBILI_DEDEUSERID=<your_dedeuserid>
|
|
|
1186
1192
|
| 只想拿完整转录文本 | `get_video_transcript` | 纯字幕文本、语言、数据来源 |
|
|
1187
1193
|
| 想查看标题、作者、播放量等结构化信息 | `get_video_metadata` | 标题、作者、时长、发布时间、标签、统计数据 |
|
|
1188
1194
|
| 想看观众反馈和热门评论 | `get_video_comments` | 热门评论、时间戳评论、可选回复 |
|
|
1195
|
+
| 让 agent 引导用户配置 Cookie | `get_credential_setup_instructions` | 安全配置步骤、推荐命令、注意事项 |
|
|
1196
|
+
| 检查 Cookie 是否已配置/登录 | `check_bilibili_credentials` | configured、source、logged_in、next_steps |
|
|
1189
1197
|
|
|
1190
1198
|
## 💡 工具调用示例
|
|
1191
1199
|
|
|
1192
1200
|
> AI 客户端会自动将你的自然语言意图转换为对应的 JSON 调用。
|
|
1193
1201
|
|
|
1202
|
+
### `get_credential_setup_instructions`
|
|
1203
|
+
|
|
1204
|
+
**适合**:agent 安装 MCP server 后,引导用户完成 Cookie 配置。
|
|
1205
|
+
|
|
1206
|
+
请求示例:
|
|
1207
|
+
|
|
1208
|
+
```json
|
|
1209
|
+
{
|
|
1210
|
+
"name": "get_credential_setup_instructions",
|
|
1211
|
+
"arguments": {}
|
|
1212
|
+
}
|
|
1213
|
+
```
|
|
1214
|
+
|
|
1215
|
+
返回内容:推荐配置命令、全局安装命令、所需 Cookie 字段和安全提醒;不会返回任何 Cookie 值。
|
|
1216
|
+
|
|
1217
|
+
### `check_bilibili_credentials`
|
|
1218
|
+
|
|
1219
|
+
**适合**:检查当前环境是否已配置 Cookie,以及是否处于登录状态。
|
|
1220
|
+
|
|
1221
|
+
请求示例:
|
|
1222
|
+
|
|
1223
|
+
```json
|
|
1224
|
+
{
|
|
1225
|
+
"name": "check_bilibili_credentials",
|
|
1226
|
+
"arguments": {}
|
|
1227
|
+
}
|
|
1228
|
+
```
|
|
1229
|
+
|
|
1230
|
+
返回内容:`configured`、`source`(`env` / `global_config` / `none`)、`logged_in` 和 `next_steps`;不会返回任何 Cookie 值。
|
|
1231
|
+
|
|
1194
1232
|
### `get_video_transcript`
|
|
1195
1233
|
|
|
1196
1234
|
**适合**:需要把视频内容交给 AI 做摘要、笔记、问答或知识整理。
|
|
@@ -1276,10 +1314,12 @@ BILIBILI_DEDEUSERID=<your_dedeuserid>
|
|
|
1276
1314
|
|
|
1277
1315
|
## 🛡️ API 限流机制
|
|
1278
1316
|
|
|
1279
|
-
|
|
1317
|
+
为降低触发 Bilibili 风控和接口限流的概率,已内置以下请求控制策略:
|
|
1280
1318
|
|
|
1281
|
-
-
|
|
1282
|
-
-
|
|
1319
|
+
- **请求启动间隔**:默认 500ms(0.5 秒),可通过 `BILIBILI_RATE_LIMIT_MS` 调整。
|
|
1320
|
+
- **执行方式**:对 API 请求启动做节流,避免瞬时大并发;适合本地单用户 MCP 使用。
|
|
1321
|
+
- **重试策略**:对 408、429、5xx、网络错误和超时进行最多 3 次指数退避重试。
|
|
1322
|
+
- **超时控制**:默认 10 秒,可通过 `BILIBILI_REQUEST_TIMEOUT_MS` 调整。
|
|
1283
1323
|
|
|
1284
1324
|
---
|
|
1285
1325
|
|
|
@@ -1293,11 +1333,31 @@ cd bilibili-mcp
|
|
|
1293
1333
|
# 2. 安装依赖包
|
|
1294
1334
|
npm install
|
|
1295
1335
|
|
|
1296
|
-
# 3.
|
|
1336
|
+
# 3. 运行测试
|
|
1337
|
+
npm test
|
|
1338
|
+
|
|
1339
|
+
# 4. 编译 TypeScript
|
|
1340
|
+
npm run build
|
|
1341
|
+
|
|
1342
|
+
# 5. 启动监听与实时编译
|
|
1297
1343
|
npm run watch
|
|
1298
1344
|
```
|
|
1299
1345
|
|
|
1300
|
-
|
|
1346
|
+
常用命令:
|
|
1347
|
+
|
|
1348
|
+
| 命令 | 用途 |
|
|
1349
|
+
|---|---|
|
|
1350
|
+
| `npm run build` | 编译 TypeScript 到 `dist/` |
|
|
1351
|
+
| `npm test` | 运行 Vitest 单元测试 |
|
|
1352
|
+
| `npm run watch` | 开发时持续编译 |
|
|
1353
|
+
| `npm start` | 运行已编译的 stdio MCP server |
|
|
1354
|
+
| `npm pack --dry-run` | 检查 npm 包会包含哪些文件 |
|
|
1355
|
+
|
|
1356
|
+
本地调试说明:
|
|
1357
|
+
|
|
1358
|
+
- MCP server 的入口是 `dist/index.js`,CLI 入口是 `dist/cli.js`;修改源码后先运行 `npm run build`。
|
|
1359
|
+
- 启动 stdio MCP server 后,`stdout` 必须保留给 MCP 协议数据;调试日志和错误信息应写到 `stderr`,因此本项目使用 `console.error` 输出运行日志。
|
|
1360
|
+
- 不要在测试、日志、示例或提交内容中写入真实 Cookie。需要验证凭证时,使用 `npx -y @xzxzzx/bilibili-mcp check` 或本地环境变量。
|
|
1301
1361
|
|
|
1302
1362
|
---
|
|
1303
1363
|
|
|
@@ -1305,14 +1365,15 @@ npm run watch
|
|
|
1305
1365
|
|
|
1306
1366
|
> **⚠️ 重要:使用本工具即代表您同意以下条款**
|
|
1307
1367
|
|
|
1308
|
-
-
|
|
1309
|
-
-
|
|
1310
|
-
-
|
|
1311
|
-
-
|
|
1368
|
+
- **非官方项目**:Bilibili(哔哩哔哩)是哔哩哔哩公司的注册商标。本项目是第三方开源辅助工具,不隶属于 Bilibili,也不代表 Bilibili 官方。
|
|
1369
|
+
- **使用边界**:本项目仅供个人学习、辅助阅读和内容理解使用。请遵守 Bilibili 用户协议、robots/接口访问规则和当地法律法规;不要用于商业剥削、大规模抓取、绕过权限或其他滥用场景。
|
|
1370
|
+
- **账号风险**:所有请求均由用户本机发起。高频调用、异常访问模式、Cookie 泄露或账号自身状态可能触发风控、限流或账号异常;相关后果由使用者自行承担。
|
|
1371
|
+
- **Cookie 安全**:不要把真实 Cookie 写入 MCP 客户端配置、公开聊天、Issue、PR、README、日志或测试文件。建议使用本项目的本机凭证配置、运行环境变量或本地 `.env` 管理 Cookie;Cookie 泄露后应立即在 Bilibili 账号侧失效旧登录状态。
|
|
1372
|
+
- **隐私说明**:本项目不会把 Cookie 上传到除 Bilibili 官方接口以外的第三方服务。凭证仅在本机按用户选择的方式保存或读取;当前本地配置文件不承诺系统级加密,请自行保护设备、账号和配置文件访问权限。
|
|
1312
1373
|
|
|
1313
1374
|
### 许可证
|
|
1314
1375
|
|
|
1315
|
-
|
|
1376
|
+
本项目基于 **GNU General Public License v3.0** 开源。使用、复制、修改和分发本项目时,请遵守 GPL-3.0 的许可要求。
|
|
1316
1377
|
|
|
1317
1378
|
---
|
|
1318
1379
|
|
|
@@ -1322,7 +1383,7 @@ npm run watch
|
|
|
1322
1383
|
|
|
1323
1384
|
1. **初版生成**:由 **Claude Code** (搭载 **GLM-4.7** 模型) 快速搭建核心架构与基础逻辑。
|
|
1324
1385
|
2. **调试与优化**:在 **Antigravity** 环境下,利用 **Claude** 和 **Gemini** 模型进行深度的 Bug 修复与功能增强,确保了字幕提取与评论分析的稳定性。
|
|
1325
|
-
3. **迭代与扩展**:由 **Codex** 进行架构决策与计划分解,**Claude Code** 接入 **DeepSeek** 模型执行实现;目前覆盖 30+ AI 客户端的 MCP 接入配置、6 个 MCP 工具、
|
|
1386
|
+
3. **迭代与扩展**:由 **Codex** 进行架构决策与计划分解,**Claude Code** 接入 **DeepSeek** 模型执行实现;目前覆盖 30+ AI 客户端的 MCP 接入配置、6 个 MCP 工具、124 个单元测试。
|
|
1326
1387
|
|
|
1327
1388
|
---
|
|
1328
1389
|
|
|
@@ -1331,7 +1392,7 @@ npm run watch
|
|
|
1331
1392
|
如果您在使用过程中遇到任何问题,或者有好的功能建议,欢迎通过以下方式联系:
|
|
1332
1393
|
|
|
1333
1394
|
- **提交 Issue**:[GitHub Issues](https://github.com/365903728-oss/bilibili-mcp/issues) —— **推荐方式**,我会定期查看并回复。
|
|
1334
|
-
- **项目讨论**:在 [GitHub Discussions](https://github.com/365903728-oss/bilibili-mcp/discussions)
|
|
1395
|
+
- **项目讨论**:在 [GitHub Discussions](https://github.com/365903728-oss/bilibili-mcp/discussions) 中交流。
|
|
1335
1396
|
|
|
1336
1397
|
感谢您的支持!
|
|
1337
1398
|
|
package/README_EN.md
CHANGED
|
@@ -1133,21 +1133,27 @@ nanobot's MCP config is compatible with Claude Desktop / Cursor style config. It
|
|
|
1133
1133
|
|
|
1134
1134
|
## ⚙️ Credential Configuration
|
|
1135
1135
|
|
|
1136
|
-
|
|
1136
|
+
If you use the "Install With Your Agent" prompt above, the agent should guide you through this section; you usually do not need to read the full setup manually. This section explains where Cookies are stored, the safety boundary, and manual scenarios such as Docker or local development. For reliable subtitles, transcripts, and comments, configure Bilibili Cookies; public video metadata may work without cookies.
|
|
1137
1137
|
|
|
1138
|
-
### Recommended:
|
|
1138
|
+
### Recommended: Agent-Guided Credential Setup
|
|
1139
|
+
|
|
1140
|
+
```bash
|
|
1141
|
+
npx -y @xzxzzx/bilibili-mcp config
|
|
1142
|
+
npx -y @xzxzzx/bilibili-mcp check
|
|
1143
|
+
```
|
|
1144
|
+
|
|
1145
|
+
If you use the "Install With Your Agent" prompt above, the agent should guide you to run these commands after it adds the MCP server. `config` input is not echoed in the terminal and saves Cookies to the local credential config, which the MCP server reads automatically when it starts; it does not write Cookies into MCP client config or the repository.
|
|
1146
|
+
|
|
1147
|
+
If the package is already installed globally, you can also run:
|
|
1139
1148
|
|
|
1140
1149
|
```bash
|
|
1141
|
-
npm install -g @xzxzzx/bilibili-mcp
|
|
1142
1150
|
bilibili-mcp config
|
|
1143
1151
|
bilibili-mcp check
|
|
1144
1152
|
```
|
|
1145
1153
|
|
|
1146
|
-
The CLI saves credentials to a local config directory, outside the repository.
|
|
1147
|
-
|
|
1148
1154
|
### Environment Variables
|
|
1149
1155
|
|
|
1150
|
-
For Docker, local development, or
|
|
1156
|
+
For Docker, local development, or cases where you explicitly control the MCP server runtime environment. Do not put real Cookies in shareable MCP client config files.
|
|
1151
1157
|
|
|
1152
1158
|
| Variable | Description |
|
|
1153
1159
|
|---|---|
|
|
@@ -1186,11 +1192,43 @@ Do not share cookies with others. Do not paste them into public chats, issues, P
|
|
|
1186
1192
|
| Get clean transcript text | `get_video_transcript` | Plain subtitle text, language, data source |
|
|
1187
1193
|
| See structured metadata | `get_video_metadata` | Title, author, duration, publish date, tags, stats |
|
|
1188
1194
|
| View audience reactions | `get_video_comments` | Popular comments, timestamped highlights, optional replies |
|
|
1195
|
+
| Guide users through Cookie setup | `get_credential_setup_instructions` | Safe setup steps, recommended commands, security notes |
|
|
1196
|
+
| Check whether Cookies are configured/logged in | `check_bilibili_credentials` | configured, source, logged_in, next_steps |
|
|
1189
1197
|
|
|
1190
1198
|
## 💡 Tool Call Examples
|
|
1191
1199
|
|
|
1192
1200
|
> Your AI client will automatically turn your natural-language intent into the corresponding JSON call.
|
|
1193
1201
|
|
|
1202
|
+
### `get_credential_setup_instructions`
|
|
1203
|
+
|
|
1204
|
+
**Best for**: letting an agent guide Cookie setup after installing the MCP server.
|
|
1205
|
+
|
|
1206
|
+
Request:
|
|
1207
|
+
|
|
1208
|
+
```json
|
|
1209
|
+
{
|
|
1210
|
+
"name": "get_credential_setup_instructions",
|
|
1211
|
+
"arguments": {}
|
|
1212
|
+
}
|
|
1213
|
+
```
|
|
1214
|
+
|
|
1215
|
+
Returns: recommended setup commands, global-install commands, required Cookie fields, and security notes; never returns Cookie values.
|
|
1216
|
+
|
|
1217
|
+
### `check_bilibili_credentials`
|
|
1218
|
+
|
|
1219
|
+
**Best for**: checking whether the current environment has Cookies configured and whether they are logged in.
|
|
1220
|
+
|
|
1221
|
+
Request:
|
|
1222
|
+
|
|
1223
|
+
```json
|
|
1224
|
+
{
|
|
1225
|
+
"name": "check_bilibili_credentials",
|
|
1226
|
+
"arguments": {}
|
|
1227
|
+
}
|
|
1228
|
+
```
|
|
1229
|
+
|
|
1230
|
+
Returns: `configured`, `source` (`env` / `global_config` / `none`), `logged_in`, and `next_steps`; never returns Cookie values.
|
|
1231
|
+
|
|
1194
1232
|
### `get_video_transcript`
|
|
1195
1233
|
|
|
1196
1234
|
**Best for**: feeding video content into AI for summarization, note-taking, Q&A, or knowledge management.
|
|
@@ -1276,31 +1314,63 @@ Returns: `comments[]` (author, content, likes, timestamp, has_timestamp), `summa
|
|
|
1276
1314
|
|
|
1277
1315
|
## 🛡️ API Rate Limiting
|
|
1278
1316
|
|
|
1279
|
-
Built-in
|
|
1280
|
-
|
|
1281
|
-
- **
|
|
1317
|
+
Built-in request controls reduce the chance of triggering Bilibili risk checks or API rate limits:
|
|
1318
|
+
|
|
1319
|
+
- **Request start interval**: defaults to 500ms (0.5s), configurable with `BILIBILI_RATE_LIMIT_MS`.
|
|
1320
|
+
- **Execution model**: throttles API request starts to avoid burst concurrency; intended for local single-user MCP usage.
|
|
1321
|
+
- **Retry strategy**: retries 408, 429, 5xx, network errors, and timeouts up to 3 times with exponential backoff.
|
|
1322
|
+
- **Timeout**: defaults to 10 seconds, configurable with `BILIBILI_REQUEST_TIMEOUT_MS`.
|
|
1282
1323
|
|
|
1283
1324
|
---
|
|
1284
1325
|
|
|
1285
1326
|
## 🛠️ Development Guide
|
|
1286
1327
|
|
|
1287
1328
|
```bash
|
|
1329
|
+
# 1. Clone the repository
|
|
1288
1330
|
git clone https://github.com/365903728-oss/bilibili-mcp.git
|
|
1289
1331
|
cd bilibili-mcp
|
|
1332
|
+
|
|
1333
|
+
# 2. Install dependencies
|
|
1290
1334
|
npm install
|
|
1335
|
+
|
|
1336
|
+
# 3. Run tests
|
|
1337
|
+
npm test
|
|
1338
|
+
|
|
1339
|
+
# 4. Build TypeScript
|
|
1340
|
+
npm run build
|
|
1341
|
+
|
|
1342
|
+
# 5. Watch and rebuild during development
|
|
1291
1343
|
npm run watch
|
|
1292
1344
|
```
|
|
1293
1345
|
|
|
1346
|
+
Common commands:
|
|
1347
|
+
|
|
1348
|
+
| Command | Purpose |
|
|
1349
|
+
|---|---|
|
|
1350
|
+
| `npm run build` | Compile TypeScript into `dist/` |
|
|
1351
|
+
| `npm test` | Run the Vitest unit tests |
|
|
1352
|
+
| `npm run watch` | Continuously compile during development |
|
|
1353
|
+
| `npm start` | Run the compiled stdio MCP server |
|
|
1354
|
+
| `npm pack --dry-run` | Inspect which files would be included in the npm package |
|
|
1355
|
+
|
|
1356
|
+
Local debugging notes:
|
|
1357
|
+
|
|
1358
|
+
- The MCP server entry point is `dist/index.js`, and the CLI entry point is `dist/cli.js`; run `npm run build` after changing source files.
|
|
1359
|
+
- For stdio MCP servers, `stdout` must be reserved for MCP protocol data. Runtime logs and errors should go to `stderr`, so this project uses `console.error` for operational logs.
|
|
1360
|
+
- Do not put real Cookies in tests, logs, examples, or commits. To verify credentials, use `npx -y @xzxzzx/bilibili-mcp check` or local environment variables.
|
|
1361
|
+
|
|
1294
1362
|
---
|
|
1295
1363
|
|
|
1296
1364
|
## ⚖️ Safety and Disclaimer
|
|
1297
1365
|
|
|
1298
|
-
- **
|
|
1299
|
-
- **
|
|
1300
|
-
- **
|
|
1366
|
+
- **Unofficial project**: Bilibili is a registered trademark of Bilibili Inc. This is a third-party open-source helper tool. It is not affiliated with, endorsed by, or representative of Bilibili.
|
|
1367
|
+
- **Usage boundary**: This project is intended for personal learning, assisted reading, and content understanding. Follow Bilibili's terms, robots/interface access rules, and applicable laws. Do not use it for commercial exploitation, large-scale scraping, permission bypassing, or other abusive scenarios.
|
|
1368
|
+
- **Account risk**: Requests are initiated from the user's local machine. High-frequency access, abnormal request patterns, Cookie leaks, or account-specific state may trigger risk controls, rate limits, or account issues. Users are responsible for their own usage and consequences.
|
|
1369
|
+
- **Cookie safety**: Do not put real Cookies in MCP client config, public chats, issues, PRs, READMEs, logs, or test files. Prefer this project's local credential config, runtime environment variables, or a local `.env` file. If Cookies leak, invalidate the old Bilibili login session immediately.
|
|
1370
|
+
- **Privacy**: This project does not upload Cookies to any third-party service other than Bilibili's official API. Credentials are stored or read locally according to the user's chosen setup. The current local config file does not promise system-level encryption; protect your device, account, and config file permissions.
|
|
1301
1371
|
|
|
1302
1372
|
### License
|
|
1303
|
-
Open-sourced under **GNU General Public License v3.0**.
|
|
1373
|
+
Open-sourced under **GNU General Public License v3.0**. When using, copying, modifying, or distributing this project, follow the GPL-3.0 license requirements.
|
|
1304
1374
|
|
|
1305
1375
|
---
|
|
1306
1376
|
|
|
@@ -1310,7 +1380,7 @@ This project is a crystal of AI-collaborative development, spanning from prototy
|
|
|
1310
1380
|
|
|
1311
1381
|
1. **Initial Generation**: Core architecture and base logic were rapidly built by **Claude Code** (powered by **GLM-4.7** model).
|
|
1312
1382
|
2. **Debugging & Optimization**: Bugs were fixed and features enhanced using **Claude** and **Gemini** models within the **Antigravity** environment, ensuring stable subtitle extraction and comment analysis.
|
|
1313
|
-
3. **Iteration & Expansion**: **Codex** handles architectural decisions and planning, while **Claude Code** with **DeepSeek** executes implementation; now covers 30+ AI client MCP configurations, 6 MCP tools, and
|
|
1383
|
+
3. **Iteration & Expansion**: **Codex** handles architectural decisions and planning, while **Claude Code** with **DeepSeek** executes implementation; now covers 30+ AI client MCP configurations, 6 MCP tools, and 124 unit tests.
|
|
1314
1384
|
|
|
1315
1385
|
---
|
|
1316
1386
|
|
|
@@ -1319,6 +1389,6 @@ This project is a crystal of AI-collaborative development, spanning from prototy
|
|
|
1319
1389
|
If you encounter any issues or have feature suggestions, feel free to reach out:
|
|
1320
1390
|
|
|
1321
1391
|
- **Submit an Issue**: [GitHub Issues](https://github.com/365903728-oss/bilibili-mcp/issues) — **Recommended**, I check and respond regularly.
|
|
1322
|
-
- **Discussions**: Join our [GitHub Discussions](https://github.com/365903728-oss/bilibili-mcp/discussions)
|
|
1392
|
+
- **Discussions**: Join our [GitHub Discussions](https://github.com/365903728-oss/bilibili-mcp/discussions) for general chat.
|
|
1323
1393
|
|
|
1324
1394
|
Thank you for your support!
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../src/bilibili/comments.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAEnB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../src/bilibili/comments.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AAMpB,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,OAAO,EAAE;QACP,cAAc,EAAE,MAAM,CAAC;QACvB,uBAAuB,EAAE,MAAM,CAAC;KACjC,CAAC;CACH;AAkDD;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,oBAAoB,CAAC,EAAE,kBAAkB,GAAG,cAAc,EAC1D,UAAU,CAAC,EAAE,MAAM,EACnB,oBAAoB,CAAC,EAAE,OAAO,GAC7B,OAAO,CAAC,WAAW,CAAC,CA0HtB"}
|
|
@@ -3,6 +3,7 @@ import { getVideoInfo, getVideoComments } from "./client.js";
|
|
|
3
3
|
import { extractBVId } from "../utils/bvid.js";
|
|
4
4
|
import { cacheManager } from "../utils/cache.js";
|
|
5
5
|
import { CommentsDisabledError } from "../utils/errors.js";
|
|
6
|
+
import { redactSecrets } from "../utils/logger.js";
|
|
6
7
|
/**
|
|
7
8
|
* 过滤表情占位符(如 [doge])
|
|
8
9
|
*/
|
|
@@ -137,7 +138,7 @@ export async function getVideoCommentsData(bvidOrUrl, detailLevelOrOptions, lega
|
|
|
137
138
|
cacheManager.setCommentInfo(cacheKey, result);
|
|
138
139
|
return result;
|
|
139
140
|
}
|
|
140
|
-
console.error("Error getting video comments:", error);
|
|
141
|
+
console.error("Error getting video comments:", redactSecrets(error));
|
|
141
142
|
throw error;
|
|
142
143
|
}
|
|
143
144
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/bilibili/comments.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAQ7D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/bilibili/comments.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subtitle.d.ts","sourceRoot":"","sources":["../../src/bilibili/subtitle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"subtitle.d.ts","sourceRoot":"","sources":["../../src/bilibili/subtitle.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,UAAU,GAAG,aAAa,CAAC;IACxC,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH;AAiED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,MAAM,EACtB,qBAAqB,UAAQ,GAC5B,OAAO,CAAC,OAAO,YAAY,EAAE,mBAAmB,CAAC,CAuGnD;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,YAAY,CAAC,CAyJvB"}
|
|
@@ -3,6 +3,7 @@ import { getVideoInfo, getVideoSubtitle, getSubtitleContent, checkLoginStatus }
|
|
|
3
3
|
import { extractBVId } from "../utils/bvid.js";
|
|
4
4
|
import { cacheManager } from "../utils/cache.js";
|
|
5
5
|
import { BilibiliAPIError, NoSubtitleError } from "../utils/errors.js";
|
|
6
|
+
import { redactSecrets } from "../utils/logger.js";
|
|
6
7
|
/**
|
|
7
8
|
* 字幕语言优先级
|
|
8
9
|
*/
|
|
@@ -275,7 +276,7 @@ export async function getVideoInfoWithSubtitle(bvidOrUrl, preferredLang) {
|
|
|
275
276
|
}
|
|
276
277
|
}
|
|
277
278
|
catch (error) {
|
|
278
|
-
console.error("Error getting video info with subtitle:", error);
|
|
279
|
+
console.error("Error getting video info with subtitle:", redactSecrets(error));
|
|
279
280
|
throw error;
|
|
280
281
|
}
|
|
281
282
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subtitle.js","sourceRoot":"","sources":["../../src/bilibili/subtitle.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAkB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"subtitle.js","sourceRoot":"","sources":["../../src/bilibili/subtitle.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -4,9 +4,37 @@ import { program } from 'commander';
|
|
|
4
4
|
import { server } from "./server.js";
|
|
5
5
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
6
6
|
import { credentialManager } from './utils/credentials.js';
|
|
7
|
+
import { Writable } from "stream";
|
|
8
|
+
import { redactSecrets } from "./utils/logger.js";
|
|
7
9
|
// 版本信息
|
|
8
10
|
import fs from 'fs';
|
|
9
11
|
const packageJson = JSON.parse(fs.readFileSync(new URL('../package.json', import.meta.url), 'utf8'));
|
|
12
|
+
async function askHidden(question) {
|
|
13
|
+
const readline = await import("readline");
|
|
14
|
+
const mutedOutput = new Writable({
|
|
15
|
+
write(chunk, encoding, callback) {
|
|
16
|
+
if (!mutedOutput.muted) {
|
|
17
|
+
process.stdout.write(chunk, encoding);
|
|
18
|
+
}
|
|
19
|
+
callback();
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
const rl = readline.createInterface({
|
|
23
|
+
input: process.stdin,
|
|
24
|
+
output: mutedOutput,
|
|
25
|
+
terminal: true,
|
|
26
|
+
});
|
|
27
|
+
return new Promise((resolve) => {
|
|
28
|
+
mutedOutput.muted = false;
|
|
29
|
+
rl.question(question, (answer) => {
|
|
30
|
+
mutedOutput.muted = false;
|
|
31
|
+
process.stdout.write("\n");
|
|
32
|
+
rl.close();
|
|
33
|
+
resolve(answer.trim());
|
|
34
|
+
});
|
|
35
|
+
mutedOutput.muted = true;
|
|
36
|
+
});
|
|
37
|
+
}
|
|
10
38
|
// 启动 MCP 服务器
|
|
11
39
|
async function startServer() {
|
|
12
40
|
const transport = new StdioServerTransport();
|
|
@@ -15,22 +43,11 @@ async function startServer() {
|
|
|
15
43
|
}
|
|
16
44
|
// 配置环境变量
|
|
17
45
|
async function configureCredentials() {
|
|
18
|
-
const readline = await import('readline');
|
|
19
|
-
const rl = readline.createInterface({
|
|
20
|
-
input: process.stdin,
|
|
21
|
-
output: process.stdout
|
|
22
|
-
});
|
|
23
46
|
console.log('请输入您的 Bilibili 凭证信息(可从浏览器开发者工具中获取):');
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
rl.question('bili_jct: ', resolve);
|
|
29
|
-
});
|
|
30
|
-
const dedeuserid = await new Promise((resolve) => {
|
|
31
|
-
rl.question('DedeUserID: ', resolve);
|
|
32
|
-
});
|
|
33
|
-
rl.close();
|
|
47
|
+
console.log('输入内容不会在终端回显。');
|
|
48
|
+
const sessdata = await askHidden('SESSDATA: ');
|
|
49
|
+
const bili_jct = await askHidden('bili_jct: ');
|
|
50
|
+
const dedeuserid = await askHidden('DedeUserID: ');
|
|
34
51
|
try {
|
|
35
52
|
const credentials = {
|
|
36
53
|
sessdata,
|
|
@@ -52,7 +69,7 @@ async function configureCredentials() {
|
|
|
52
69
|
console.log('⚠️ 如需更新凭证,请重新运行 bilibili-mcp config');
|
|
53
70
|
}
|
|
54
71
|
catch (error) {
|
|
55
|
-
console.error('配置失败:', error);
|
|
72
|
+
console.error('配置失败:', redactSecrets(error));
|
|
56
73
|
process.exit(1);
|
|
57
74
|
}
|
|
58
75
|
}
|
|
@@ -62,8 +79,7 @@ function checkConfig() {
|
|
|
62
79
|
if (creds) {
|
|
63
80
|
console.log('配置状态:已配置');
|
|
64
81
|
console.log('');
|
|
65
|
-
console.log('
|
|
66
|
-
console.log('');
|
|
82
|
+
console.log('凭证已加载。不会显示任何 Cookie 字段值。');
|
|
67
83
|
if (credentialManager.isExpiringSoon()) {
|
|
68
84
|
console.warn('警告:凭证将在7天内过期');
|
|
69
85
|
}
|
|
@@ -149,7 +165,7 @@ async function main() {
|
|
|
149
165
|
await program.parseAsync(process.argv);
|
|
150
166
|
}
|
|
151
167
|
main().catch((error) => {
|
|
152
|
-
console.error("Fatal error in main():", error);
|
|
168
|
+
console.error("Fatal error in main():", redactSecrets(error));
|
|
153
169
|
process.exit(1);
|
|
154
170
|
});
|
|
155
171
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,UAAU;AACV,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAkBrC,eAAe,MAAM,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,7 @@ import { fileURLToPath } from "url";
|
|
|
4
4
|
import { dirname, resolve } from "path";
|
|
5
5
|
import { server } from "./server.js";
|
|
6
6
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
7
|
+
import { redactSecrets } from "./utils/logger.js";
|
|
7
8
|
// 获取当前文件的目录
|
|
8
9
|
const __filename = fileURLToPath(import.meta.url);
|
|
9
10
|
const __dirname = dirname(__filename);
|
|
@@ -27,7 +28,7 @@ async function main() {
|
|
|
27
28
|
// 检查是否作为主模块运行
|
|
28
29
|
if (process.argv[1] && fileURLToPath(import.meta.url) === process.argv[1]) {
|
|
29
30
|
main().catch((error) => {
|
|
30
|
-
console.error("Fatal error:", error);
|
|
31
|
+
console.error("Fatal error:", redactSecrets(error));
|
|
31
32
|
process.exit(1);
|
|
32
33
|
});
|
|
33
34
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY;AACZ,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY;AACZ,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,YAAY;AACZ,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,aAAa;AACb,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAC9C,IAAI,CAAC;IACH,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAC5B,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACX,mBAAmB;AACrB,CAAC;AAED,2BAA2B;AAC3B,gBAAgB;AAChB,eAAe,MAAM,CAAC;AAEtB,YAAY;AACZ,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;AACxD,CAAC;AAED,cAAc;AACd,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AA4BnE,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUlB,CAAC"}
|
package/dist/server.js
CHANGED
|
@@ -10,6 +10,7 @@ import { sanitizeBVInput } from "./utils/sanitization.js";
|
|
|
10
10
|
import { BilibiliAPIError, NoSubtitleError } from "./utils/errors.js";
|
|
11
11
|
import { buildCredentialSetupInstructions, buildCredentialStatus, buildCredentialNextSteps, } from "./utils/credential-guidance.js";
|
|
12
12
|
import { checkLoginStatus } from "./bilibili/http.js";
|
|
13
|
+
import { redactSecrets } from "./utils/logger.js";
|
|
13
14
|
// 创建 MCP 服务器实例
|
|
14
15
|
export const server = new Server({
|
|
15
16
|
name: "bilibili-mcp-server",
|
|
@@ -343,7 +344,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
343
344
|
}
|
|
344
345
|
}
|
|
345
346
|
catch (error) {
|
|
346
|
-
console.error(`Error processing tool ${name}:`, error);
|
|
347
|
+
console.error(`Error processing tool ${name}:`, redactSecrets(error));
|
|
347
348
|
const payload = {
|
|
348
349
|
error: true,
|
|
349
350
|
message: error instanceof Error ? error.message : "Unknown error",
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,YAAY;AACZ,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAmB,MAAM,aAAa,CAAC;AACpE,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EACL,gCAAgC,EAChC,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/utils/credentials.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,eAAe,GAAG,MAAM,CAAC;AAEhE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,4CAA4C;AAC5C,eAAO,MAAM,iBAAiB,QAA2C,CAAC;AAC1E,eAAO,MAAM,kBAAkB,QAA8C,CAAC;AAE9E,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoB;IAC3C,OAAO,CAAC,WAAW,CAAoC;IAEvD,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,iBAAiB;IAOvC;;OAEG;IACH,WAAW,IAAI,mBAAmB,GAAG,IAAI;IAmBzC;;OAEG;IACH,YAAY,IAAI,mBAAmB,GAAG,IAAI;IAiB1C;;OAEG;IACH,UAAU,CAAC,WAAW,EAAE,mBAAmB,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/utils/credentials.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,eAAe,GAAG,MAAM,CAAC;AAEhE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,4CAA4C;AAC5C,eAAO,MAAM,iBAAiB,QAA2C,CAAC;AAC1E,eAAO,MAAM,kBAAkB,QAA8C,CAAC;AAE9E,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoB;IAC3C,OAAO,CAAC,WAAW,CAAoC;IAEvD,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,iBAAiB;IAOvC;;OAEG;IACH,WAAW,IAAI,mBAAmB,GAAG,IAAI;IAmBzC;;OAEG;IACH,YAAY,IAAI,mBAAmB,GAAG,IAAI;IAiB1C;;OAEG;IACH,UAAU,CAAC,WAAW,EAAE,mBAAmB,GAAG,IAAI;IAgBlD;;OAEG;IACH,cAAc,CAAC,WAAW,EAAE,mBAAmB,GAAG,IAAI;IAItD;;OAEG;IACH,cAAc,IAAI,mBAAmB,GAAG,IAAI;IAsB5C;;OAEG;IACH,SAAS,IAAI,OAAO;IAOpB;;OAEG;IACH,cAAc,IAAI,OAAO;IAQzB;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAMzB,mBAAmB,IAAI,gBAAgB;IAwBvC;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAIxB;;OAEG;IACH,UAAU,IAAI,OAAO;IAKrB;;OAEG;IACH,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAUzC;AAED,eAAO,MAAM,iBAAiB,mBAAkC,CAAC"}
|
|
@@ -61,9 +61,15 @@ export class CredentialManager {
|
|
|
61
61
|
*/
|
|
62
62
|
saveToFile(credentials) {
|
|
63
63
|
if (!fs.existsSync(GLOBAL_CONFIG_DIR)) {
|
|
64
|
-
fs.mkdirSync(GLOBAL_CONFIG_DIR, { recursive: true });
|
|
64
|
+
fs.mkdirSync(GLOBAL_CONFIG_DIR, { recursive: true, mode: 0o700 });
|
|
65
|
+
}
|
|
66
|
+
fs.writeFileSync(GLOBAL_CONFIG_FILE, JSON.stringify(credentials, null, 2), { encoding: "utf-8", mode: 0o600 });
|
|
67
|
+
try {
|
|
68
|
+
fs.chmodSync(GLOBAL_CONFIG_FILE, 0o600);
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
// Best-effort hardening; Windows ACL semantics may not map cleanly to POSIX modes.
|
|
65
72
|
}
|
|
66
|
-
fs.writeFileSync(GLOBAL_CONFIG_FILE, JSON.stringify(credentials, null, 2), "utf-8");
|
|
67
73
|
}
|
|
68
74
|
/**
|
|
69
75
|
* 设置凭证
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/utils/credentials.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAWpB,4CAA4C;AAC5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;AAE9E,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAC,QAAQ,CAAoB;IACnC,WAAW,GAA+B,IAAI,CAAC;IAEvD,gBAAuB,CAAC;IAExB,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;YAChC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACvD,CAAC;QACD,OAAO,iBAAiB,CAAC,QAAQ,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,WAAW;QACT,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QAEnD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,WAAW,GAAG;YACjB,QAAQ;YACR,QAAQ;YACR,UAAU;YACV,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,QAAQ;SAC3D,CAAC;QAEF,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,YAAY;QACV,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACvC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAwB,CAAC;YACtD,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC/D,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;YAC1B,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,WAAgC;QACzC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACtC,EAAE,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/utils/credentials.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/logger.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* 统一日志系统
|
|
3
3
|
*/
|
|
4
4
|
export type LogLevel = 'info' | 'warn' | 'error' | 'debug';
|
|
5
|
+
export declare function redactSecrets(value: unknown, seen?: WeakSet<object>): unknown;
|
|
5
6
|
export declare class Logger {
|
|
6
7
|
private static log;
|
|
7
8
|
static info(message: string, data?: any, context?: Record<string, any>): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAsB3D,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,kBAAwB,GAAG,OAAO,CA+BnF;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,GAAG;IAalB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAItE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAItE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAIvE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAIvE;;OAEG;IACH,MAAM,CAAC,aAAa,CAClB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,QAAQ,CAAC,EAAE,MAAM;IAUnB;;OAEG;IACH,MAAM,CAAC,cAAc,CACnB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM;IAahB;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM;IAQlF;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IAW1F;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAIxD,OAAO,CAAC,OAAO,CAAsB;gBAEzB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IAI7C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG;IAIhC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG;IAIhC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG;IAIjC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG;CAGlC;AAGD,eAAO,MAAM,MAAM,eAAS,CAAC"}
|
package/dist/utils/logger.js
CHANGED
|
@@ -1,14 +1,49 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 统一日志系统
|
|
3
3
|
*/
|
|
4
|
+
const SENSITIVE_KEY_PATTERN = /cookie|authorization|sessdata|bili_jct|dedeuserid|token|secret/i;
|
|
5
|
+
function redactString(value) {
|
|
6
|
+
return value
|
|
7
|
+
.replace(/(SESSDATA=)[^;\s",]+/gi, "$1***")
|
|
8
|
+
.replace(/(bili_jct=)[^;\s",]+/gi, "$1***")
|
|
9
|
+
.replace(/(DedeUserID=)[^;\s",]+/gi, "$1***")
|
|
10
|
+
.replace(/(BILIBILI_SESSDATA=)[^;\s",]+/gi, "$1***")
|
|
11
|
+
.replace(/(BILIBILI_BILI_JCT=)[^;\s",]+/gi, "$1***")
|
|
12
|
+
.replace(/(BILIBILI_DEDEUSERID=)[^;\s",]+/gi, "$1***");
|
|
13
|
+
}
|
|
14
|
+
export function redactSecrets(value, seen = new WeakSet()) {
|
|
15
|
+
if (typeof value === "string") {
|
|
16
|
+
return redactString(value);
|
|
17
|
+
}
|
|
18
|
+
if (value === null || typeof value !== "object") {
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
if (seen.has(value)) {
|
|
22
|
+
return "[Circular]";
|
|
23
|
+
}
|
|
24
|
+
seen.add(value);
|
|
25
|
+
if (value instanceof Error) {
|
|
26
|
+
return {
|
|
27
|
+
name: value.name,
|
|
28
|
+
message: redactString(value.message),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
if (Array.isArray(value)) {
|
|
32
|
+
return value.map((item) => redactSecrets(item, seen));
|
|
33
|
+
}
|
|
34
|
+
return Object.fromEntries(Object.entries(value).map(([key, entryValue]) => [
|
|
35
|
+
key,
|
|
36
|
+
SENSITIVE_KEY_PATTERN.test(key) ? "***" : redactSecrets(entryValue, seen),
|
|
37
|
+
]));
|
|
38
|
+
}
|
|
4
39
|
export class Logger {
|
|
5
40
|
static log(level, message, data, context) {
|
|
6
41
|
const entry = {
|
|
7
42
|
timestamp: new Date().toISOString(),
|
|
8
43
|
level,
|
|
9
|
-
message,
|
|
10
|
-
data,
|
|
11
|
-
context
|
|
44
|
+
message: redactString(message),
|
|
45
|
+
data: redactSecrets(data),
|
|
46
|
+
context: redactSecrets(context)
|
|
12
47
|
};
|
|
13
48
|
// 使用 console.error 确保输出到 stderr,避免干扰 MCP 协议
|
|
14
49
|
console.error(JSON.stringify(entry));
|
package/dist/utils/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,MAAM,OAAO,MAAM;IACT,MAAM,CAAC,GAAG,CAAC,KAAe,EAAE,OAAe,EAAE,IAAU,EAAE,OAA6B;QAC5F,MAAM,KAAK,GAAa;YACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK;YACL,OAAO;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
|