Skip to main content
Glama

VideoNote-Mcp는 「동영상 링크 → 다중 형식 노트」 전체 파이프라인을 MCP Server + Claude Code Skill로 패키징합니다: agent에게 링크 하나를 주면, 자동으로 다운로드 → 음성 전사 → 화면 이해 → 댓글/코멘트 → AI 요약을 완료하고, 스크린샷이 포함되어 전체를 옮길 수 있는 휴대용 노트를 돌려줍니다.

저장소: HuangYincan/VideoNote-MCP.

이 프로젝트는 엔드투엔드로 사용할 수 있을 뿐만 아니라(링크 하나 → 노트 한 편), 분리해서도 사용할 수 있습니다: 파이프라인의 각 단계(다운로드 / 전사 / 프레임 추출 / 댓글 / 요약 / 내보내기 / 향상 / 정리)는 모두 독립적인 MCP 도구이므로, 특정 단계만 사용하거나 동영상 내용만 파악하고 싶을 때도 충족할 수 있습니다. 백엔드 서비스를 시작할 필요가 없습니다.


⚡ 빠른 시작

# 1) 一条命令装好 Skill + MCP(插件 marketplace,uvx 自动更新)
claude plugin marketplace add HuangYincan/VideoNote-MCP
claude plugin install videonote@videonote

# 2) 安装时 Claude Code 会逐项提示默认值(风格/转写引擎/视频理解/评论等);
#    装完在会话里跑配置向导收尾:
/videonote-setup

# 3) (可选)LLM-Key/B 站扫码/CLI向导
# ! videonote setup

# 4) 重启会话,对 agent 说「帮我给这个视频做笔记」+ 链接

[!TIP] 네 가지 설치 방법, 구성 세부 사항, 업데이트 및 보안은 [docs/04-사용자 매뉴얼.md](docs/04-사용자 매뉴얼.md)를 참조하세요.

Related MCP server: tldw-mcp

📚 문서

설치 / 구성 / 사용 / 환경 변수 / 업데이트 / 보안 등 전체 설명은 docs/에 정리되어 있습니다(README에는 개요만 유지):

  • [📇 문서 색인](docs/00-문서 색인.md)

  • [🏗️ 아키텍처 설계](docs/02-아키텍처 설계.md)

  • [📖 사용자 매뉴얼](docs/04-사용자 매뉴얼.md) —— 설치(4가지 방법) · 구성(setup 마법사 + CLI) · 환경 변수 · 업데이트 · 보안

  • 📜 업데이트 로그


🎬 실제 사례

두 가지 엔드투엔드 실제 사례: 하나는 AGENT 직접 생성을 통해 LaTeX mathnote PDF를 출력하고, 다른 하나는 완전 자동 LLM 생성을 통해 휴대용 Markdown을 생산합니다.

사례 1 · agent_direct + LaTeX mathnote(DeepSeek-V4 동영상)

출처: 【闪客】深入解读 DeepSeek V1~V4!男女老少都听得懂~

동영상 하나 + 네 가지 유형의 외부 자료(논문 / 기술 보고서 / 공식 계정 발표 / 오픈소스 모음) → AGENT 직접 생성으로 정제된 노트를 만들고, LaTeX mathnote PDF(중국어 서체 템플릿)를 출력합니다:

Page1

Page2

Page3

하이라이트: agent_direct 전체 프로세스(LLM key 없이, Agent가 전사 + 프레임 이미지 + 댓글을 읽고 직접 노트 작성) · 다중 소스 교차 통합(동영상 × 논문 × 기술 보고서 × 오픈소스 목록) · 정제 시 원본 보존(note.md / note_original.md 이중 보관) · LaTeX mathnote PDF(글꼴 누락 / 줄바꿈 넘침 / 인용 중복 자동 수정). 전체 과정 기록은 examples/agent-direct-deepseek-v4-mathnote/README.md를 참조하세요.

사례 2 · 완전 자동 LLM 생성 + 휴대용 Markdown(다중 동영상 병렬)

극도로 간단한 Prompt(B站 링크 3개 + 출력 디렉터리, 매개변수 하나도 설명하지 않음) → 완전 자동으로 환경 검사 → 링크 인식 → 공급업체/모델 발견 → 매개변수 확인 → 다중 동영상 병렬 → 생성 후 자막 기반 정제를 거쳐 3개의 정제된 휴대용 노트(note.md + Assets/ 스크린샷 + 「시청자 의견」 섹션, note_original.md는 비교용으로 보존)를 생산합니다.

  • 雅思: 오해 극복 + 듣기/읽기/쓰기/회화 네 과목 분해 + 179개 고빈도 시험 단어 + 15개 논리 프레임워크

  • 法医: 43년 경력 법의관이 영화와 현실을 대조하며 분석, 정제 후 12개 절로 확장

  • Transformer: 자기 주의 메커니즘 상세 해설, 강의 타임라인에 따라 18장의 스크린샷 배치

전체 과정 기록은 examples/note-generation-example/README.md를 참조하세요.


🗺️ 파이프라인 지도

flowchart LR
    A["视频链接"] --> B["下载音视频<br/>+ 平台字幕"]
    B --> C["语音转写<br/>或直接用平台字幕"]
    B -. 可选 .-> D["逐帧画面理解<br/>关键帧 → 网格图"]
    B -. 可选 .-> E["弹幕 + 评论区"]
    C --> F["素材包<br/>转写 · 帧 · 评论"]
    D -.-> F
    E -.-> F
    F --> G["AI 总结 → Markdown 底稿<br/>正文 + 截图 + 「观众观点」"]
    G --> O1["便携笔记<br/>note.md + Assets/"]
    G --> O2["字幕导出<br/>SRT · VTT · JSON"]
    G -. Agent 生成 .-> O3["创意格式<br/>思维导图 · 闪卡 · LaTeX · typst"]
    G -. 可选 .-> O4["基于完整字幕精修<br/>保留原版对比"]

단계

역할

대표 도구

0 🔄 엔드투엔드 전체 프로세스

링크 하나 → 노트 한 편, 전체 파이프라인 완전 자동 실행

generate_note / get_task_status

1 📥 다운로드 및 플랫폼 파싱

플랫폼 인식 및 오디오/비디오 다운로드, 1800+ 사이트와 로컬 파일 지원

inspect_video

2 🎙 음성 전사(ASR)

오디오 트랙을 텍스트로 변환, 로컬 / 클라우드 다중 엔진 선택 가능

generate_note 내부에서 완료

3 🖼️ 동영상 화면 이해(프레임 추출)

간격별 프레임 추출, 멀티모달 LLM이 화면을 「봄」

video_understanding 매개변수

4 💬 댓글과 코멘트

B站 댓글과 댓글란 의견 수집

include_comments 매개변수

5 ✍️ AI 요약과 노트

자료 → 구조화된 Markdown, 9가지 스타일 선택 가능

generate_note / prepare_note_material

6 📤 다중 형식 내보내기

SRT/VTT/JSON 기계적 내보내기 + 창의적 형식(Agent 생성)

export_transcript

