Skip to main content
Glama

download_book

Idempotent

Downloads a selected Z-Library candidate as EPUB or PDF, validates the file, and optionally sends it to CWA for ingestion.

Instructions

从显式选择的 Z 候选下载 EPUB/PDF 原文件并在 MCP 内校验。start 需要 request_id、candidate_id、required_format,默认 save_to_cwa:true,将同一文件自动交给 CWA;仅下载用 false。get_task.download.status 为 available 后可用 get_download_url 获取无需账号认证的书源链接,由 Agent 的 HTTP 工具保存并读取。collection 独立报告入库结果。collect 用 task_id 将未过期缓存补入 CWA;retry/cancel 使用 task_id。取票不明或链接过期不自动重新消耗额度。不交付 CWA 转换后的文件。

Input Schema

NameRequiredDescriptionDefault
actionNostart
task_idNo
request_idNo
save_to_cwaNo
candidate_idNo
required_formatNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.3.0

TDQS

A4/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnly false, idempotent true, openWorld true, destructive false), so the bar is lower, yet the description still adds real value: in-MCP validation, automatic handoff of the same file to CWA, the fact that CWA-converted files are NOT delivered, and that unclear tickets or expired links do not re-consume quota. That quota and delivery-boundary context is not inferable from annotations.

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

Conciseness4/5

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

It is a single dense paragraph but front-loads the core purpose and proceeds through actions, parameters, and behaviors without filler. For a four-action tool it is appropriately sized, though the density of concerns in one block slightly reduces scanability.

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?

An output schema exists, so return values need not be explained, and the description still covers action semantics, parameter roles, CWA integration, quota behavior, and the delivery boundary. It is complete enough for correct invocation of a complex multi-action tool, with only sibling-level routing left implicit.

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 description coverage is 0%, so the description must carry the load, and it documents the roles of request_id, candidate_id, required_format, save_to_cwa (default true), and task_id per action. The action enum values (start/collect/retry/cancel) are each described. It could state format/type constraints more precisely, but coverage is otherwise strong.

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

Purpose4/5

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

The opening sentence states a specific verb and resource (download EPUB/PDF original files from explicitly selected Z candidates) and adds in-MCP validation. It differentiates itself from siblings by describing the get_download_url handoff and the CWA integration. It loses a point only because the purpose is interleaved with per-action and parameter detail rather than crisply isolated.

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 explains the per-action conditions (start requires request_id/candidate_id/required_format; collect/retry/cancel use task_id) and when to use save_to_cwa:false for download-only. It routes the agent to get_download_url once get_task.download.status is available. It never explicitly contrasts with acquire_book or search_books, so the sibling routing is incomplete.

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