@xzxzzx/bilibili-mcp 1.9.1 → 1.10.0

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 CHANGED
@@ -11,7 +11,7 @@
11
11
  </p>
12
12
 
13
13
  <p align="center">
14
- 让 Codex、Claude、Cursor 等 AI 客户端直接搜索 Bilibili,并读取字幕、时间定位、元数据、章节与热门评论。
14
+ 让 Codex、Claude、Cursor 等 AI 客户端直接搜索 Bilibili 或读取当前账号收藏夹,并获取字幕、时间定位、元数据、章节与热门评论。
15
15
  </p>
16
16
 
17
17
  <p align="center">
@@ -47,6 +47,7 @@ Agent 安装提示词、全部客户端配置位置、CLI / JSON / TOML 示例
47
47
  | 目标 | 工具 | 返回重点 |
48
48
  |---|---|---|
49
49
  | 只有主题,还没有视频链接 | `search_bilibili_videos` | 最多 10 个普通视频候选及可继续调用的 BVID |
50
+ | 从我的 Bilibili 收藏夹开始读取 | `list_bilibili_favorite_videos` | 当前账号下所有创建的收藏夹的分页视频;按 `next_cursor` 翻页直到结束 |
50
51
  | 获取纯字幕或定位关键词 | `get_video_transcript` | 转录文本、语言、时间戳、区间过滤、关键词上下文与证据链接 |
51
52
  | 让 AI 总结视频 | `get_video_info` | 字幕优先;无字幕时可返回标题、简介和标签 |
52
53
  | 查看结构化视频信息 | `get_video_metadata` | 标题、作者、时长、发布时间、标签、统计数据和多 P 列表 |
@@ -60,15 +61,16 @@ Agent 安装提示词、全部客户端配置位置、CLI / JSON / TOML 示例
60
61
 
61
62
  ### 关键能力
62
63
 
63
- - **先发现、再阅读**:按主题搜索普通视频候选,再把返回的 BVID 交给字幕、元数据、章节或评论工具。
64
+ - **先发现、再阅读**:按主题搜索普通视频候选,或从当前账号的收藏夹分页发现视频,再把返回的 BVID 交给字幕、元数据、章节或评论工具。
64
65
  - **可验证的字幕证据**:支持多 P、语言偏好、时间戳、时间区间和关键词上下文;命中项包含可直达播放时刻的 `timestamp_url`。
65
- - **结构化输出**:视频搜索和转录成功结果同时提供兼容文本与 MCP `structuredContent`。
66
+ - **结构化输出**:视频搜索、视频转录和收藏夹分页的成功结果同时提供兼容文本与 MCP `structuredContent`。
66
67
  - **明确的失败语义**:区分凭证失效、无字幕、访问受限、限流、超时和其他 API 错误,并给出下一步建议。
67
68
  - **安全的凭证助手**:检查凭证状态时不返回 `SESSDATA`、`bili_jct`、`DedeUserID` 或完整 Cookie。
68
69
 
69
70
  ## 🧭 行为边界
70
71
 
71
72
  - 视频搜索要求已配置且有效的 Bilibili 登录 Cookie,不提供匿名降级。
73
+ - 收藏夹发现要求已登录的当前账号身份,每次调用仅返回一个上游 20 条资源页;`next_cursor` 是无状态、版本化的不透明令牌,仅包含下一个 Folder 与页码,不会编码 Cookie、账号 ID、Folder 标题或视频数据。
72
74
  - `get_video_transcript` 默认在无字幕时返回 `SUBTITLE_UNAVAILABLE`;只有显式设置 `fallback_to_description: true` 才会退回简介。
73
75
  - 时间戳、区间过滤和关键词搜索不会静默退回简介,避免把描述误当作字幕证据。
74
76
  - 章节来自 Bilibili 创作者或平台数据;没有章节时返回空列表,不推断章节。
package/README_EN.md CHANGED
@@ -11,7 +11,7 @@
11
11
  </p>
12
12
 
13
13
  <p align="center">
14
- Search Bilibili from Codex, Claude, Cursor, and other AI clients, then retrieve transcripts, timestamps, metadata, chapters, and popular comments.
14
+ Search Bilibili or read the current account's Favorite Folders from Codex, Claude, Cursor, and other AI clients, then retrieve transcripts, timestamps, metadata, chapters, and popular comments.
15
15
  </p>
16
16
 
17
17
  <p align="center">
@@ -47,6 +47,7 @@ then find “tool call” in its transcript and give me a timestamp link.
47
47
  | Goal | Tool | What it returns |
48
48
  |---|---|---|
49
49
  | Start with a topic, not a video URL | `search_bilibili_videos` | Up to 10 normal-video candidates with reusable BVIDs |
50
+ | Start from my Bilibili Favorites | `list_bilibili_favorite_videos` | One bounded page of videos from the current account's created Favorite Folders; follow `next_cursor` until it is absent |
50
51
  | Get a transcript or locate a keyword | `get_video_transcript` | Text, language, timestamps, range filters, keyword context, and evidence links |
51
52
  | Ask AI to summarize a video | `get_video_info` | Subtitles first; title, description, and tags when subtitles are unavailable |
52
53
  | Inspect structured video information | `get_video_metadata` | Title, creator, duration, publish time, tags, statistics, and multi-Part listing |
@@ -60,15 +61,16 @@ See the [tool reference](./docs/tool-reference.en.md) for complete parameters, J
60
61
 
61
62
  ### Key capabilities
62
63
 
63
- - **Discover, then inspect:** search by topic, then pass a returned BVID to transcript, metadata, chapter, or comment tools.
64
+ - **Discover, then inspect:** search by topic, or page through the current account's Favorite Folders, then pass a returned BVID to transcript, metadata, chapter, or comment tools.
64
65
  - **Verifiable transcript evidence:** select a Part and language, include timestamps, filter time ranges, or search with bounded context; each match can include a direct `timestamp_url`.
65
- - **Structured output:** successful video search and transcript calls provide compatible text plus MCP `structuredContent`.
66
+ - **Structured output:** successful video search, transcript, and Favorites-page calls provide compatible text plus MCP `structuredContent`.
66
67
  - **Explicit failures:** distinguish expired credentials, missing subtitles, access restrictions, rate limits, timeouts, and other API errors, with actionable recovery steps.