7 🎛️ 오디오 향상

다중 파일 병합, 전처리, 화자 분리

merge_audio / diarize_media

8 🗂️ 작업 관리와 정리

전역 작업 색인, 점유 확인, 필요 시 정리

list_tasks / cleanup_note


0 🔄 엔드투엔드 전체 프로세스

엔드투엔드 모드는 링크 하나만 주면 됩니다: generate_note가 비동기로 전체 파이프라인을 실행하고 task_id를 반환합니다. 가벼운 get_task_status 스냅샷 폴링으로 SUCCESS/FAILED/CANCELLED까지 확인합니다(단일 프로세스에서 최대 3개의 진행 중 작업, 같은 메시지에서 병렬 제출 금지). cancel_note는 협력적 취소입니다. 「AGENT 직접 생성」은 prepare_note_material을 사용합니다 — 자료 패키지만 준비하고 구성된 LLM을 호출하지 않으며, agent가 직접 전사, 이미지, 댓글을 읽고 노트를 작성합니다.

도구

설명

유형

generate_note

링크 하나 → 비동기 노트 생성, task_id 반환(동영상 이해 / 댓글 통합 / 스크린샷 휴대용 노트 지원)

MCP 도구

get_task_status

가벼운 작업 상태 폴링(SUCCESS/FAILED/CANCELLED까지 폴링)

MCP 도구

cancel_note

진행 중 / 대기 중 작업 협력적 취소

MCP 도구

prepare_note_material

자료 패키지만 준비(전사 / 프레임 추출 / 댓글), AGENT 직접 생성용

MCP 도구

AGENT 직접 생성(agent_direct)

agent가 자료 패키지를 읽고 직접 노트 작성, 구성된 LLM 미사용

SKILL / Agent 오케스트레이션

1 📥 다운로드 및 플랫폼 파싱

inspect_video는 플랫폼을 인식합니다(bilibili / youtube / douyin / tiktok / kuaishou / local; 내장 6개 플랫폼 외에는 platform:"generic"을 반환하고 자동으로 yt-dlp 범용 추출을 통해 1800+ 사이트를 지원) + 링크 유효성 검사(유효하지 않으면 바로 이유 제공) + B站 분할 영상 / YouTube 재생 목록을 각 에피소드별로 독립 제출 가능한 url로 분리합니다(다운로드하지 않음). 플랫폼 Cookie는 ! videonote login bilibili / ! videonote setup을 통해 처리하며, MCP를 통해 전달하지 마세요. 플랫폼 자막(B站 AI 자막 포함)은 generate_note 내부에서 우선 사용되며, 독립 도구는 없습니다.

도구

설명

유형

inspect_video

분할 영상 / 재생 목록 파싱, 각 에피소드별 generate_note 가능한 url 반환

MCP 도구

2 🎙 음성 전사(ASR)

음성 전사(ASR)는 generate_note 내부에서 완료됩니다: 플랫폼 자막(B站 AI 자막 포함)을 우선 사용하고, 자막이 없으면 전사합니다. 엔진 선택 가능: fast-whisper(로컬) / groq / bcut / kuaishou(클라우드) / mlx-whisper(macOS Apple Silicon GPU) / funasr(중국어 최적, VAD + 자동 문장 부호). 엔진과 모델 관리는 CLI를 통해 진행: ! videonote transcriber set/download; 상태 확인은 get_config().

3 🖼️ 동영상 화면 이해(프레임 추출)

generate_note는 동영상 이해 매개변수를 직접 지원합니다: video_understanding=True + video_interval(기본 6초) + grid_size(기본 [3,3]), 그리드 이미지를 멀티모달 LLM에 보내 화면을 「봅니다」.

매개변수

설명

유형

video_understanding / video_interval / grid_size

간격별 프레임 추출 + 그리드 이미지 내장 전송, 멀티모달 모델에 전달

매개변수

4 💬 댓글과 코멘트

generate_note에 include_comments=True + comments_limit(기본 20)을 추가하면 댓글 도배와 댓글란 고빈도 의견을 노트에 정리하고, 「시청자 의견」 섹션을 추가합니다(B站 SESSDATA 필요; 수집 실패 시 작업을 차단하지 않음).

매개변수

설명

유형

include_comments / comments_limit

노트에 「시청자 의견」 섹션 추가(기본 20개)

매개변수

5 ✍️ AI 요약과 노트

9가지 스타일 지원: minimal / detailed / academic / tutorial / xiaohongshu / life_journal / task_oriented / business / meeting_minutes; format=["screenshot"]은 휴대용 노트를 생산합니다(note.md + Assets/, 상대 참조로 전체 이동 가능). 공급업체/모델/전사기 구성은 모두 CLI로 진행(! videonote providers set / ! videonote transcriber set), 읽기 전용 확인은 get_config(). agent_direct는 AGENT가 직접 생성합니다.

매개변수

설명

유형

9가지 노트 스타일 + format

스타일 선택 / screenshot 휴대용 노트

매개변수

get_config

읽기 전용 구성 요약(기본값 / 공급업체 / 전사기 / cookie 상태), 연결성 탐지 추가 가능

MCP 도구

agent_direct

AGENT가 직접 자료 패키지를 읽고 노트 작성

SKILL / Agent 오케스트레이션

6 📤 다중 형식 내보내기

기계적 형식은 export_transcript(srt / vtt / json)를 사용합니다 — 결정적 렌더링(타임라인 변환), LLM을 소모하지 않으며, file:// 경로를 반환합니다. 창의적 형식(마인드맵 / 플래시카드 / LaTeX / typst / 사용자 정의 템플릿)은 Agent가 MD 초안 + SKILL 템플릿 기반으로 생성합니다(LaTeX 내장 Math Note / English Article 템플릿: 수학/이공계 노트 스타일, 영어 문서/발표 개요 스타일; typst 내장 zju-lab 템플릿: 이공계 노트/실험 보고서/논문 스타일, ZJU 교표 포함).

도구

설명

유형

export_transcript

전사본을 srt/vtt/json으로 내보내기(결정적 기계적 형식)

MCP 도구

창의적 형식

마인드맵 / 플래시카드 / LaTeX / typst → Agent가 초안 기반 생성

SKILL / Agent 오케스트레이션

7 🎛️ 오디오 향상

merge_audio는 여러 녹음 / 회의 분할 / 여러 로컬 동영상을 16kHz mono wav로 병합한 후 전사합니다. 오디오 전처리(16kHz 정규화 + 1800초 초과 시 자동 분할, 선택적 노이즈 제거)는 기본 꺼짐, 하드 의존성 없음. diarize_media는 화자 분리를 수행합니다(pyannote 선택적 중의존성, HF_TOKEN + 모델 승인 필요).

도구

설명

유형

merge_audio

다중 파일을 16kHz mono wav로 병합(FFmpeg concat)

MCP 도구

오디오 전처리

16kHz 정규화 + 초장 자동 분할(setup ②에서 활성화)

구성

diarize_media

화자 분리(회의록 / 다중 인물 팟캐스트)

MCP 도구

