Skip to main content
Glama

小汐 Bili Whale · Codex 本地移植

插件来源:Alterssss/dsh-bili-whale,MIT,v0.4.5,commit 6aae11f94241c67271b6ab6dbecfe806224920a9。 保留原作者 LICENSE 与 NOTICE,详细来源及改动边界见 UPSTREAM.md。这是独立的 Codex 移植,不是上游官方版本。

把原项目“有偏好、有作息、会读 B 站、会记日记”的核心接到 Codex 本地 MCP。上游阅读工具原样保留,新增 MCP 适配、隔离数据目录、作息机会领取、去重与测试。无需单独的模型 API key;理解和推荐由当前 Codex 执行。

能做什么

  • 匿名热门候选、热评;配置登录后搜索、简介/字幕/弹幕摘要与官方字幕。

  • 人设、兴趣偏好、时区、每天可活动窗口、每日次数和每次视频数。

  • 按 BV 号去重、本地观察日记;通过 Codex 官方 heartbeat 调度工作流。本包默认未开启自动化。

  • 10 个 MCP 工具,所有 B 站接口均为读取;本地日记和作息账本可写。

未移植:DSH 设置 UI、DSH 会话唤醒服务、实时私信/直播监听、对外评论/私信/动态/关注/点赞/投币、自动抽帧工具。上游抽帧等源文件保留作参考,但不代表已接入或验证。文本摘要不等于实际看过画面。不能保证 B 站未公开接口永久可用。

Related MCP server: bilibili-mcp

安装到本机 Codex

需要 Node.js 20+,在本目录运行:

npm ci --ignore-scripts
npm test
npm run setup
codex mcp add xiaoxi_bili_whale -- node "完整路径/server.mjs"
codex mcp get xiaoxi_bili_whale

也可运行本包 install.ps1,它会使用当前真实 Node 路径并只添加本 MCP;同名项已存在时停止,不覆盖其他服务器。注册后重载 MCP 或重启 Codex,再用 whale_status 验证工具发现。工具能启动与配置存在不等于当前聊天已经热加载工具。

可直接对 Codex 说:“用小汐 Bili Whale 找两条热门候选,读热评,记下有意思的点。”

登录与私有数据

默认私有目录为本项目 data/;可用环境变量 XIAOXI_BILI_DATA 指向自己的独立目录。它不会读取原 DSH 的 ~/.bili-ai 或 ~/.dsh,也不会复制作者人设或账号。

需要登录的功能:在自己的浏览器手动取得 B 站 Cookie,保存为一个本地文本文件,然后运行:

npm run setup -- --cookie-file "D:/你的私有目录/bili-cookie.txt"

也接受 JSON {"sessdata":"...","bili_jct":"...","buvid3":"..."}。之后调用 whale_session 核实账号。不要把 Cookie 发给聊天、上传 GitHub 或放进共享文件夹;导入后自行删除中间 Cookie 文本。Windows 私有文件继承目录 ACL,建议使用仅本人可访问的位置。data/ 被 Git 忽略,发布 ZIP 排除它。

data/config.json 包含 persona、preferences、timezone、startHour、endHour、cyclesPerDay、videosPerCycle、enabled。默认每日北京时间 20–24 点一次、每次最多 3 条。次数在 claim 时消耗,失败不反复补跑。公开视频数由 agent 工作流遵守,手动阅读调用不受这一周期上限硬拦截。

自主激活见 HEARTBEAT.md:先配置并确认账户/匿名模式,再明确让 Codex 创建 heartbeat。本 MCP 自身不会后台常驻唤醒模型;电脑和 Codex 宿主调度需要可用。随时 npm run setup -- --disable 停止新周期,并暂停对应自动化。

验证

npm test:时区/窗口/日额度/换日、日记去重、原子领取、写操作白名单拒绝、真实 MCP stdio 初始化与工具发现、输入校验和无凭据错误。2026-10-21 本机验证 5/5 通过;匿名热门与真实视频热评读取成功。登录、官方字幕和定时实际唤醒尚未验证,因为未提供账户凭据且尚未启用自动化。

Codex MCP 接入依据:官方 MCP 文档。plugin.json / mcp.json 提供便携本地插件描述;实际安装路径使用已验证的 Codex CLI MCP 注册,不宣称已上架插件目录。