67
68
  - **Credential-safe helpers:** status checks never return `SESSDATA`, `bili_jct`, `DedeUserID`, or a complete Cookie.
68
69
 
69
70
  ## 🧭 Behavior boundaries
70
71
 
71
72
  - Video search requires a configured, valid Bilibili login Cookie and does not fall back to anonymous search.
73
+ - Favorites discovery requires the current logged-in account identity, returns at most one upstream 20-row resource page per call, and the `next_cursor` is a stateless, versioned opaque token that encodes only the next Folder and page number — never Cookie values, account IDs, Folder titles, or Video data.
72
74
  - `get_video_transcript` returns `SUBTITLE_UNAVAILABLE` by default when no subtitle exists; it falls back to the description only when `fallback_to_description: true` is explicit.
73
75
  - Timestamp output, time-range filtering, and keyword search never silently fall back to a description.
74
76
  - Chapters come from Bilibili creator/platform data. The tool returns an empty list when no chapter data exists; it does not infer chapters.
@@ -0,0 +1,9 @@
1
+ import type { FavoriteVideoPage } from "./types.js";
2
+ export interface ResolvedCursor {
3
+ folderId: number;
4
+ page: number;
5
+ }
6
+ export declare function encodeFavoritesCursor(folderId: number, page: number): string;
7
+ export declare function decodeFavoritesCursor(cursor: string): ResolvedCursor;
8
+ export declare function listBilibiliFavoriteVideos(cursor?: string): Promise<FavoriteVideoPage>;
9
+ //# sourceMappingURL=favorites.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"favorites.d.ts","sourceRoot":"","sources":["../../src/bilibili/favorites.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAyEpB,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,MAAM,CAeR;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CA6CpE;AAoHD,wBAAsB,0BAA0B,CAC9C,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,CAmG5B"}
@@ -0,0 +1,283 @@
1
+ import { credentialManager } from "../utils/credentials.js";
2
+ import { BilibiliAPIError, ValidationError } from "../utils/errors.js";
3
+ import { isValidBVId } from "../utils/bvid.js";
4
+ import { fetchWithoutWBI } from "./http.js";
5
+ const NAV_PATH = "/x/web-interface/nav";
6
+ const FOLDERS_PATH = "/x/v3/fav/folder/created/list-all";
7
+ const RESOURCES_PATH = "/x/v3/fav/resource/list";
8
+ const PAGE_SIZE = 20;
9
+ const CURSOR_VERSION = 1;
10
+ const BASE64URL_RE = /^[A-Za-z0-9_-]+$/;
11
+ function createCredentialError() {
12
+ return new BilibiliAPIError('Current Bilibili credentials are expired or not logged in. Run "npx -y @xzxzzx/bilibili-mcp@latest config", then "npx -y @xzxzzx/bilibili-mcp@latest check", or update environment variables.', "COOKIE_EXPIRED");
13
+ }
14
+ function isRecord(value) {
15
+ return typeof value === "object" && value !== null && !Array.isArray(value);
16
+ }
17
+ function isPositiveSafeInteger(value) {
18
+ return (typeof value === "number" &&
19
+ Number.isSafeInteger(value) &&
20
+ value > 0);
21
+ }
22
+ function toNonNegativeInteger(value) {
23
+ if (typeof value !== "number" || !Number.isFinite(value) || value < 0) {
24
+ return undefined;
25
+ }
26
+ return Math.trunc(value);
27
+ }
28
+ function toIsoFromUnixSeconds(value) {
29
+ if (typeof value !== "number" || !Number.isFinite(value) || value <= 0) {
30
+ return "";
31
+ }
32
+ const date = new Date(value * 1_000);
33
+ return Number.isNaN(date.getTime()) ? "" : date.toISOString();
34
+ }
35
+ function cleanText(value) {
36
+ return typeof value === "string" ? value.trim() : "";
37
+ }
38
+ function base64urlEncode(value) {
39
+ const b64 = Buffer.from(value, "utf-8").toString("base64");
40
+ return b64.replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/g, "");
41
+ }
42
+ function base64urlDecode(value) {
43
+ if (value.length % 4 === 1) {
44
+ throw new Error("invalid base64url length");
45
+ }
46
+ const pad = value.length % 4 === 0 ? "" : "=".repeat(4 - (value.length % 4));
47
+ const b64 = `${value}${pad}`.replace(/-/g, "+").replace(/_/g, "/");
48
+ const decoded = Buffer.from(b64, "base64");
49
+ const canonical = decoded
50
+ .toString("base64")
51
+ .replace(/\+/g, "-")
52
+ .replace(/\//g, "_")
53
+ .replace(/=+$/g, "");
54
+ if (canonical !== value) {
55
+ throw new Error("non-canonical base64url");
56
+ }
57
+ return decoded.toString("utf-8");
58
+ }
59
+ export function encodeFavoritesCursor(folderId, page) {
60
+ if (!isPositiveSafeInteger(folderId)) {
61
+ throw new ValidationError("cursor folder_id must be a positive safe integer");
62
+ }
63
+ if (!isPositiveSafeInteger(page)) {
64
+ throw new ValidationError("cursor page must be a positive safe integer");
65
+ }
66
+ const payload = {
67
+ version: CURSOR_VERSION,
68
+ folder_id: folderId,
69
+ page,
70
+ };
71
+ return base64urlEncode(JSON.stringify(payload));
72
+ }
73
+ export function decodeFavoritesCursor(cursor) {
74
+ if (typeof cursor !== "string") {
75
+ throw new ValidationError("cursor must be a string");
76
+ }
77
+ if (cursor.length < 1 || cursor.length > 256) {
78
+ throw new ValidationError("cursor length must be between 1 and 256");
79
+ }
80
+ if (!BASE64URL_RE.test(cursor)) {
81
+ throw new ValidationError("cursor must contain only base64url characters");
82
+ }
83
+ let decoded;
84
+ try {
85
+ decoded = base64urlDecode(cursor);
86
+ }
87
+ catch {
88
+ throw new ValidationError("cursor is not valid base64url");
89
+ }
90
+ let parsed;
91
+ try {
92
+ parsed = JSON.parse(decoded);
93
+ }
94
+ catch {
95
+ throw new ValidationError("cursor is not valid JSON");
96
+ }
97
+ if (!isRecord(parsed)) {
98
+ throw new ValidationError("cursor payload must be a JSON object");
99
+ }
100
+ if (parsed.version !== CURSOR_VERSION) {
101
+ throw new ValidationError(`cursor version ${String(parsed.version)} is not supported`);
102
+ }
103
+ if (!isPositiveSafeInteger(parsed.folder_id)) {
104
+ throw new ValidationError("cursor folder_id must be a positive safe integer");
105
+ }
106
+ if (!isPositiveSafeInteger(parsed.page)) {
107
+ throw new ValidationError("cursor page must be a positive safe integer");
108
+ }
109
+ return { folderId: parsed.folder_id, page: parsed.page };
110
+ }
111
+ function normalizeFolder(row, authenticatedMid) {
112
+ if (!isRecord(row))
113
+ return undefined;
114
+ if (!isPositiveSafeInteger(row.id))
115
+ return undefined;
116
+ if (typeof row.title !== "string")
117
+ return undefined;
118
+ const mediaCount = toNonNegativeInteger(row.media_count);
119
+ if (mediaCount === undefined)
120
+ return undefined;
121
+ if (row.mid !== undefined && row.mid !== authenticatedMid) {
122
+ return undefined;
123
+ }
124
+ return {
125
+ id: row.id,
126
+ title: row.title,
127
+ media_count: mediaCount,
128
+ };
129
+ }
130
+ function normalizeFolderList(data, authenticatedMid) {
131
+ if (!isRecord(data) || !Array.isArray(data.list))
132
+ return [];
133
+ const folders = [];
134
+ for (const row of data.list) {
135
+ const folder = normalizeFolder(row, authenticatedMid);
136
+ if (folder)
137
+ folders.push(folder);
138
+ }
139
+ return folders;
140
+ }
141
+ function normalizeVideo(row) {
142
+ if (!isRecord(row))
143
+ return undefined;
144
+ const bvid = typeof row.bvid === "string" && isValidBVId(row.bvid)
145
+ ? row.bvid
146
+ : typeof row.bv_id === "string" && isValidBVId(row.bv_id)
147
+ ? row.bv_id
148
+ : undefined;
149
+ if (!bvid)
150
+ return undefined;
151
+ const title = cleanText(row.title);
152
+ if (!title)
153
+ return undefined;
154
+ const upper = isRecord(row.upper) ? row.upper : undefined;
155
+ const author = cleanText(upper?.name);
156
+ const duration = toNonNegativeInteger(row.duration) ?? 0;
157
+ return {
158
+ bvid,
159
+ title,
160
+ author,
161
+ duration_seconds: duration,
162
+ published_at: toIsoFromUnixSeconds(row.pubtime),
163
+ favorited_at: toIsoFromUnixSeconds(row.fav_time),
164
+ source_url: `https://www.bilibili.com/video/${bvid}/`,
165
+ };
166
+ }
167
+ function normalizeVideoPage(data) {
168
+ if (!isRecord(data) || !Array.isArray(data.medias)) {
169
+ return {
170
+ videos: [],
171
+ hasMore: false,
172
+ skippedCount: 0,
173
+ isEmptyPage: true,
174
+ };
175
+ }
176
+ const videos = [];
177
+ let skippedCount = 0;
178
+ for (const row of data.medias) {
179
+ const video = normalizeVideo(row);
180
+ if (video) {
181
+ videos.push(video);
182
+ }
183
+ else {
184
+ skippedCount += 1;
185
+ }
186
+ }
187
+ return {
188
+ videos,
189
+ hasMore: data.has_more === true,
190
+ skippedCount,
191
+ isEmptyPage: data.medias.length === 0,
192
+ };
193
+ }
194
+ function createStaleCursorError() {
195
+ return new ValidationError("cursor folder no longer belongs to the current account; restart without a cursor");
196
+ }
197
+ async function fetchAuthenticatedMid(authHeaders) {
198
+ const data = await fetchWithoutWBI(NAV_PATH, undefined, authHeaders);
199
+ if (!isRecord(data) || data.isLogin !== true) {
200
+ throw createCredentialError();
201
+ }
202
+ if (!isPositiveSafeInteger(data.mid)) {
203
+ throw createCredentialError();
204
+ }
205
+ return data.mid;
206
+ }
207
+ export async function listBilibiliFavoriteVideos(cursor) {
208
+ let startFolderId;
209
+ let startPage;
210
+ if (cursor !== undefined) {
211
+ const resolved = decodeFavoritesCursor(cursor);
212
+ startFolderId = resolved.folderId;
213
+ startPage = resolved.page;
214
+ }
215
+ const authHeaders = credentialManager.getAuthHeaders();
216
+ if (typeof authHeaders.Cookie !== "string" ||
217
+ authHeaders.Cookie.trim().length === 0) {
218
+ throw createCredentialError();
219
+ }
220
+ const authenticatedMid = await fetchAuthenticatedMid(authHeaders);
221
+ const folderListData = await fetchWithoutWBI(FOLDERS_PATH, { up_mid: authenticatedMid }, authHeaders);
222
+ const folders = normalizeFolderList(folderListData, authenticatedMid);
223
+ if (folders.length === 0) {
224
+ if (startFolderId !== undefined) {
225
+ throw createStaleCursorError();
226
+ }
227
+ return {
228
+ folders_total: 0,
229
+ videos: [],
230
+ skipped_count: 0,
231
+ };
232
+ }
233
+ let folderIndex = 0;
234
+ let page = 1;
235
+ if (startFolderId !== undefined && startPage !== undefined) {
236
+ const idx = folders.findIndex((folder) => folder.id === startFolderId);
237
+ if (idx < 0) {
238
+ throw createStaleCursorError();
239
+ }
240
+ folderIndex = idx;
241
+ page = startPage;
242
+ }
243
+ const currentFolder = folders[folderIndex];
244
+ const resourceData = await fetchWithoutWBI(RESOURCES_PATH, {
245
+ media_id: currentFolder.id,
246
+ pn: page,
247
+ ps: PAGE_SIZE,
248
+ keyword: "",
249
+ order: "mtime",
250
+ type: 0,
251
+ tid: 0,
252
+ platform: "web",
253
+ }, authHeaders);
254
+ const { videos, hasMore, skippedCount, isEmptyPage, } = normalizeVideoPage(resourceData);
255
+ let nextCursor;
256
+ if (isEmptyPage) {
257
+ if (folderIndex + 1 < folders.length) {
258
+ nextCursor = encodeFavoritesCursor(folders[folderIndex + 1].id, 1);
259
+ }
260
+ }
261
+ else if (hasMore) {
262
+ nextCursor = encodeFavoritesCursor(currentFolder.id, page + 1);
263
+ }
264
+ else if (folderIndex + 1 < folders.length) {
265
+ nextCursor = encodeFavoritesCursor(folders[folderIndex + 1].id, 1);
266
+ }
267
+ const result = {
268
+ folders_total: folders.length,
269
+ folder: {
270
+ id: currentFolder.id,
271
+ title: currentFolder.title,
272
+ media_count: currentFolder.media_count,
273
+ },
274
+ page,
275
+ videos,
276
+ skipped_count: skippedCount,
277
+ };
278
+ if (nextCursor) {
279
+ result.next_cursor = nextCursor;
280
+ }
281
+ return result;
282
+ }
283
+ //# sourceMappingURL=favorites.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"favorites.js","sourceRoot":"","sources":["../../src/bilibili/favorites.ts"],"names":[],"mappings":"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"}
@@ -168,6 +168,28 @@ export interface TranscriptSearchOptions {
168
168
  max_matches: number;
169
169
  context_segments: number;
170
170
  }
171
+ export interface FavoriteFolder {
172
+ id: number;
173
+ title: string;
174
+ media_count: number;
175
+ }
176
+ export interface FavoriteVideo {
177
+ bvid: string;
178
+ title: string;
179
+ author: string;
180
+ duration_seconds: number;
181
+ published_at: string;
182
+ favorited_at: string;
183
+ source_url: string;
184
+ }
185
+ export interface FavoriteVideoPage {
186
+ folders_total: number;
187
+ folder?: FavoriteFolder;
188
+ page?: number;
189
+ videos: FavoriteVideo[];
190
+ skipped_count: number;
191
+ next_cursor?: string;
192
+ }
171
193
  export interface VideoChaptersData {
172
194
  bvid: string;
173
195
  page: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/bilibili/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/bilibili/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-handlers.d.ts","sourceRoot":"","sources":["../../src/server/tool-handlers.ts"],"names":[],"mappings":"AAsCA,KAAK,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;AAEpD,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ;;;;;;uBA0Hf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;GA2ExE"}
1
+ {"version":3,"file":"tool-handlers.d.ts","sourceRoot":"","sources":["../../src/server/tool-handlers.ts"],"names":[],"mappings":"AAwCA,KAAK,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;AAEpD,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ;;;;;;uBA0Hf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;GA6FxE"}
@@ -1,5 +1,6 @@
1
1
  import { getVideoChaptersData } from "../bilibili/chapters.js";
2
2
  import { getVideoCommentsData } from "../bilibili/comments.js";
3
+ import { listBilibiliFavoriteVideos } from "../bilibili/favorites.js";
3
4
  import { checkLoginStatus } from "../bilibili/http.js";
4
5
  import { getVideoMetadataData } from "../bilibili/metadata.js";
5
6
  import { searchBilibiliVideos } from "../bilibili/search.js";
@@ -10,7 +11,7 @@ import { buildStructuredErrorPayload } from "../utils/error-guidance.js";
10
11
  import { NoSubtitleError } from "../utils/errors.js";
11
12
  import { sanitizeBVInput } from "../utils/sanitization.js";
12
13
  import { buildPackageUpdateInfo } from "../utils/update-check.js";
13
- import { validateBoolean, validateBVInput, validateCommentLimit, validateCommentSort, validateContextSegments, validateDetailLevel, validateLanguage, validateMaxMatches, validatePage, validateQuery, validateSearchLimit, validateTimestampRange, } from "../utils/validation.js";
14
+ import { validateBoolean, validateBVInput, validateCommentLimit, validateCommentSort, validateContextSegments, validateDetailLevel, validateFavoritesCursor, validateLanguage, validateMaxMatches, validatePage, validateQuery, validateSearchLimit, validateTimestampRange, } from "../utils/validation.js";
14
15
  import { buildValidationErrorPayload, toErrorTextContent, toTextContent, } from "./error-response.js";
15
16
  export async function handleToolCall(name, args) {
16
17
  switch (name) {
@@ -176,6 +177,21 @@ export async function handleToolCall(name, args) {
176
177
  structuredContent: result,
177
178
  };
178
179
  }
180
+ case "list_bilibili_favorite_videos": {
181
+ const rawCursor = args?.cursor;
182
+ try {
183
+ validateFavoritesCursor(rawCursor);
184
+ }
185
+ catch (error) {
186
+ return toErrorTextContent(buildValidationErrorPayload(error));
187
+ }
188
+ const cursor = typeof rawCursor === "string" ? rawCursor : undefined;
189
+ const result = await listBilibiliFavoriteVideos(cursor);
190
+ return {
191
+ ...toTextContent(result),
192
+ structuredContent: result,
193
+ };
194
+ }
179
195
  default:
180
196
  throw new Error(`Unknown tool: ${name}`);
181
197
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tool-handlers.js","sourceRoot":"","sources":["../../src/server/tool-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-handlers.js","sourceRoot":"","sources":["../../src/server/tool-handlers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-schemas.d.ts","sourceRoot":"","sources":["../../src/server/tool-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,eAAO,MAAM,WAAW,EAAE,IAAI,EAqS7B,CAAC"}
1
+ {"version":3,"file":"tool-schemas.d.ts","sourceRoot":"","sources":["../../src/server/tool-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,eAAO,MAAM,WAAW,EAAE,IAAI,EAmW7B,CAAC"}
@@ -265,5 +265,65 @@ export const toolSchemas = [
265
265
  required: ["query", "results"],
266
266
  },
267
267
  },
268
+ {
269
+ name: "list_bilibili_favorite_videos",
270
+ description: "Discover every created Favorite Folder of the currently authenticated Bilibili account and return one bounded page of its Video memberships. Follow the returned next_cursor until it is absent to traverse every Folder; do not assume one response contains the full account. Requires configured, logged-in Bilibili Cookie; call get_credential_setup_instructions for help.",
271
+ inputSchema: {
272
+ type: "object",
273
+ properties: {
274
+ cursor: {
275
+ type: "string",
276
+ minLength: 1,
277
+ maxLength: 256,
278
+ pattern: "^[A-Za-z0-9_-]+$",
279
+ description: "Opaque continuation token returned by a previous successful call. Omit on the first call. The token encodes only a versioned Folder ID and page number; it never contains credentials, account IDs, Folder titles, or Video data.",
280
+ },
281
+ },
282
+ required: [],
283
+ },
284
+ outputSchema: {
285
+ type: "object",
286
+ properties: {
287
+ folders_total: { type: "integer" },
288
+ folder: {
289
+ type: "object",
290
+ properties: {
291
+ id: { type: "integer" },
292
+ title: { type: "string" },
293
+ media_count: { type: "integer" },
294
+ },
295
+ required: ["id", "title", "media_count"],
296
+ },
297
+ page: { type: "integer" },
298
+ videos: {
299
+ type: "array",
300
+ items: {
301
+ type: "object",
302
+ properties: {
303
+ bvid: { type: "string" },
304
+ title: { type: "string" },
305
+ author: { type: "string" },
306
+ duration_seconds: { type: "integer" },
307
+ published_at: { type: "string" },
308
+ favorited_at: { type: "string" },
309
+ source_url: { type: "string" },
310
+ },
311
+ required: [
312
+ "bvid",
313
+ "title",
314
+ "author",
315
+ "duration_seconds",
316
+ "published_at",
317
+ "favorited_at",
318
+ "source_url",
319
+ ],
320
+ },
321
+ },
322
+ skipped_count: { type: "integer" },
323
+ next_cursor: { type: "string" },
324
+ },
325
+ required: ["folders_total", "videos", "skipped_count"],
326
+ },
327
+ },
268
328
  ];
269
329
  //# sourceMappingURL=tool-schemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-schemas.js","sourceRoot":"","sources":["../../src/server/tool-schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-schemas.js","sourceRoot":"","sources":["../../src/server/tool-schemas.ts"],"names":[],"mappings":"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"}
@@ -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;AAsB3D,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,kBAAwB,GAAG,OAAO,CA+BnF;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,GAAG;IAkBlB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI9E,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI9E,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI/E,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAO/E;;OAEG;IACH,MAAM,CAAC,aAAa,CAClB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,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,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM;IAQtF;;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,OAAO,CAAC,GAAG,MAAM;IAI5D,OAAO,CAAC,OAAO,CAA0B;gBAE7B,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAIjD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAIpC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAIpC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAIrC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;CAGtC;AAGD,eAAO,MAAM,MAAM,eAAS,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;AA2B3D,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,kBAAwB,GAAG,OAAO,CA+BnF;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,GAAG;IAkBlB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI9E,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI9E,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI/E,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAO/E;;OAEG;IACH,MAAM,CAAC,aAAa,CAClB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,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,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM;IAQtF;;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,OAAO,CAAC,GAAG,MAAM;IAI5D,OAAO,CAAC,OAAO,CAA0B;gBAE7B,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAIjD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAIpC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAIpC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAIrC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;CAGtC;AAGD,eAAO,MAAM,MAAM,eAAS,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * 统一日志系统
3
3
  */
4
- const SENSITIVE_KEY_PATTERN = /cookie|authorization|sessdata|bili_jct|dedeuserid|token|secret/i;
4
+ const SENSITIVE_KEY_PATTERN = /cookie|authorization|sessdata|bili_jct|dedeuserid|token|secret|(?:^|_)(?:mid|media_id|folder_id)$/i;
5
5
  function redactString(value) {
6
6
  return value
7
7
  .replace(/(SESSDATA=)[^;\s",]+/gi, "$1***")
@@ -9,7 +9,8 @@ function redactString(value) {
9
9
  .replace(/(DedeUserID=)[^;\s",]+/gi, "$1***")
10
10
  .replace(/(BILIBILI_SESSDATA=)[^;\s",]+/gi, "$1***")
11
11
  .replace(/(BILIBILI_BILI_JCT=)[^;\s",]+/gi, "$1***")
12
- .replace(/(BILIBILI_DEDEUSERID=)[^;\s",]+/gi, "$1***");
12
+ .replace(/(BILIBILI_DEDEUSERID=)[^;\s",]+/gi, "$1***")
13
+ .replace(/([?&](?:up_mid|media_id|folder_id)=)[^&\s"',]+/gi, "$1***");
13
14
  }
14
15
  export function redactSecrets(value, seen = new WeakSet()) {
15
16
  if (typeof value === "string") {
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,MAAM,qBAAqB,GACzB,oGAAoG,CAAC;AAEvG,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK;SACT,OAAO,CAAC,wBAAwB,EAAE,OAAO,CAAC;SAC1C,OAAO,CAAC,wBAAwB,EAAE,OAAO,CAAC;SAC1C,OAAO,CAAC,0BAA0B,EAAE,OAAO,CAAC;SAC5C,OAAO,CAAC,iCAAiC,EAAE,OAAO,CAAC;SACnD,OAAO,CAAC,iCAAiC,EAAE,OAAO,CAAC;SACnD,OAAO,CAAC,mCAAmC,EAAE,OAAO,CAAC;SACrD,OAAO,CACN,kDAAkD,EAClD,OAAO,CACR,CAAC;AACN,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc,EAAE,OAAO,IAAI,OAAO,EAAU;IACxE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEhB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC;SACrC,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC;QAC1E,GAAG;QACH,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC;KAC1E,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,MAAM;IACT,MAAM,CAAC,GAAG,CAChB,KAAe,EACf,OAAe,EACf,IAAc,EACd,OAAiC;QAEjC,MAAM,KAAK,GAAa;YACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK;YACL,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC;YAC9B,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC;YACzB,OAAO,EAAE,aAAa,CAAC,OAAO,CAAwC;SACvE,CAAC;QAEF,4CAA4C;QAC5C,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,OAAe,EAAE,IAAc,EAAE,OAAiC;QAC5E,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,OAAe,EAAE,IAAc,EAAE,OAAiC;QAC5E,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAe,EAAE,IAAc,EAAE,OAAiC;QAC7E,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAe,EAAE,IAAc,EAAE,OAAiC;QAC7E,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,GAAG,EAAE,CAAC;YAC3C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa,CAClB,MAAc,EACd,GAAW,EACX,MAAgC,EAChC,QAAiB;QAEjB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM;YACN,GAAG;YACH,MAAM;YACN,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,SAAS;SACjD,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CACnB,MAAc,EACd,GAAW,EACX,MAAc,EACd,QAAiB,EACjB,KAAc;QAEd,MAAM,KAAK,GAAG,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAE/C,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE;YAC9B,MAAM;YACN,GAAG;YACH,MAAM;YACN,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,SAAS;YAChD,KAAK;SACN,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,QAAgB,EAAE,IAA8B,EAAE,QAAiB;QACpF,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,QAAQ;YACR,IAAI;YACJ,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,SAAS;SACjD,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,QAAgB,EAAE,OAAgB,EAAE,QAAiB,EAAE,KAAc;QACxF,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAEzC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE;YAC7B,QAAQ;YACR,OAAO;YACP,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,SAAS;YAChD,KAAK;SACN,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,OAAgC;QACjD,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAEO,OAAO,CAA0B;IAEzC,YAAY,UAAmC,EAAE;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAAc;QAClC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAAc;QAClC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAAc;QACnC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAAc;QACnC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;CACF;AAED,SAAS;AACT,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC"}
@@ -59,4 +59,10 @@ export declare function validateMaxMatches(value: unknown): void;
59
59
  * 验证 context_segments:整数 0-5
60
60
  */
61
61
  export declare function validateContextSegments(value: unknown): void;
62
+ /**
63
+ * 验证 Favorites Discovery 游标的公开 schema:
64
+ * 字符串、长度 1-256、仅 base64url 字符。
65
+ * 不解码 payload;由 favorites 模块在副作用前完成严格解码。
66
+ */
67
+ export declare function validateFavoritesCursor(cursor: unknown): void;
62
68
  //# sourceMappingURL=validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,GAAE,iBAAsB,GAC9B,IAAI,CAgBN;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAWnD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAapD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAIxD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAUzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAMvD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAMhD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,OAAO,GAClB,IAAI,CAoBN;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAIlE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAYlD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAQxD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAQvD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAQ5D"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,GAAE,iBAAsB,GAC9B,IAAI,CAgBN;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAWnD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAapD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAIxD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAUzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAMvD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAMhD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,OAAO,GAClB,IAAI,CAoBN;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAIlE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAYlD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAQxD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAQvD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAQ5D;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAW7D"}
@@ -174,4 +174,22 @@ export function validateContextSegments(value) {
174
174
  throw new Error("context_segments must be between 0 and 5");
175
175
  }
176
176
  }
177
+ /**
178
+ * 验证 Favorites Discovery 游标的公开 schema:
179
+ * 字符串、长度 1-256、仅 base64url 字符。
180
+ * 不解码 payload;由 favorites 模块在副作用前完成严格解码。
181
+ */
182
+ export function validateFavoritesCursor(cursor) {
183
+ if (cursor === undefined)
184
+ return;
185
+ if (typeof cursor !== "string") {
186
+ throw new Error("cursor must be a string");
187
+ }
188
+ if (cursor.length < 1 || cursor.length > 256) {
189
+ throw new Error("cursor length must be between 1 and 256");
190
+ }
191
+ if (!/^[A-Za-z0-9_-]+$/.test(cursor)) {
192
+ throw new Error("cursor must contain only base64url characters");
193
+ }
194
+ }
177
195
  //# sourceMappingURL=validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,14 @@
2
2
 
3
3
  [Back to English README](../README_EN.md) · [简体中文](./tool-reference.md) · [Client setup](./client-setup.en.md)
4
4
 
5
- This page preserves detailed behavior, parameters, examples, error contracts, and runtime request controls for all nine MCP tools. Start with the project README for installation and the first successful call.
5
+ This page preserves detailed behavior, parameters, examples, error contracts, and runtime request controls for all ten MCP tools. Start with the project README for installation and the first successful call.
6
6
 
7
7
  ## Quick selection
8
8
 
9
9
  | Goal | Recommended tool | What you get |
10
10
  |---|---|---|
11
11
  | Start from a topic without a video link | `search_bilibili_videos` | Up to 10 normal Video candidates with reusable BVIDs; no automatic subtitle or comment retrieval |
12
+ | Start from my Bilibili Favorites | `list_bilibili_favorite_videos` | One bounded page of videos from the current account's created Favorite Folders (at most 20 rows); follow `next_cursor` until absent; no subtitles, comments, or downloads |
12
13
  | Summarize a video | `get_video_info` | Subtitles first; falls back to title, description, tags |
13
14
  | Get clean transcript text or locate keywords | `get_video_transcript` | Plain subtitle text, language, data source; supports timestamps, range filtering, and keyword search |
14
15
  | See structured metadata | `get_video_metadata` | Title, author, duration, publish date, tags, stats, multi-Part listing |
@@ -75,13 +76,28 @@ This page preserves detailed behavior, parameters, examples, error contracts, an
75
76
  - Candidate metadata is for selection and follow-up calls only; the tool does not fetch subtitles/comments or apply AI re-ranking.
76
77
  - Requires configured, logged-in Bilibili Cookies; success returns formatted JSON text plus identical MCP `structuredContent`.
77
78
 
78
- ### 7. Credential Helper Tools
79
+ ### 7. Favorites Discovery (`list_bilibili_favorite_videos`)
80
+
81
+ - Automatically discovers every created Favorite Folder of the currently logged-in account and walks Folder-by-Folder, page-by-page.
82
+ - Each call returns at most one upstream resource page (fixed at 20 rows). `next_cursor` is an opaque, stateless, versioned base64url token that encodes only the next Folder ID and page number.
83
+ - The cursor is strictly validated before any network request: type, length (1-256), charset (base64url only), JSON structure, supported version, positive safe-integer Folder ID, and positive safe-integer page.
84
+ - Continuation rules: when the current Folder's `has_more=true`, the cursor points to the next page of the same Folder; when upstream returns an empty `medias` array (even if `has_more=true`) or when `has_more=false`, the cursor points to page 1 of the next Folder; the final Folder's terminal page omits `next_cursor`.
85
+ - The same BVID in two Folders is returned once in each Folder context (Favorite Membership semantics); the MCP does not deduplicate across Folders.
86
+ - `skipped_count` reports upstream rows that could not be safely normalized (for example, an invalid BVID or empty title); no replacement page is fetched.
87
+ - Upstream `media_count` is Bilibili's reported count and may exceed the rows currently visible or callable; the response only promises the current upstream page.
88
+ - Traversal is a best-effort read of Bilibili's live state, not a snapshot. Adding, removing, or moving memberships during continuation may change ordering or visible results.
89
+ - No persistence, cache, download, transcript/comment/chapter/search fetch, or anonymous fallback.
90
+ - Requires configured, logged-in Bilibili Cookies; success returns formatted JSON text plus identical MCP `structuredContent`.
91
+ - Optional parameters:
92
+ - `cursor`: Opaque continuation token returned by the previous successful call. Omit on the first call.
93
+
94
+ ### 8. Credential Helper Tools
79
95
 
80
96
  - `get_credential_setup_instructions`: Returns safe setup commands for Bilibili Cookie configuration. AI agents installing this MCP can call this tool to guide users through setup.
81
97
  - `check_bilibili_credentials`: Checks whether credentials are configured and logged in without returning Cookie values. Returns next steps when credentials are missing or invalid.
82
98
  - `check_mcp_update`: Checks the local package version against npm latest and returns safe update guidance for `npx @latest` or global installs.
83
99
 
84
- ### 8. Behavior and Error Handling
100
+ ### 9. Behavior and Error Handling
85
101
 
86
102
  - **Intelligent Cookie Expiration Detection**: Automatically verifies login status when subtitles are empty, distinguishing between "videos without subtitles" and "invalid credentials," and throwing a clear `COOKIE_EXPIRED` error to prevent silent degradation.
87
103
 
@@ -91,6 +107,7 @@ This page preserves detailed behavior, parameters, examples, error contracts, an
91
107
  - Subtitles (`get_video_info`, `get_video_transcript`) may be unavailable, incomplete, or fail without authentication.
92
108
  - Comments (`get_video_comments`) may be incomplete, empty, or rate-limited without authentication.
93
109
  - Video discovery (`search_bilibili_videos`) requires configured, valid login credentials and never falls back to anonymous search.
110
+ - Favorites discovery (`list_bilibili_favorite_videos`) must start from the currently logged-in account identity; it never falls back to anonymous access and never reads another user's public Favorites.
94
111
  - Do not rely on cookie-less mode for reliable subtitle or comment access.
95
112
 
96
113
  #### Credential Sources
@@ -215,6 +232,34 @@ Request:
215
232
 
216
233
  Returns: normal Video candidates in comprehensive order with `bvid`, title, author, duration, publish time, view count, bounded description, and source URL. Search requires valid logged-in credentials and never fetches candidate subtitles or comments automatically.
217
234
 
235
+ ### `list_bilibili_favorite_videos`
236
+
237
+ **Best for**: letting an Agent start from your already-logged-in Bilibili account and read every created Favorite Folder. The MCP protocol stays paginated: each call returns at most one upstream page of 20 rows, and the Agent follows the returned `next_cursor` until it is absent. **Do not assume a single response contains the full account's Favorites.**
238
+
239
+ Request (first call, omit `cursor`):
240
+
241
+ ```json
242
+ {
243
+ "name": "list_bilibili_favorite_videos",
244
+ "arguments": {}
245
+ }
246
+ ```
247
+
248
+ Returns: `folders_total`, `folder` (current Folder `id`, `title`, `media_count`), `page`, `videos[]` (each with `bvid`, `title`, `author`, `duration_seconds`, `published_at`, `favorited_at`, `source_url`), `skipped_count`, and optional `next_cursor`. An account with no valid created Folders returns only `folders_total: 0`, `videos: []`, `skipped_count: 0`.
249
+
250
+ Continuation:
251
+
252
+ ```json
253
+ {
254
+ "name": "list_bilibili_favorite_videos",
255
+ "arguments": {
256
+ "cursor": "<next_cursor from the previous response>"
257
+ }
258
+ }
259
+ ```
260
+
261
+ > When upstream returns an empty `medias` page, even with `has_more=true`, the tool treats the current Folder as complete and jumps to page 1 of the next Folder, preventing a cursor loop. If the cursor's Folder no longer belongs to the current account (deleted or transferred), the call returns `VALIDATION_ERROR` and instructs the caller to restart without a cursor.
262
+
218
263
  ### `get_video_transcript`
219
264
 
220
265
  **Best for**: feeding video content into AI for summarization, note-taking, Q&A, or knowledge management.
@@ -2,13 +2,14 @@
2
2
 
3
3
  [返回中文 README](../README.md) · [English](./tool-reference.en.md) · [客户端接入](./client-setup.md)
4
4
 
5
- 本页保存 9 个 MCP 工具的详细行为、参数、示例、错误结构和运行时请求控制。安装与首次调用请先看项目 README。
5
+ 本页保存 10 个 MCP 工具的详细行为、参数、示例、错误结构和运行时请求控制。安装与首次调用请先看项目 README。
6
6
 
7
7
  ## 快速选择
8
8
 
9
9
  | 目标 | 推荐工具 | 返回重点 |
10
10
  |---|---|---|
11
11
  | 只有主题,还没有视频链接 | `search_bilibili_videos` | 最多 10 个普通视频候选及可继续调用的 BVID;不自动抓取字幕或评论 |
12
+ | 从我的 Bilibili 收藏夹开始读取 | `list_bilibili_favorite_videos` | 当前账号所有创建的收藏夹的一页视频(最多 20 条),按 `next_cursor` 翻页直到结束;不读取字幕、评论或下载 |
12
13
  | 想让 AI 总结一个视频 | `get_video_info` | 字幕优先;无字幕时返回标题、简介、标签 |
13
14
  | 只想拿完整转录文本或关键词定位 | `get_video_transcript` | 纯字幕文本、语言、数据来源;支持时间戳、区间过滤和关键词搜索 |
14
15
  | 想查看标题、作者、播放量等结构化信息 | `get_video_metadata` | 标题、作者、时长、发布时间、标签、统计数据、多P分集列表(`pages`) |
@@ -76,13 +77,28 @@
76
77
  - 候选只包含可选择和传给现有工具的元数据,不自动获取字幕、评论,也不进行 AI 重排。
77
78
  - 必须先配置且登录 Bilibili Cookie;成功结果同时提供格式化 JSON 文本和内容相同的 MCP `structuredContent`。
78
79
 
79
- ### 7. 凭证助手工具
80
+ ### 7. 收藏夹发现 (`list_bilibili_favorite_videos`)
81
+
82
+ - 从当前已登录账号自动发现所有创建的收藏夹,逐 Folder 逐页返回其中的视频成员。
83
+ - 每次调用最多返回上游一页(固定 20 条);`next_cursor` 是不透明、无状态、版本化的 base64url 令牌,仅包含下一个 Folder 与页码。
84
+ - 游标在所有网络请求前严格校验:类型、长度(1-256)、字符集(仅 base64url)、JSON 结构、版本、正整数 Folder ID 与页码。
85
+ - 续读规则:当前 Folder 的 `has_more=true` 时游标指向同 Folder 下一页;上游返回空 `medias`(即使 `has_more=true`)或 `has_more=false` 时,游标指向下一个 Folder 的第 1 页;最后一个 Folder 的最后页省略 `next_cursor`。
86
+ - 同一 BVID 出现在多个 Folder 中时,会在各自 Folder 上下文中各返回一次(“收藏成员关系”语义);本 MCP 不做跨 Folder 去重。
87
+ - `skipped_count` 报告上游返回但无法安全规范化的行数(如无效 BVID、空标题);不会触发额外的替换请求。
88
+ - 上游的 `media_count` 只是 Bilibili 报告的计数,可能高于当前可见或可调用的行数,结果只保证返回上游当前页面内容。
89
+ - 遍历是对 Bilibili 当前实时状态的 best-effort 读取,不提供快照隔离;续读期间新增、删除或移动收藏成员可能导致顺序或可见结果变化。
90
+ - 不持久化、不缓存、不下载、不抓取字幕/评论/章节/搜索结果;不会发起匿名降级请求。
91
+ - 必须先配置且登录 Bilibili Cookie;成功结果同时提供格式化 JSON 文本和内容相同的 MCP `structuredContent`。
92
+ - 可选参数:
93
+ - `cursor`: 上一次成功调用返回的不透明续读令牌。首次调用请省略。
94
+
95
+ ### 8. 凭证助手工具
80
96
 
81
97
  - `get_credential_setup_instructions`: 返回安全的 Bilibili Cookie 配置命令和说明。AI agent 安装此 MCP 后可调用此工具引导用户完成配置。
82
98
  - `check_bilibili_credentials`: 检查凭证是否已配置并处于登录状态,不返回任何 Cookie 值。配置缺失或失效时返回下一步操作指引。
83
99
  - `check_mcp_update`: 检查本地包版本与 npm latest 是否一致,并返回 `npx @latest` 或全局安装的安全更新指引。
84
100
 
85
- ### 8. 行为说明与错误处理
101
+ ### 9. 行为说明与错误处理
86
102
 
87
103
  - **Cookie 过期智能检测**:当字幕获取为空时自动验证登录状态,区分“无字幕视频”与“凭证失效”,并抛出明确的 `COOKIE_EXPIRED` 错误,避免静默降级。
88
104
 
@@ -92,6 +108,7 @@
92
108
  - 字幕(`get_video_info`、`get_video_transcript`)在未登录时可能无法获取、不完整或返回空结果。
93
109
  - 评论(`get_video_comments`)在未登录时可能不完整、被限流或返回空列表。
94
110
  - 视频发现(`search_bilibili_videos`)强制检查已配置且有效的登录凭证;不提供匿名降级。
111
+ - 收藏夹发现(`list_bilibili_favorite_videos`)必须从已登录的当前账号身份开始;不提供匿名降级,也不读取其他账号的公开收藏。
95
112
  - 不建议依赖无 Cookie 模式获取字幕或评论。
96
113
 
97
114
  #### Cookie 凭据来源
@@ -219,6 +236,34 @@
219
236
 
220
237
  返回内容:综合排序的普通视频候选及其 `bvid`、标题、作者、时长、发布时间、播放量、简介片段和源链接。搜索需要有效登录凭证,且不会自动读取候选视频的字幕或评论。
221
238
 
239
+ ### `list_bilibili_favorite_videos`
240
+
241
+ **适合**:让 Agent 从你已登录的 Bilibili 账号开始读取全部创建的收藏夹中的视频。MCP 协议始终分页:每次调用返回上游一页(最多 20 条),Agent 按返回的 `next_cursor` 继续调用直到没有该字段为止。**不要假设一次响应包含整个账号的收藏。**
242
+
243
+ 请求示例(首次调用,不传 `cursor`):
244
+
245
+ ```json
246
+ {
247
+ "name": "list_bilibili_favorite_videos",
248
+ "arguments": {}
249
+ }
250
+ ```
251
+
252
+ 返回内容:`folders_total`、`folder`(当前 Folder 的 `id`、`title`、`media_count`)、`page`、`videos[]`(每项含 `bvid`、`title`、`author`、`duration_seconds`、`published_at`、`favorited_at`、`source_url`)、`skipped_count`,以及可选的 `next_cursor`。账号无任何有效收藏夹时只返回 `folders_total: 0`、`videos: []`、`skipped_count: 0`。
253
+
254
+ 续读示例:
255
+
256
+ ```json
257
+ {
258
+ "name": "list_bilibili_favorite_videos",
259
+ "arguments": {
260
+ "cursor": "<上一次响应中的 next_cursor>"
261
+ }
262
+ }
263
+ ```
264
+
265
+ > 上游返回空 `medias` 时,即使 `has_more=true`,本工具仍会把当前 Folder 视为已结束并跳到下一个 Folder 的第 1 页,避免游标循环。若游标对应的 Folder 已不再属于当前账号(例如被删除或转移),返回 `VALIDATION_ERROR` 并提示“restart without a cursor”。
266
+
222
267
  ### `get_video_transcript`
223
268
 
224
269
  **适合**:需要把视频内容交给 AI 做摘要、笔记、问答或知识整理。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xzxzzx/bilibili-mcp",
3
- "version": "1.9.1",
3
+ "version": "1.10.0",
4
4
  "description": "Bilibili MCP tool for video metadata, transcripts, subtitles, and comment summarization",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",