8 🗂️ 작업 관리와 정리

각 작업마다 폴더 하나 note_results/{task_id}/: raw/(다운로드 미디어) + gen/(전사/노트/프레임/내보내기) + 제어 파일; 전역 작업 색인은 SQLite video_tasks 테이블(의미론적 제목 포함). list_tasks는 모든 작업을 열거하고(의미론적 제목으로 인식), cleanup_note(dry_run=True)는 먼저 확인 후 정리, cleanup_note / cleanup_all은 작업별 / 전역 정리(기본적으로 구성과 모델 보존), health_check는 FFmpeg / 데이터베이스 / whisper 준비 상태를 확인합니다.

flowchart TB
    DATA["data/ 数据根"] --> R["note_results/ 任务目录"]
    DATA --> DB[("video_note.db<br/>SQLite 全局任务索引")]
    R --> T1["任务 A<br/>note_results/{task_id}/"]
    R --> T2["任务 B<br/>…"]
    R --> T3["任务 C<br/>…"]
    T1 --> RAW["raw/ 原始材料<br/>音视频 · 封面"]
    T1 --> GEN["gen/ 生成材料"]
    T1 --> CTRL["status.json · result.json · manifest.json"]
    GEN --> T1A["transcript.json 转写全文"]
    GEN --> T1B["note.md 成稿笔记"]
    GEN --> T1C["Assets/ 笔记内截图"]
    GEN --> T1D["frames/ 关键帧原图"]
    GEN --> T1E["srt / vtt / json 字幕导出"]
    DB -. 索引 .-> T1

도구

설명

유형

list_tasks

모든 작업 나열(전역 색인, 의미론적 제목 포함)

MCP 도구

cleanup_note / cleanup_all

작업별 정리 / 전역 정리(초기화)

MCP 도구

health_check

FFmpeg / 데이터베이스 / whisper 준비 상태

MCP 도구


🏆 모범 사례

  • 학습 및 시험 준비: 엔드투엔드 + 동영상 이해 + 자막 기반 후속 최적화로 강의를 완전히 이해.

  • 회의록: merge_audio로 분할 녹음 병합 → diarize_media 화자 분리 → meeting_minutes 스타일.

  • 강의 정독: 엔드투엔드 생성 후, agent가 전체 자막을 기반으로 정제하고 장별로 세부 내용 보완.

  • 동영상 감상: 댓글 + 코멘트 통합 활성화, 노트에 「시청자 의견」 섹션 포함.

  • 엔드투엔드: 링크 하나는 generate_note 사용(다운로드/전사/요약/댓글 전체 프로세스 내부 완료); 자료만 준비하려면 prepare_note_material 사용.

  • 실제 사례: 전체 사례 과정 기록은 examples 참조.

🤝 기여 방법

  • 기능 브랜치 → PR → dev(CI 스모크 테스트 통과 필수); dev 안정화 후 PR → main(보호 브랜치, review 필요).

  • 프로세스, 브랜치 명명 및 커밋 전 자가 점검은 CONTRIBUTING.md 참조.

🙏 감사의 말

커뮤니티와 모든 기여자분들께 감사드리며, MCP server를 등록해 주신 Glama, 그리고 모든 오픈소스 의존성과 상류 파이프라인 프로젝트의 영감에 감사드립니다.

Available Tools

22 tools
add_modelA

手动把一个模型名添加为某供应商的可用模型(供应商 /v1/models 接口不可用时用)。

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameYes
provider_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only says 'manually add' with no mention of idempotency, duplicate handling, required permissions, or side effects on existing models. This is insufficient for a mutation tool, leaving the agent guessing about edge cases.

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, compact sentence that conveys the essential purpose and usage condition. Every word adds value, with no redundant information or filler.

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 simple tool with only two string parameters and an output schema, the description covers the core purpose and trigger condition. It does not address potential failure modes (e.g., provider not found, duplicate model name), but the low complexity and presence of output schema make this acceptable. One more sentence about duplicates or validation would push it to 5.

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

Parameters3/5

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

The schema has 2 parameters (model_name, provider_id) with 0% description coverage. The description references both concepts in the sentence, giving the agent a clue about their roles, but it does not explicitly map parameter names to meanings, nor does it highlight that both are required. This partial compensation earns a 3, not lower.

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?

The description clearly states the action: manually add a model name as an available model for a provider. It specifies the resource (model) and the target (provider), and the parenthetical explains the exact scenario when this is needed, distinguishing it from sibling tools like list_models or add_provider.

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

Usage Guidelines5/5

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

The description explicitly states when to use the tool: when the provider's /v1/models API is unavailable. This implies the normal path is automatic discovery via that API, and this tool is the manual fallback. It clearly differentiates use cases without needing to list alternatives.

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

add_providerA

新增一个 LLM 供应商。type 取值参考:openai / deepseek / qwen / groq / custom。

添加后建议调用 list_models 确认模型可用,或用 add_model 手动添加模型名。
ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
typeYes
api_keyYes
base_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not mention side effects (e.g., whether an existing provider is overwritten), permission requirements, error handling, or reversibility. The only behavioral hint is the suggestion to list models after adding, which is mild context but insufficient for a mutation tool.

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 two concise sentences, front-loaded with the purpose. It includes actionable follow-up steps without unnecessary fluff. Every sentence earns its place, making it easy for an agent to parse quickly.

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?

The description covers the core action and next steps, but it lacks parameter semantics and any mention of error conditions, idempotency, or prerequisites. The presence of an output schema helps, but without annotations and with 0% schema coverage, the description remains incomplete for a tool with four required parameters.

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 schema has zero descriptions, and the description only explains the 'type' parameter with example values. The other three parameters (name, api_key, base_url) are left entirely to their names, with no added meaning. With 0% schema coverage, the description should compensate but only covers one of four parameters, leaving the rest under-specified.

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?

The description clearly states the action ('Add a new LLM provider') with a specific verb and resource. It also provides example type values (openai/deepseek/qwen/groq/custom), which helps distinguish this add operation from sibling tools like update_provider. The purpose is unambiguous and action-oriented.

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?

Provides explicit post-add guidance: call list_models to confirm availability or use add_model to manually add model names. This gives clear context on how to use the tool and what to do next. However, it does not explicitly state when not to use this tool (e.g., for updating existing providers) or name alternatives, so it loses one point.

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

cancel_noteA

取消一个进行中/排队的笔记生成任务(协作式:在下一阶段边界生效,LLM 总结时每 chunk 检查)。

返回 {ok, task_id, status, message?}。
ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It reveals that cancellation is cooperative and non-immediate, checking at each chunk during LLM summarization. It also provides the return structure. It does not mention side effects on partial outputs or idempotency, but the core behavior is transparent.

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 sentences: the first states purpose and key behavioral nuance, the second lists the response shape. No redundant words, front-loaded and efficient.

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 simple cancellation tool with one parameter and an output schema described, the description covers purpose, behavior, and response. It lacks details on error cases or whether partial results are cleaned, but these are not critical for basic usage. Overall, it is sufficiently complete.

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

Parameters3/5

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