卸载:codex mcp remove xiaoxi_bili_whale。日记与凭据不会自动删除。

Available Tools

10 tools
whale_claim_cycleA

Atomically consume one daily browse opportunity. Call once per heartbeat; if ineligible, stop quietly. A failed cycle still consumes quota.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, so safety profiling is covered. The description adds high-value behavior beyond that: it is atomic, a failed cycle still burns quota, and ineligibility should end the turn silently — the quota-burn-on-failure trait is exactly the kind of consequence an agent must know before calling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each carrying a distinct operational fact (what it does, when to call, failure cost). Zero filler and the core action is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-param mutation with no output schema and annotations covering safety, the description covers action, cadence, and failure cost. The one remaining gap is what makes the agent 'ineligible' and how to determine it beforehand — likely via whale_status — which is left to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4; the description correctly implies no arguments are needed and nothing in the schema needs elaboration.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and resource: atomically consume one daily browse opportunity. The word 'atomically' plus 'one daily' precisely frames the operation as a single-consumption claim, which is distinguishable from read-oriented siblings like whale_status or whale_record without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit invocation cadence ('call once per heartbeat') and a clear stopping rule ('if ineligible, stop quietly'), which tells the agent not to retry or loop. It does not name a sibling for checking eligibility (e.g., whale_status), so the alternative path is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whale_commentsC
Read-only

Read hot comments, anonymously when no credential is configured.

NameRequiredDescriptionDefault
bvidYes
countNo

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, non-destructive, open-world access, so safety is covered. The description adds two pieces of real behavioral context: results are ranked/top ('hot') rather than chronological or exhaustive, and anonymous access is a fallback when no credential exists. It does not say whether anonymous results are limited, rate-limited, or otherwise degraded.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no filler; the operation and the anonymity condition are both front-loaded. Its brevity is close to under-specification, but nothing in it is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with zero parameter descriptions and no output schema, the description leaves critical gaps: what bvid identifies, what 'hot' ordering means, how many comments come back, and what the anonymous path changes about the response. An agent can guess the call shape from the schema but not the semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate and it does not — neither bvid nor count is mentioned. The schema's regex and 1–20 range imply bvid is a video identifier and count is a limit, but the description adds no semantics such as what bvid means or that count caps the number of hot comments returned.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read hot comments'), which is distinct from every sibling (whale_video, whale_subtitles, whale_popular, etc.) since none of them return comments. It stops short of saying comments belong to a video identified by bvid, so the object of the read is only implied by the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only conditional ('anonymously when no credential is configured') describes an auth behavior, not when to choose this tool over an alternative. There is no guidance on when to call whale_comments versus whale_video or whale_popular when an agent wants comment-adjacent data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whale_diaryC
Read-only

Read recent local observations.

NameRequiredDescriptionDefault
countNo

TDQS

C2.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, and the description is consistent with that safety profile. It adds only the vague "recent local" scope and does not disclose freshness, pagination, or what "local" means.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single front-loaded sentence with no filler. The terseness is a completeness problem rather than a conciseness problem.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with no output schema, the description does not explain what an "observation" contains, what "local" scopes to, or how many records are returned. The annotations cover safety only, leaving too much unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole count parameter (default 10, max 50, min 1) is undocumented in the schema, and the description says nothing about it. With 0% schema description coverage, the description fails to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description supplies a verb ("Read") and a resource ("recent local observations"), but "observations" and "local" are undefined. It also gives no clue how this tool differs from siblings such as whale_search or whale_popular.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no named alternative. An agent must guess whether to call whale_diary or a sibling like whale_search or whale_popular.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whale_recordB

Save a local diary observation and mark video seen. Do not invent observations. No external publication.

