Skip to main content
Glama

VideoNote-Mcp упаковывает весь конвейер «видеоссылка → многоформатные заметки» в MCP Server + Claude Code Skill: дайте агенту ссылку, и он автоматически выполнит загрузку → транскрипцию речи → понимание кадров → комментарии/отзывы → 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.

Related MCP server: tldw-mcp

📚 Документация

Полные инструкции по установке / настройке / использованию / переменным окружения / обновлению / безопасности архивированы в docs/ (в README остался только обзор):


🎬 Реальные примеры

Два сквозных реальных примера: один через прямую генерацию 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-ключа, агент сам читает транскрипцию + кадры + комментарии и пишет заметку) · кросс-интеграция нескольких источников (видео × статья × технический отчёт × открытый список) · доработка с сохранением оригинала (двойные файлы note.md / note_original.md) · LaTeX mathnote PDF (автоматическое исправление отсутствующих шрифтов / переполнения строк / дедупликация цитат). Полная запись процесса — см. examples/agent-direct-deepseek-v4-mathnote/README.md.

Пример 2 · Полностью автоматическая генерация LLM + портативный Markdown (параллельно несколько видео)

Минимальный промпт (3 ссылки Bilibili + выходная директория, ни одного параметра не указано) → полностью автоматически выполняются проверка окружения → распознавание ссылок → обнаружение провайдера/модели → подтверждение параметров → параллельная обработка нескольких видео → доработка на основе субтитров после генерации, в результате — 3 доработанные портативные заметки (note.md + скриншоты Assets/ + раздел «Мнение зрителей», с сохранением note_original.md для сравнения).

  • IELTS: разбор заблуждений + разбор четырёх разделов (аудирование/чтение/письмо/говорение) + 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 💬 Комментарии и отзывы

Собирает комментарии Bilibili и мнения из обсуждений

Параметр 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, агент сам читает транскрипцию, смотрит кадры и пишет заметку.

Инструмент

Назначение

Тип

generate_note

Одна ссылка → асинхронная генерация заметки, возвращает task_id (поддержка понимания видео / интеграции комментариев / портативных заметок со скриншотами)

MCP-инструмент

get_task_status

Лёгкий опрос статуса задачи (до SUCCESS/FAILED/CANCELLED)

MCP-инструмент

cancel_note

Кооперативная отмена активных / ожидающих задач

MCP-инструмент

prepare_note_material

Только подготовка пакета материалов (транскрипция / кадры / комментарии) для прямой генерации AGENT

MCP-инструмент

Прямая генерация AGENT (agent_direct)

Агент сам читает пакет материалов и пишет заметку, без настроенной LLM

SKILL / оркестрация Agent

1 📥 Загрузка и анализ платформы

inspect_video определяет платформу (bilibili / youtube / douyin / tiktok / kuaishou / local; для платформ вне встроенных 6 возвращает platform:"generic" и автоматически использует универсальное извлечение yt-dlp, охватывающее 1800+ сайтов) + проверяет валидность ссылки (если недействительна — сразу указывает причину) + разбивает мультисегментные видео Bilibili / плейлисты YouTube на отдельные URL для каждой серии (без загрузки). Cookie платформы передаются через ! videonote login bilibili / ! videonote setup, не через MCP. Субтитры платформы (включая AI-субтитры Bilibili) используются внутри generate_note в приоритетном порядке, отдельного инструмента нет.

Инструмент

Назначение

Тип

inspect_video

Разбирает мультисегментные / плейлисты, возвращает URL для каждой серии, который можно передать в generate_note

MCP-инструмент

2 🎙 Транскрипция речи (ASR)

Транскрипция речи (ASR) выполняется внутри generate_note: в приоритете субтитры платформы (включая AI-субтитры Bilibili), при их отсутствии — транскрипция. Движки на выбор: fast-whisper (локальный) / groq / bcut / kuaishou (облачные) / mlx-whisper (GPU на macOS Apple Silicon) / funasr (лучший для китайского, VAD + автоматическая пунктуация). Управление движками и моделями — через CLI: ! videonote transcriber set/download; просмотр состояния — get_config().

3 🖼️ Понимание видеокадров (извлечение кадров)

generate_note напрямую поддерживает параметры понимания видео: video_understanding=True + video_interval (по умолчанию 6s) + grid_size (по умолчанию [3,3]), отправляя сетку кадров мультимодальной LLM для «просмотра».

Параметр

Назначение

Тип

video_understanding / video_interval / grid_size

Извлечение кадров с интервалом + встроенная сетка кадров для мультимодальной модели

Параметр

4 💬 Комментарии и отзывы

generate_note с include_comments=True + comments_limit (по умолчанию 20) собирает частотные мнения из комментариев и обсуждений в заметку, добавляя раздел «Мнение зрителей» (требуется SESSDATA Bilibili; при сбое задача не прерывается).

Параметр

Назначение

Тип

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

Выбор стиля / портативная заметка со скриншотами

Параметр

get_config

Сводка конфигурации только для чтения (значения по умолчанию / провайдер / транскрайбер / состояние cookie), опциональная проверка подключения

MCP-инструмент

agent_direct

Агент сам читает пакет материалов и пишет заметку

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 + автоматическое разбиение длинных >1800s, опциональное шумоподавление) по умолчанию выключена, без жёстких зависимостей. 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.

  • Глубокое чтение лекций: после сквозной генерации агент дорабатывает на основе полных субтитров, дополняя детали по разделам.

  • Разбор видео: включить комментарии + интеграцию отзывов, заметка содержит раздел «Мнение зрителей».

  • Сквозной режим: одна ссылка через generate_note (весь процесс загрузки/транскрибации/резюме/комментариев выполняется внутри); только подготовка материалов — через prepare_note_material.

  • Реальные примеры: полные записи процессов — в examples.

🤝 Как внести вклад

  • Функциональная ветка → PR → dev (CI smoke-тесты должны быть зелёными); после стабилизации dev → PR → main (защищённая ветка, требуется ревью).

  • Процесс, имена веток и самопроверка перед коммитом — см. CONTRIBUTING.md.

🙏 Благодарности

Благодарим сообщество и всех контрибьюторов, Glama за включение MCP-сервера в каталог, а также все открытые зависимости и вдохновение от upstream-проектов конвейера.

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. Dates show when Glama detected each change.

  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
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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/HuangYincan/VideoNote-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server