The schema has only task_id with no description coverage. The description implies that task_id identifies the note generation task and includes it in the return, but does not add explicit details on how to obtain it or its format. Baseline 3 is appropriate given a single parameter and clear context from the tool name.

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?

Description explicitly states 'cancel an ongoing/queued note generation task' with a specific verb and resource. This clearly distinguishes it from sibling tools like get_task_status (status check) and cleanup_note (file cleanup).

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 description gives the context that cancellation is for ongoing/queued tasks and notes the cooperative timing ('takes effect at the next stage boundary'). However, it does not explicitly mention when not to use it or suggest alternatives (e.g., cleanup_note for already-completed tasks), leaving usage guidance implicit.

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

cleanup_allA

全局清理(类似恢复出厂):清空 note_results / static/screenshots / logs 的所有任务产物。

- include_config=False(默认):保留 config/(LLM key / cookie / 转写设置);
  include_config=True 时连 config/ 一起清;
- include_models=False(默认):保留 models/(已下载模型可复用,重下成本高);
  include_models=True 时连 models/ 一起清。
数据库记录(bili_note.db)不动。返回各目录清理统计 + 保留项。
ParametersJSON Schema
NameRequiredDescriptionDefault
include_configNo
include_modelsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description carries full responsibility and does exceptionally well. It explicitly lists what gets cleared (three directories), what is preserved by default (config/ and models/), what happens when flags are true, that the database is untouched, and that the tool returns per-directory statistics and retained items. This fully discloses the destructive impact.

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 concise and well-structured: an opening declarative sentence followed by two bullet points for the parameters, plus a final note on database behavior and return value. Every sentence contributes necessary information with no fluff.

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

Completeness5/5

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

For a destructive tool with no annotations and two parameters, the description is complete. It covers side effects, default safe behavior, optional destructive extensions, exclusion of the database, and the return format. The 'factory reset' analogy provides helpful mental context, and the output schema is provided separately.

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

Parameters5/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. It does so thoroughly: include_config and include_models are each explained with their defaults, effects, and rationale (e.g., models are expensive to re-download). This adds meaning far beyond the bare boolean schema.

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?

The description clearly states the tool's purpose: '全局清理(类似恢复出厂)' (global cleanup, similar to factory reset) and lists the exact resources it affects (note_results / static/screenshots / logs). This distinguishes it from the sibling tool cleanup_note, which is per-note, by emphasizing global scope.

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?

The description provides clear context for when to use this tool: it's a global cleanup affecting all task artifacts. It explains default behavior (preserving config and models) and conditions for extending cleanup via include_config and include_models. However, it does not explicitly mention alternatives like cleanup_note or state 'do not use for per-note cleanup,' so it falls short of a perfect 5.

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

cleanup_noteA

清理某个任务生成的中间产物(下载的视频/音频、转写、截图、临时文件、dl 目录等)。

- include_note=False(默认):保留最终笔记(note.md / note_dir / 便携笔记目录);
- include_note=True:连最终笔记一起删(含 manifest)。

只删除 manifest 记录 / note_results/{task_id}* / dl_{task_id} 前缀的文件,
且 resolve 校验在数据目录内(防路径穿越)。返回 {deleted, missing, errors, note_kept}。
ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
include_noteNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description fully carries the behavioral disclosure burden. It explains destructive behavior (deleting intermediate files, optionally deleting final note and manifest), safety mechanisms (only deletes manifest-recorded files and validates paths to prevent traversal), and the return structure. This is comprehensive for a deletion tool.

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 concise and well-structured: a purpose statement, parameter behavior, safety note, and return value. Each sentence contributes useful information without redundancy, making it easy for an agent to parse quickly.

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?

The description covers purpose, parameters, safety, and return value comprehensively for a tool of this complexity. Minor gaps exist, such as not specifying whether the task must be completed before cleanup or explicitly describing the task_id format, but the return field 'missing' implies handling for absent files.

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 schema has 0% description coverage, but the description compensates by explaining include_note's semantics in detail (False keeps final note, True deletes it along with manifest). task_id is implied as the task identifier but not explicitly defined; overall, the description adds substantial meaning beyond the bare schema.

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?

The description clearly states the tool's function: cleaning up intermediate artifacts (downloaded media, transcripts, screenshots, temp files, dl directory) generated by a specific task. It distinguishes from sibling cleanup_all by targeting a single task, and from get_task_files by being a deletion operation.

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 description implies the tool is used for per-task cleanup but does not explicitly state when to use it versus alternatives like cleanup_all or get_task_files. It provides contextual guidance on the include_note parameter but lacks explicit when-not or alternative tool references.

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

download_transcriber_modelA

在后台下载 whisper 模型(仅本地引擎需要)。下载中/完成后用 list_transcriber_models 查询。

ParametersJSON Schema
NameRequiredDescriptionDefault
model_sizeYes
transcriber_typeNofast-whisper

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that the download runs in the background and directs users to list_transcriber_models for progress/status, which is valuable. Yet it does not mention behavior on repeated downloads, error handling, or any resource requirements, leaving some transparency gaps.

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 two concise sentences, each serving a clear purpose: stating what the tool does and where to check results. No unnecessary words or repetition.

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?

The description covers the key context: when to use (local engine), the background execution, and how to query status. An output schema exists, so return values are not needed. However, the lack of parameter details makes the overall picture incomplete for correct invocation, especially given the tool has a required parameter.

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 input schema has no descriptions and the description does not explain model_size or transcriber_type. The only hint is the tool name and the mention of 'whisper model', but the required parameter and its allowed values are undefined. With 0% schema coverage, the description fails to compensate, giving the agent insufficient information to choose parameter values correctly.

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?

The description clearly states the action (download) and resource (whisper model), and notes it runs in the background and is only needed for the local engine. This distinguishes it from sibling tools like list_transcriber_models and list_models by specifying its unique role.

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?

The description explicitly says '仅本地引擎需要' (only for local engine), giving clear context for when to use it. It also refers to list_transcriber_models for querying status, which implies this tool is for initiating downloads rather than monitoring them. However, it does not explicitly state when not to use it or mention alternative tools for remote models.

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

fetch_commentsA

抓取 B 站视频的热门评论(供生成笔记前预览/参考,不生成笔记)。

返回 {ok, source, bvid, aid, comments: [{user, content, likes, ctime}], error}。
可用 fetch_danmaku 看弹幕汇总;generate_note 的 include_comments 可把二者注入笔记 prompt。
ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
video_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It adds useful context by stating it does NOT generate notes ('不生成笔记') and by outlining the return structure (including an error field). However, it does not explicitly disclose read-only behavior, authentication requirements, rate limits, or how errors are surfaced beyond the error field. It is moderately transparent but leaves some behavioral aspects unspecified.

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 concise: three sentences that front-load the main purpose, followed by the return format and usage guidance. Every sentence provides value, with no filler. The structure aids quick comprehension.

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?