NameRequiredDescriptionDefault
bvidYes
noteYes
titleYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a non-read-only, non-open-world, non-destructive write operation. The description adds useful context that the save is local and that the video is marked seen, but it does not cover permissions, failure behavior, duplicate handling, or what 'mark video seen' changes on the server.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, with the primary action front-loaded and no wasted wording. The constraints that follow earn their place by limiting what may be saved and where it goes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a write tool with three required parameters and zero schema description coverage, the description is too thin. It does not explain the required identifiers, the meaning of the note/title fields, what happens on save, or what the tool returns, leaving significant gaps an agent must infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not mention the required bvid, title, or note parameters at all. The word 'observation' weakly implies the note field, and 'video seen' weakly implies bvid, but formats, constraints, and title semantics are left entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource ('Save a local diary observation') and adds a secondary side effect ('mark video seen'). It is clear what the tool does, but it does not distinguish this write operation from the sibling whale_diary tool, so an agent could confuse the two without inspecting schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Do not invent observations' and 'No external publication' set content and scope constraints, and the action implies usage after viewing a video. However, there is no explicit when-to-use guidance, no mention of when not to use it, and no pointer to alternatives such as whale_diary or whale_video.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whale_sessionA
Read-only

Verify the account behind the locally configured cookie. Never outputs raw cookie.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered. The description adds context beyond that: it operates on a locally configured cookie and deliberately never emits the raw cookie, a privacy trait invisible in the annotations. It does not say what happens on auth failure, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, the purpose first and the output restriction second. Nothing is redundant or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-param, no-output-schema read tool, the definition covers purpose, data source and output restriction. A little is missing about the success/failure signal (e.g. what an unauthenticated result looks like), which matters for a verification call an agent will branch on.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4. The description correctly signals that configuration comes from a local cookie rather than from arguments, which is the only parameter-relevant fact.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('verify') and a specific resource (the account behind the locally configured cookie), which resolves the ambiguity of the opaque name 'whale_session'. It is implicitly distinct from data-fetching siblings like whale_popular or whale_video, but the differentiation is never made explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is an identity/auth-check step, but the description never says when to call it (e.g. before write operations like whale_record) or when not to. No alternative or prerequisite is named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whale_statusA
Read-only

Local configuration, credential presence and current autonomous window. Does not validate login.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, non-destructive, closed-world behavior, so the safety profile is covered. The description adds meaningful context beyond that: it reads LOCAL state, reports credential PRESENCE rather than validity, and explicitly disclaims login validation — preventing an agent from over-trusting the result. It does not say anything about cost, side effects, or format, but little more is needed for a read-only status call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no filler, and the enumeration of reported values comes first. The opening is a verbless fragment ('Local configuration, credential presence and current autonomous window'), which is terse to the point of being slightly clipped, but it is front-loaded and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of telling the agent what comes back, and it does so by enumerating the three reported items. The 'does not validate login' caveat covers the main misinterpretation risk. Only the shape/format of the returned data is left unspecified, which is a minor gap for a zero-param status tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline for a 0-parameter tool applies, and the description correctly signals that no input is expected.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the three concrete things reported: local configuration, credential presence, and the current autonomous window. It is a noun phrase rather than a verb+resource statement, but an agent can still tell exactly what the tool returns. It does not explicitly distinguish itself from sibling whale_session, though the closing caveat hints at the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The line 'Does not validate login' implies that login validation belongs to another tool (likely whale_session), which is a useful implicit exclusion. However, there is no explicit statement of when to call this versus whale_session or whale_claim_cycle, so the routing guidance is inferred rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whale_subtitlesA
Read-only

Read official subtitle transcript with timestamps; requires login.

NameRequiredDescriptionDefault
bvidYes

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly=true, openWorld=true, and destructive=false, so the description does not need to repeat safety basics. It adds meaningful context by stating that login is required and that returned transcripts include timestamps, though it does not cover error behavior or whether subtitles may be unavailable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted text. The action, output trait, and login prerequisite all appear immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with annotations and no output schema, the description covers the core action, timestamps, and login prerequisite. However, it omits the meaning of the sole required parameter and does not clarify transcript format or availability constraints, leaving a notable gap for invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the only required parameter, bvid, is not explained at all in the description. The schema provides type and a regex pattern, but the description adds no meaning about what bvid identifies or how it relates to the requested subtitle transcript.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource ('Read official subtitle transcript') plus a useful scope qualifier ('official') and output trait ('with timestamps'). It does not explicitly distinguish the tool from siblings like whale_video, but the subtitle-transcript focus is specific enough for an agent to understand what it does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'requires login' provides an important prerequisite, but the description gives no explicit when-to-use guidance, exclusions, or alternatives such as whale_video for video metadata versus whale_subtitles for transcripts. Usage is implied by the name and purpose rather than stated as selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whale_videoC
Read-only