Despite lacking parameter semantics, the description gives a strong sense of the tool's role within the ecosystem (preview for notes, alternative to danmaku, injectable into prompts) and includes the return format. Since an output schema exists, the return values are covered elsewhere. The tool has only 2 parameters, and the description is reasonably complete for its complexity, though it could be rounder with explicit parameter explanations.

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 explain the parameters. It references video indirectly ('视频' in the first sentence) but does not clarify the 'limit' parameter or its default behavior. The description adds little beyond what the schema already shows, failing to compensate for the lack of parameter descriptions.

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?

The description clearly states the tool's purpose: '抓取 B 站视频的热门评论' (fetch hot comments from Bilibili videos). It specifies the resource (B站视频), the action (抓取/fetch), and the scope (热门评论/hot comments). It also distinguishes itself from sibling tools by explicitly saying it does not generate notes, and references fetch_danmaku and generate_note as alternatives.

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

Usage Guidelines5/5

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

The description explicitly mentions the intended use case: '供生成笔记前预览/参考' (for preview/reference before generating notes). It also points to alternatives: '可用 fetch_danmaku 看弹幕汇总' (use fetch_danmaku for danmaku summaries) and 'generate_note 的 include_comments' for injecting both into note prompts. This provides clear when-to-use and when-to-use-other tools guidance.

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

fetch_danmakuA

抓取 B 站视频的弹幕汇总(供生成笔记前预览/参考,不生成笔记)。

返回 {ok, source, bvid, cid, danmaku_summary, error}。
可用 fetch_comments 看热门评论;generate_note 的 include_comments 可把二者注入笔记 prompt。
ParametersJSON Schema
NameRequiredDescriptionDefault
video_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

No annotations exist, so the description carries the burden. It discloses the 'does not generate notes' boundary and the return structure, adding meaning beyond just 'fetch'. However, it lacks details on prerequisites like valid URL format or cookie requirements, though these may be less critical for a simple fetch.

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 concise sentences front-load the main purpose and efficiently cover usage, return format, and sibling relationships. Every sentence earns its place without redundancy.

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 simple single-parameter tool with an output schema, the description is fairly complete: it states purpose, usage, alternatives, and non-side-effects. It could mention URL validation or error behavior, but the output schema likely covers return details, and the tool is straightforward.

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 schema has 1 parameter (video_url) with 0% description coverage. The tool description does not explicitly explain the parameter format or constraints, only implying it's a Bilibili video URL. The param name is self-explanatory but the description adds little beyond what the name suggests.

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?

The description clearly states the tool fetches Bilibili video danmaku summaries, with a specific verb and resource. It also differentiates from siblings by noting it doesn't generate notes and positioning itself as a preview/reference step.

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

Usage Guidelines5/5

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

Explicitly says when to use (before generating notes for preview/reference) and provides alternatives: fetch_comments for hot comments, and generate_note's include_comments to combine both. This is clear contextual guidance.

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

generate_noteA

提交一个视频链接/本地文件,异步生成 AI Markdown 笔记。

- video_url: 必填,B 站/YouTube/抖音/快手链接或本地文件路径;
- platform: 可省略,自动识别;
- quality: fast / medium / slow;
- provider_id: LLM 供应商 id(先 list_providers 查看,add_provider 新增);
- model_name: 省略时取已配置的默认模型(setup 向导设置),否则取该供应商第一个可用模型;
- format: 附加内容,如 ["toc","link","screenshot","summary"];
- style: 输出风格(minimal 精简/detailed 详细/academic 学术/tutorial 教程/xiaohongshu 小红书/life_journal 生活向/task_oriented 任务导向/business 商业风格/meeting_minutes 会议纪要);不传时用 setup ③ 配置的默认(默认 detailed);显式传入始终覆盖;
- extras: 附加到 prompt 末尾的自定义指令(如自定义笔记风格要求);内置风格用 style,自定义风格用 extras;
- include_comments / comments_limit: 是否抓取 B 站弹幕+热门评论作为参考注入 prompt(仅 B 站视频生效);不传时用 setup 默认(默认关 / 20 条);显式传入始终覆盖;
- video_understanding / video_interval / grid_size: 视频理解(需多模态模型);不传时用 setup ③ 配置的默认(默认关 / 6s);显式传入始终覆盖;
- screenshot + format 含 "screenshot": 插入图片,产出便携笔记 note.md + Assets/(相对引用);不传时用 setup ③ 配置的默认(默认关);显式传入始终覆盖;
- notes_dir: 便携笔记的输出目录(可选;缺省 BILINOTE_NOTES_DIR 环境变量,再缺省 note_results/{task_id}/)。

返回 {task_id, status, platform}。之后用 get_task_status / wait_for_note 查询结果;
SUCCESS 时 result.note_dir 指向便携笔记目录。

只需素材(转写/帧/评论,不调 LLM 总结)供自行写笔记时,用 prepare_note_material。
ParametersJSON Schema
NameRequiredDescriptionDefault
linkNo
styleNo
extrasNo
formatNo
qualityNomedium
platformNo
grid_sizeNo
notes_dirNo
video_urlYes
model_nameNo
screenshotNo
provider_idNo
comments_limitNo
video_intervalNo
include_commentsNo
video_understandingNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A5/5.0
Behavior5/5

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

With no annotations, the description fully discloses the tool's behavior: async processing, return format ({task_id, status, platform}), file output (portable notes with Assets/ folder), default fallback chains (e.g., notes_dir from env var), and scope-specific behaviors (e.g., comments only for Bilibili). It also explains overrides like 'explicitly passed always overrides defaults'.

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 lengthy but efficiently structured with a one-sentence purpose, a bulleted parameter list, and a follow-up workflow note. Each bullet covers a distinct parameter or behavior without redundancy. The front-loaded summary ensures immediate grasp of the tool's core function.

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

Completeness5/5

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

Given the complexity (16 parameters, no annotations, async behavior), the description is remarkably complete. It covers return values, asynchronous polling, alternative tools, parameter semantics, defaults, and environment variable fallbacks. An output schema exists, but the description provides all necessary context not inferable from the structured fields.

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

Parameters5/5

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

Schema has 0% description coverage, so the description carries full parameter documentation. Every parameter is explained with its role, allowed values (e.g., style enum list, format array examples), defaults, and dependencies (e.g., provider_id requiring list_providers/add_provider). This far exceeds the minimal schema information.

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?

The description opens with a clear statement: '提交一个视频链接/本地文件,异步生成 AI Markdown 笔记' (submit a video link/local file, asynchronously generate AI Markdown notes). This specifies the verb (generate), resource (AI Markdown notes from video), and async nature, clearly distinguishing it from the sibling tool prepare_note_material.

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

Usage Guidelines5/5

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

The description explicitly mentions the alternative tool: '只需素材(转写/帧/评论,不调 LLM 总结)供自行写笔记时,用 prepare_note_material' (if you only need raw materials without LLM summarization, use prepare_note_material). It also outlines the full async workflow, including using get_task_status / wait_for_note to query results, providing clear when-to-use guidance.

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

get_task_filesA

列出某任务在磁盘上生成的相关文件/目录(manifest 记录 + {task_id}* 前缀扫描)。

返回 {task_id, manifest_paths, existing},existing 是真实存在的文件/目录列表。
清理前先用它查看该任务占了哪些存储。
ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses the scan method (manifest records + prefix scan), clarifies that 'existing' is the list of actually existing files/directories (implying some recorded paths may not exist), and uses verbs like 'list' and 'view' to imply a read-only operation. This goes beyond a simple tool name.

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 three sentences long: purpose/method, return structure, and usage context. Every sentence adds value, no redundancy, and the structure is logical and front-loaded.

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

Completeness5/5

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

Despite having an output schema, the description voluntarily explains the return object {task_id, manifest_paths, existing} and its meaning. Combined with the purpose, method, and pre-cleanup use case, it is fully complete for a simple list 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?

With 0% schema description coverage, the description compensates by explaining that task_id is used as a prefix scan pattern and appears in the return object. This gives the parameter practical meaning, though it doesn't specify format or validation rules. For a simple task_id parameter, that is sufficient.

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?

The description clearly states the tool's function: listing files/directories generated by a task on disk, using manifest records and a {task_id}* prefix scan. This specific verb+resource combination distinguishes it from sibling tools like cleanup_note or get_task_status, which have different purposes.

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?

The description explicitly says to use it before cleanup to see which storage a task occupies, providing clear contextual guidance. It doesn't explicitly mention when not to use it or alternatives, but the pre-cleanup use case is a clear directive.

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

get_task_statusA

查询笔记生成任务进度。SUCCESS 时 result 含 markdown / transcript / audio_meta。

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It adds useful context by stating that on SUCCESS, result contains markdown/transcript/audio_meta. However, it does not disclose behavior on failure, whether the tool is strictly read-only, or how invalid task IDs are handled.

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 consists of two short sentences, front-loading the core purpose ('查询笔记生成任务进度') followed by a succinct result detail. There is no redundant filler.

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 an output schema present, the description does not need to enumerate return fields, but it adds a helpful note about SUCCESS. It lacks error-handling context, yet for a single-parameter read-only status query, the description is largely complete.

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 only parameter, task_id, has no schema description (coverage 0%). The description does not explain where task_id comes from or how to obtain it, only implying a connection to note generation. This is a significant gap for an agent trying to invoke the tool correctly.

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?

The description clearly states the tool's function: '查询笔记生成任务进度' (query note generation task progress). It also specifies what the result contains on SUCCESS, distinguishing it from sibling tools like wait_for_note and generate_note.

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 description implies usage for checking task progress via '查询进度', but it does not explicitly contrast with alternatives like wait_for_note. There is no clear when-to-use vs when-not-to-use guidance, leaving the agent to infer the polling pattern.

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

get_transcriber_configA

查看当前转写引擎配置(fast-whisper 本地 / groq / bcut / kuaishou / mlx-whisper 云端)与模型就绪状态。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

Without annotations, the description carries the full burden of behavioral disclosure. The verb '查看' (view) implies a read-only operation, and it mentions checking model readiness, but it does not explicitly state that no configuration is modified, nor does it describe network dependencies or output format. The description adds some transparency by indicating the scope (current config and readiness) but lacks explicit side-effect information.

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, tightly packed sentence that conveys the essential function and the set of transcribing engines covered. It is front-loaded with the main action ('查看') and avoids any unnecessary details, making it highly concise 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?

Given the tool's simplicity (no parameters, no nested objects) and the presence of an output schema, the description is nearly complete. It sufficiently describes the resource (transcriber config) and the additional aspect of model readiness. It does not explain return values, but the output schema fulfills that role, so the description meets the contextual needs for a simple getter.

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?

This tool has zero parameters, making parameter semantics non-applicable. The description correctly focuses on the tool's purpose without needing to explain parameter details. The baseline for 0 parameters is 4, and the description meets that baseline by being clear and not requiring parameter compensation.

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?

The description clearly states the tool's function: viewing the current transcriber engine configuration and model readiness status. It names specific engines (fast-whisper, groq, bcut, kuaishou, mlx-whisper) and distinguishes itself from siblings like get_task_status and list_providers by focusing on current configuration rather than tasks or provider lists.

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 description implies a read-only operational context but does not explicitly state when to use this tool versus alternatives like set_transcriber or list_transcriber_models. No exclusions or alternative naming are provided, leaving usage to be inferred from the tool's nature rather than being explicitly guided.

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

health_checkA

检查 MCP 运行环境:FFmpeg、数据库、转写器配置与本地 whisper 模型就绪状态。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing behavior. It states that it checks readiness but does not mention whether the operation is read-only, what output to expect, or whether any side effects occur. This lack of detail leaves important behavioral traits undisclosed.

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, compact sentence that front-loads the action and lists all checked components. It is concise and devoid of superfluous information.

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 checklist-style health tool with an output schema, the description covers the scope of the check and is complete enough. It could mention whether it performs remote calls or just local checks, but given the output schema exists, this is a minor gap.

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 has zero parameters, so there is no parameter meaning to convey. The baseline for zero-parameter tools is 4, and the description appropriately focuses on the tool's purpose without needing param details.

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?

The description uses the specific verb '检查' (check) and explicitly enumerates the resources being checked: FFmpeg, database, transcriber configuration, and local whisper model. This clearly defines the tool's purpose and distinguishes it from sibling tools that target individual resources like get_transcriber_config or list_models.

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 description implies a general health-check use case (checking environment readiness) but provides no explicit guidance on when to use this tool versus more specific sibling tools. The context suggests it is a first-line diagnostic, but this is not stated.

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

list_modelsA

列出某 LLM 供应商可用的模型。

优先实时请求供应商的 /v1/models 接口;接口不可用时回退到本地数据库已添加的模型。

ParametersJSON Schema
NameRequiredDescriptionDefault
provider_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It transparently explains the priority order: first try the provider's /v1/models endpoint, then fall back to local database models. This is valuable context beyond the simple 'list' operation. It does not mention side effects (none expected) or error handling, but the fallback logic is a key behavioral trait well disclosed.

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 two sentences long, front-loaded with the primary purpose, followed by a concise behavioral note. Every word earns its place; no fluff or repetition.

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?

Given the tool has only one parameter and an output schema (present but not shown), the description covers the main behavior and the fallback logic. It does not mention error cases or return format, but the output schema likely covers those. For a low-complexity list tool, this is reasonably complete.

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

Parameters3/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. It references the provider's /v1/models endpoint, implying provider_id identifies a specific provider with that endpoint. However, it does not explicitly explain the provider_id format or that it should come from a known provider list. The parameter name itself is self-explanatory, but the description adds only marginal semantics beyond the schema.

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?

The description clearly states the tool lists models available for a given LLM provider, using the specific verb '列出' (list) and resource '某 LLM 供应商可用的模型'. It distinguishes itself from sibling tools like list_providers (which lists providers) and add_model (which adds models).

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?

The description provides clear context: use this tool to retrieve models for a provider. It does not explicitly name alternatives, but the fallback behavior (real-time API vs. local DB) gives the agent an understanding of what to expect. No exclusions are stated, but the use case is clear from the description and sibling tool names.

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