Upstream metadata, subtitles, danmaku and comment digest. May require login. Text analysis is not proof of visually watching video.

NameRequiredDescriptionDefault
bvidYes

TDQS

C2.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds genuine context beyond that — the login requirement, which an agent needs to anticipate auth failures — but it says nothing about what the upstream fetch returns or how the four data types are bundled.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loads the resource list, but the closing sentence ('Text analysis is not proof of visually watching video') is cryptic and arguably irrelevant to invoking the tool, so the brevity reflects under-specification rather than tight writing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one parameter, no output schema, and only a regex for bvid, the description should explain what a call returns and when to prefer it over the dedicated subtitle/comment tools. It instead stays generic and spends its one value-add sentence on an ambiguous caveat.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single required parameter bvid has 0% schema description coverage, so the description carries the explanatory burden — but it never mentions bvid, its format, or that it is a Bilibili video ID. The schema's regex pattern is the only hint, leaving the description failing to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names resources ('metadata, subtitles, danmaku and comment digest') but is a noun phrase with no verb, and it does not explain how this aggregate tool differs from siblings like whale_subtitles or whale_comments. An agent can infer it fetches video-associated content for a given video, but the scope boundary versus siblings stays murky.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'May require login' offers a prerequisite, but there is no when-to-use/when-not guidance and no routing to alternatives such as whale_subtitles or whale_comments even though those siblings clearly overlap. The final sentence about text analysis is not usage guidance in any actionable sense.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updatesv0.1.0
    • First observedwhale_claim_cycle
    • First observedwhale_comments
    • First observedwhale_diary
    • First observedwhale_popular
    • First observedwhale_record
    • First observedwhale_search
    • First observedwhale_session
    • First observedwhale_status
    • First observedwhale_subtitles
    • First observedwhale_video

TDQS

B3.4/5.0

Scored across 10 tools

Disambiguation4/5

Each tool maps to a distinct resource or lifecycle step, and the descriptions carefully separate whale_status (local config/credential presence) from whale_session (actual login verification), which is the most likely confusion point. The only remaining overlap is whale_video, which bundles metadata, subtitles, and comment digest that whale_subtitles and whale_comments also expose individually, so an agent may pick the wrapper or the granular tool arbitrarily.

Naming Consistency5/5

Every tool uses a uniform whale_<noun> snake_case pattern (whale_status, whale_popular, whale_comments, whale_diary), including the compound whale_claim_cycle. No camelCase or mixed verb/noun style breaks the pattern, so names are predictable and scannable.

Tool Count4/5

Ten tools is a healthy scope for a browsing/observation agent, and each one covers a distinct step (status, claim, discovery, content read, record, review). The subtitles/comments split from the aggregate video tool is slightly granular but defensible given login and credential differences.

Completeness4/5

The surface covers the full loop: check state, claim a cycle, discover videos (popular/search), read content (video/subtitles/comments), and write/read observations. Minor gaps exist around managing recorded diary entries (no update or delete/prune) and no explicit view of remaining quota beyond whale_status, but these are workable.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables agents to search, explore trending content, retrieve video metadata and hot comments, and obtain subtitle transcripts for summarisation on Bilibili, with an anonymous tier and an optional account tier for personalized feeds.
    10
    4
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables an existing agent to explore B站 on its own — refreshing homepage recommendations, browsing related videos with cursors, reading danmaku and threaded comments, and navigating user profiles, uploads and feeds. With locally configured permission policies it also supports gated social actions (replies, private messages, likes, favorites, follows) and Qwen-based audio-video understanding of clips up to 180 seconds.
    35
    GPL 3.0
  • A
    license
    A
    quality
    A
    maintenance
    Enables agents to gather topic-level evidence from Bilibili through search, comments, transcripts, danmaku, images, frames, audio transcription, and reusable source/video registries. Supports a reproducible workflow for dual-axis source grading, surfacing conflicts, and declaring retrieval gaps.
    14
    2
    MIT