list_providersA

列出已配置的 LLM 供应商(id、名称、类型、启用状态、api_key 掩码)。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'api_key mask', which is a useful transparency detail, but omits any explicit read-only statement, authentication requirements, or side effects. The verb 'list' implies non-mutating, but lacks deeper context.

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?

One concise sentence, front-loaded with the action 'List' and immediately clarifies the resource and relevant fields. No superfluous content.

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 simple list operation with 0 parameters and an output schema present, the description sufficiently covers what the tool does and the key attribute of the returned data (api_key mask). Missing explicit behavioral disclaimers, but overall adequate.

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 has zero parameters, so the description has no parameter semantics to add. Baseline for 0 params is 4; the description is appropriately minimal.

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?

Description states 'List configured LLM providers' with fields, clearly distinguishing from sibling tools like add_provider, update_provider, and list_models. The verb 'list' is specific and the resource is 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?

Description implies usage for viewing providers but does not explicitly compare with alternatives like list_models or mention when not to use it. No exclusions or alternative tool references.

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

list_transcriber_modelsA

列出本地 whisper 模型(fast-whisper)的下载状态。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. 'List' implies a read-only operation, and 'local' suggests it inspects local state, but it doesn't explicitly state side effects, return behavior, or whether any configuration is required. This is adequate for a simple query, but lacks depth.

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 that conveys the essential purpose without waste. It's concise and well-structured.

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?

Given the low complexity, empty input schema, and presence of an output schema, the description is reasonably complete. It covers what the tool does, and the output schema likely documents the return format. However, it could mention how this differs from 'list_models' to fully contextualize usage.

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 has zero parameters, so the schema is trivially complete. The description doesn't need to explain parameters, and there's no ambiguity. Baseline for 0 params is 4.

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?

The description clearly states the tool lists the download status of local whisper models (fast-whisper). The verb 'list' is specific, the resource is well-defined, and it distinguishes itself from sibling tools like 'list_models' by focusing on transcriber models and their download status.

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 description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, exclusions, or scenarios (e.g., checking before download). Without this, the agent must infer usage from the tool name alone.

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

prepare_note_materialA

提交一个视频链接/本地文件,异步产出「素材包」:转写全文+分段、可选视频帧(file:// 图片)、 可选 B 站弹幕/评论、音视频本地路径。不调用 LLM 总结,供 AGENT(Claude Code)读取素材自行写笔记。

- video_url: 必填,B 站/YouTube/抖音/快手链接或本地文件路径;
- platform: 可省略,自动识别;
- video_understanding / video_interval / grid_size: 是否抽帧 + 截帧间隔(秒)+ 网格大小
  (如 [3,3]);默认关(不抽帧)。开启后 result.frames 是持久化帧图片的 file:// 绝对路径;
- include_comments / comments_limit: 是否抓取 B 站弹幕+热门评论(仅 B 站视频生效;默认关 / 20 条)。

不需要配置 LLM 供应商/模型。返回 {task_id, status: PENDING, kind: material}。
之后用 get_task_status / wait_for_note 查询;SUCCESS 时 result 含
{kind: material, title, transcript, frames, comments_danmaku, video_path, audio_path}。
需要 AI 生成结构化 Markdown 笔记请用 generate_note。
ParametersJSON Schema
NameRequiredDescriptionDefault
platformNo
grid_sizeNo
video_urlYes
comments_limitNo
video_intervalNo
include_commentsNo
video_understandingNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the disclosure burden. It discloses the async behavior (returns PENDING), the optional frame extraction with file:// paths, platform-specific behavior (Bilibili-only comments), and default off for frame extraction. It also clearly states no LLM is invoked. It lacks details on error states or rate limits, but for this tool the coverage is substantially above average.

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?

The description is relatively long but well-structured with bullet points that map to parameters. Every sentence provides useful information, including intended usage, defaults, and result format. It is not overly verbose despite covering many optional parameters, though it could be slightly more concise by omitting the result fields since an output schema exists.

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?

Even with an output schema present, the description details the return shape ({task_id, status: PENDING} and SUCCESS result fields) which is helpful for understanding the async flow. It also mentions the follow-up tools, making the workflow clear. Minor gaps: no mention of failure/error responses, but overall context is sufficient for an agent to use it correctly.

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

Parameters5/5

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

Despite 0% schema description coverage, the description manually explains every parameter: video_url (required), platform (auto-detect), video_understanding/video_interval/grid_size (frame extraction semantics with defaults), and include_comments/comments_limit (Bilibili-only, default 20). It adds meaning to defaults and conditions, fully compensating for the schema lacking descriptions.

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?

The description clearly states the tool's function: it submits a video link/local file and asynchronously produces a material package (transcript, frames, comments, paths). It distinguishes itself from generate_note by explicitly noting it does NOT call LLM and is for AGENT to read material. This makes the purpose unambiguous and differentiates it from sibling tools.

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

Usage Guidelines5/5

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

The description explicitly says '需要 AI 生成结构化 Markdown 笔记请用 generate_note' (use generate_note for AI-generated notes), clearly directing to the alternative. It also instructs to use get_task_status / wait_for_note for querying results, and mentions that no LLM provider/model configuration is needed. This provides strong when-to-use and follow-up guidance.

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

set_transcriberA

切换转写引擎。

transcriber_type: fast-whisper(本地,需下载模型)/ groq(云端)/ bcut / kuaishou / mlx-whisper。
切到 fast-whisper 时可用 whisper_model_size 指定模型尺寸(tiny/base/small/medium/large-v3)。
ParametersJSON Schema
NameRequiredDescriptionDefault
transcriber_typeYes
whisper_model_sizeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations, the description carries burden for behavior disclosure. It discloses that fast-whisper requires a model download and that whisper_model_size only applies to that engine. However, it does not state whether the switch persists across sessions, affects ongoing tasks, or requires prior model installation for other engines. These gaps leave some behavioral ambiguity.

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 two sentences, front-loaded with the primary action, and each sentence adds distinct value: the first defines the tool and its options, the second clarifies a conditional parameter. No redundancy or filler.

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

Completeness5/5

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

For a simple setter tool with two parameters and a straightforward purpose, the description covers the main function, the valid values, and the conditional behavior of the optional parameter. The output schema exists and need not be explained. The sibling context further clarifies this tool's place in the workflow.

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?

Schema coverage is 0%, but the description compensates by enumerating valid values for transcriber_type and explaining that whisper_model_size is optional and only relevant when switching to fast-whisper, with a list of model sizes. This adds meaningful guidance beyond the bare string fields in the schema.

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?

The description starts with a clear verb '切换转写引擎' (switch transcription engine), specifying the exact resource being modified. It lists distinct engine options (fast-whisper, groq, bcut, kuaishou, mlx-whisper), differentiating it from sibling tools like get_transcriber_config or download_transcriber_model, which query or download rather than switch.

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?

The description provides context on when to use this tool: whenever switching between transcription engines. It further clarifies that switching to fast-whisper may require prior model download and that whisper_model_size is available only in that case. It does not explicitly mention alternatives or exclusions, but the sibling set makes the intended use unambiguous.

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

update_providerA

更新 LLM 供应商配置(base_url / name / enabled 等非敏感字段)。

填 api_key 建议走对话外通道(更安全):用户在独立终端执行
`bilinote-mcp providers set <provider_id> --api-key '...'`。
本工具也接受 api_key(给明确接受 key 经过对话的用户用);改非敏感字段不受限。
ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
api_keyNo
enabledNo
base_urlNo
provider_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are present, so the description carries the full burden. It adds useful context about security (api_key should prefer out-of-band) and confirms non-sensitive fields are unrestricted. However, it does not disclose behavioral details such as whether updates are partial or full, what happens on invalid provider_id, or any immediate effect of changes.

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 tight two-sentence structure: first states the core purpose with example fields, second provides crucial security guidance. No wasted words, and the most important operational detail (api_key alternative) is front-loaded in the second sentence.

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 simple update tool with an output schema, the description adequately covers key operational context: purpose, sensitive-field handling, and restrictions. Minor gaps remain (e.g., no mention that all parameters except provider_id are optional nullable, though this is visible in the schema), but overall it is sufficiently complete.

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

Parameters3/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. It mentions base_url, name, enabled, and api_key, adding meaningful context (sensitive vs non-sensitive). However, provider_id (the required parameter) is not explained, and no per-parameter format or valid value constraints are given beyond what the schema shows.

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?

The description clearly states the tool updates LLM provider configuration, listing specific non-sensitive fields (base_url, name, enabled). It uses a specific verb (更新) with a resource (LLM 供应商配置), and is easily distinguished from siblings like add_provider and list_providers.

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

Usage Guidelines5/5

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

Provides explicit guidance on when to avoid using this tool for api_key, recommending an alternative out-of-band command (`bilinote-mcp providers set`). It also clarifies the condition under which using this tool for api_key is acceptable, giving clear usage boundaries.

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

validate_urlA

判断视频链接属于哪个平台,以及是否受支持。

支持:bilibili(含 b23.tv)、youtube(含 youtu.be)、douyin、tiktok、kuaishou、本地文件路径。

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the supported platforms and local file paths, which is useful context. However, it does not mention the return format, what happens for unsupported URLs, or any validation side effects. The output schema likely covers return values, but more behavioral detail (e.g., 'this is a read-only check') would improve clarity.

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 concise, with exactly two sentences: first stating the purpose, second listing supported inputs. It is front-loaded and every word earns its place with no filler or redundant information.

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 simple single-parameter validation tool with an output schema, the description is largely complete: it states the purpose, enumerates supported platforms, and notes local paths. It does not explain what the output will look like, but the output schema can handle that. It could mention error/unsupported behavior, but that is a minor gap given the tool's simplicity.

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 schema contains only a bare 'url' field with no description (0% schema coverage). The description compensates by clarifying that the parameter accepts URLs from the listed platforms plus local file paths, implying the accepted format. It adds significant meaning beyond the schema, though it could be more explicit about expected URL formats (e.g., with or without protocol).

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?

The description explicitly states the tool determines the platform and support status of a video link, and lists all supported platforms (bilibili, youtube, douyin, tiktok, kuaishou, local file paths). This is a specific verb+resource with clear scope and distinguishes it from all sibling tools, which focus on tasks, providers, and transcriber models.

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 implied: any video URL can be passed to check its platform and support. The description does not explicitly say when to use this tool versus alternatives, but sibling tools have no overlap, so no exclusions are necessary. The lack of explicit scenario guidance (e.g., 'use before downloading') makes it adequate but not proactive.

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

wait_for_noteA

阻塞轮询笔记生成任务直到完成(或超时)。长视频可能超过 timeout,可用多次调用续等。

返回与 get_task_status 相同的结构,SUCCESS 时 result 含最终 Markdown。
ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
timeoutNo
poll_intervalNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral disclosure burden. It reveals that the tool blocks, has a timeout, can be resumed with repeated calls, and returns the same structure as get_task_status with final Markdown in the result on SUCCESS.

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 concise and front-loaded: the first sentence states the core purpose, the second adds usage nuance and return value. Every sentence adds value with no fluff.

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?

The description covers the essential behavior, return structure, and a specific usage scenario (long videos). Minor gaps exist: 'poll_interval' is not explained, and timeout/error handling details are only partially specified.

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 only indirectly explains the 'timeout' parameter via the long-video remark. 'task_id' is inferable from context but never explicitly defined, and 'poll_interval' is entirely undocumented, including units or purpose.

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?

The description clearly states the tool's action: blocking/polling a note generation task until completion or timeout. It distinguishes itself from the sibling get_task_status by emphasizing the blocking behavior and the ability to call multiple times for long videos.

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?

It provides clear usage context: for long videos, the task may exceed timeout, so the tool can be called repeatedly to continue waiting. It doesn't explicitly mention when not to use it or name alternatives, but the blocking vs. non-blocking distinction is implied.

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. 8 tool updatesv0.1.1
    • Addedcancel_note
    • Addedcleanup_all
    • Addedcleanup_note
    • Addedfetch_comments
    • Addedfetch_danmaku
    • Changedgenerate_note5 fields changed
      • addedInput schema / properties / comments_limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Comments Limit"
        +}
      • addedInput schema / properties / include_comments
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Include Comments"
        +}
      • addedInput schema / properties / screenshot / anyOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / screenshot / default
        Previous value: -falseNew value: +null
      • removedInput schema / properties / screenshot / type
        Removed value: -"boolean"
    • Addedget_task_files
    • Addedprepare_note_material
  2. 15 tool updatesv0.1.0
    • First observedadd_model
    • First observedadd_provider
    • First observeddownload_transcriber_model
    • First observedgenerate_note
    • First observedget_task_status
    • First observedget_transcriber_config
    • First observedhealth_check
    • First observedlist_models
    • First observedlist_providers
    • First observedlist_transcriber_models
    • First observedset_downloader_cookie
    • First observedset_transcriber
    • First observedupdate_provider
    • First observedvalidate_url
    • First observedwait_for_note

TDQS

A3.9/5.0

Scored across 22 tools

Disambiguation4/5

Most tools have clearly distinct purposes, but pairs like get_task_status/wait_for_note and generate_note/prepare_note_material overlap in function (both handle async video processing). Descriptions are detailed enough to mitigate confusion, but not entirely eliminate it.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern (e.g., list_providers, generate_note, add_provider). Minor variations in verb choice (fetch vs list vs get) don't break the overall predictable naming scheme.

Tool Count3/5

At 22 tools, the server feels heavy, though the breadth is justified by covering both user-facing note generation workflows and backend configuration (providers, transcription, cleanup). It sits at the upper boundary of what's considered reasonable.

Completeness3/5

The core lifecycle for generating notes is well covered (submit, monitor, cancel, cleanup), but there are notable gaps: no tool to list all tasks, and no MCP tool to configure default settings like default style or model (relying on a setup wizard outside the server). This makes some workflows less self-contained.

Maintenance

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers