Skip to main content
Glama
albertm88

pdf-rescue-mcp

by albertm88

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation2/5

    Several tools have overlapping functions: rescue_pdf serves as a catch-all that duplicates diagnosis, planning, extraction, and monitoring; extract_book_text and extract_book_background are nearly identical; diagnose_pdf, inspect_pdf_text_layer, and plan_pdf_job all analyze PDFs with different angles. Agents will likely misselect among these.

    Naming Consistency5/5

    All 26 tools use a consistent snake_case verb_noun pattern (e.g., get_job_status, cancel_job, start_ocr_capacity_profile), which is highly predictable and easy to follow.

    Tool Count2/5

    26 tools is above the 25 threshold, and the count feels inflated by redundant tools like extract_book_text/extract_book_background and four separate OCR capacity profiling tools. The core purpose could be served with fewer, better-differentiated tools.

    Completeness4/5

    The tool set covers the full lifecycle of PDF diagnosis, extraction, monitoring, recovery, quality auditing, and history sharing, which is thorough. Minor gaps exist, such as no way to delete glossary entries or repair corrupted PDFs directly, but these are workaroundable.

  • Average 3.7/5 across 26 of 26 tools scored. Lowest: 2.7/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 9 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under GPL 3.0.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • 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 state whether the operation is read-only, whether it modifies the PDF, what happens with password-protected files, or any side effects. The verb 'inspect' implies read-only, but this is not explicitly disclosed. It also fails to mention potential errors or limitations.

    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 core purpose without wasted words. It is front-loaded and appropriately sized for the tool's function, earning high marks for efficiency.

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

    Completeness2/5

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

    While the output schema exists and covers return values, the description is too sparse for a tool with three parameters and no parameter documentation. It does not explain how password and max_pages affect the inspection, what constitutes a 'complete usable text layer', or when to use the tool. This makes the tool incomplete for an agent to use correctly.

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

    Parameters1/5

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

    The schema has no parameter descriptions (coverage 0%), and the description provides no explanation of the 'path', 'password', or 'max_pages' parameters. The description does not compensate for the lack of schema metadata, leaving the agent with no understanding of what each parameter means or how they affect behavior.

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

    Purpose4/5

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

    The description clearly states the tool's purpose: to determine whether a PDF contains a complete usable text layer and to identify scanned, mixed, damaged, and password-protected PDFs. It uses a specific verb ('inspect') and a clear resource (PDF text layer), and the scope is distinct enough from sibling tools, though it does not explicitly differentiate itself from siblings like 'diagnose_pdf'.

    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 does not mention prerequisites, when this inspection is appropriate, or which sibling tools to use instead in other scenarios. This leaves the agent without context for selecting this tool over similar ones.

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

  • Behavior3/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It does reveal one key behavior: by default, local paths are redacted ("默认脱敏本地路径"). However, it does not disclose side effects like file writes to output_dir, whether it modifies or deletes anything, or the impact of include_sensitive. Thus it provides some but incomplete transparency.

    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 a single concise sentence, front-loaded with the main action and outputs. It avoids redundancy and is easy to parse. However, it lacks any structural elements like bullet points or sections, which could improve clarity for a multi-format tool, but for its length it is efficient.

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

    Completeness2/5

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

    Despite having 4 parameters and an output schema, the description is minimal. It does not explain the default output location when output_dir is null, the meaning of max_records, or how the generated files should be consumed. The tool's role versus get_processing_history is also unaddressed, making it incomplete for a file-generating tool.

    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 description provides no explanation of the parameters root, output_dir, max_records, or include_sensitive. Schema description coverage is 0%, so the description must compensate but fails to do so. The only indirect reference is to 'default redaction,' which relates to include_sensitive's default false, but this is not explicit.

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

    Purpose4/5

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

    The description clearly states the tool's function: generating shareable processing history files in JSON, Markdown, and HTML formats ("生成可分享的处理历史JSON、Markdown和HTML文件"). It mentions the default redaction of local paths, which adds specificity. However, it does not explicitly contrast with sibling tools like get_processing_history, so it lacks distinct sibling differentiation.

    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 gives no guidance on when to use this tool versus alternatives such as get_processing_history or other history-related tools. There is no mention of use cases, prerequisites, or exclusion criteria. The only implicit signal is the word 'shareable,' but that is not enough for effective tool selection.

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

  • 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. It only states a read operation but does not disclose whether any side effects occur, what job state is required, or how errors are handled. There is no additional behavioral 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?

    The description is a single concise sentence with no fluff. It is front-loaded and easy to scan.

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

    Completeness2/5

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

    Although an output schema exists, the description is too minimal. It fails to provide the job context, parameter semantics, or any usage instructions, leaving the agent without enough information to invoke the tool correctly beyond basic name guessing.

    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 has zero description coverage and the description does not explain the parameters. The meaning of include_blocks is especially ambiguous, as the description mentions '识别块' (recognition blocks) but does not link it to the optional parameter.

    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 ('读取'/'reads') and the specific resource (the specified page) and what data it retrieves (recognized text, confidence, blocks, warnings). This distinguishes it from sibling tools like export_page_image_evidence, which deals with images. The verb and object are specific.

    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 offers no guidance on when to use this tool versus alternatives or any context about prerequisites. It does not mention that it belongs to a job context or how it differs from inspection tools like inspect_pdf_text_layer.

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

  • Behavior2/5

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

    With no annotations, the description carries the full burden but only discloses that passwords will not be written to records. It does not state whether the tool is read-only, whether it modifies the PDF or job state, or what side effects may occur.

    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 structured sentence that front-loads the purpose and adds a concise security-related note. Every clause earns its place with no redundancy.

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

    Completeness2/5

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

    An output schema exists, so return values are covered, but the description lacks parameter semantics, usage context, and side-effect disclosure. For a tool with 4 parameters and no annotations, this is not sufficiently complete for correct selection and invocation.

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

    Parameters2/5

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

    Schema description coverage is 0%, and the description only mentions the password parameter (stating it won't be persisted). It does not explain path, max_seconds, or target_quality semantics, leaving most parameters underspecified.

    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: planning a PDF processing route that balances speed and quality based on current device and PDF state. This is specific and distinguishes it from sibling planning tools like plan_ocr_capacity_profile or get_iteration_plan.

    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?

    No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or when to prefer a sibling tool, leaving the agent without decision context.

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

  • Behavior2/5

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

    No annotations are provided, so the description must carry the full burden of behavioral disclosure. It says '巡检' (inspect), implying a read-only operation, but does not explicitly state that it does not modify data, whether it requires specific job state, or if it affects running jobs. It also does not mention how many issues it returns beyond the max_issues parameter, leaving agent uncertain about side effects.

    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 a single sentence with no fluff, front-loading the purpose and findings. It is appropriately sized for an MCP tool description. However, it could be slightly more structured by adding a separate 'use when' clause, but as-is it is concise and to the point.

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

    Completeness2/5

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

    The tool has three parameters with no schema descriptions, no annotations, and only an output schema. The description covers the primary purpose but omits parameter semantics and behavioral caveats. While output schema exists to explain returns, the agent lacks sufficient information to invoke the tool correctly (e.g., what max_issues accepts, whether use_latest_rules matters). This is incomplete given the tool's complexity.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description does not explain any of the three parameters. job_dir is implied by '巡检已输出页面', but max_issues and use_latest_rules are completely unexplained. The agent cannot infer what these parameters control or how to set them correctly, which is a critical gap.

    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 verb '巡检' (inspect/audit) plus the resource '已输出页面或运行中逐页缓存' (output pages or running per-page cache), and enumerates specific issues detected (low-confidence pages, missing pages, split title residue, chart noise residue). This distinguishes it from sibling tools like diagnose_pdf or run_health_check, which focus on broader health or PDF-specific diagnostics.

    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: '已输出页面或运行中逐页缓存' indicates it works post-output or on running jobs. However, it does not explicitly mention alternatives or exclusions, such as 'use diagnose_pdf for detailed PDF issues' or 'do not use while job is still running'—though the 'running' mention hints at that. Clear context but no explicit negative guidance.

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

  • Behavior3/5

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

    With no annotations provided, the description carries full responsibility. It discloses that the tool writes an image to the audit directory and can handle password-protected PDFs, which is useful side-effect information. However, it omits other behavioral traits such as whether the original PDF is modified, overwrite behavior, or required permissions.

    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 primary action (render/save/return) and adds the password feature. There is no redundant information.

    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 tool has an output schema, so return values are covered, and the description lists the key outputs. However, it lacks context about when to use this tool and does not clarify the role of job_dir or dpi, making it only partially complete for an agent.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate. It implicitly maps 'specified page' to page_number and 'password-protected PDF' to password, but does not explain dpi or job_dir. Thus, it adds some meaning but leaves half the parameters undocumented.

    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: rendering a specified page to an image, saving it to the audit directory, and returning image path, page record, and source PDF. This specific verb-resource combination distinguishes it from sibling tools like get_page_evidence.

    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 like get_page_evidence or diagnose_pdf. It does not mention any context, prerequisites, or exclusions.

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

  • 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 and does well by revealing that OCR runs in a separate worker process, the tool returns immediately without blocking MCP, and progress is tracked via get_job_status. It does not describe potential side effects like file system writes, but for a read/extraction tool this is a meaningful transparency level.

    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 outputs and immediately followed by the key asynchronous behavior and follow-up command. Every sentence carries useful information with no filler or redundancy.

    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?

    An output schema exists, so return values are covered elsewhere. The description adequately explains the asynchronous nature and output types, but it omits parameter semantics, prerequisites, and how the mode/resume options affect extraction. Given the tool's complexity and 6 parameters, the description leaves notable gaps.

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

    Parameters1/5

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

    The input schema has 6 parameters and 0% schema description coverage, yet the description provides no explanation for any parameter. It does not clarify the meaning of mode, resume, password, max_pages, or output_dir, and even the required 'path' is only implicitly referenced as 'PDF' in the description. This leaves the agent guessing about parameter semantics.

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

    Purpose4/5

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

    The description clearly states the tool extracts PDFs into verifiable body text, segmented text, page records, and quality audits, which names the verb, resource, and output types. However, it does not explicitly differentiate itself from the sibling tool extract_book_background, which appears to serve a similar purpose.

    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?

    It provides clear context that the tool runs asynchronously and immediately returns, directing the agent to use get_job_status for progress and heartbeat. However, it does not state when to choose this tool over alternatives like extract_book_background, batch_extract_library, or plan_pdf_job, nor does it mention any exclusions or prerequisites.

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

  • Behavior4/5

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

    Annotations already declare read-only, idempotent, non-destructive. The description adds valuable behavioral context: monitoring relies on the worker process heartbeat and does not mistake the Windows wrapper PID for the OCR process. This is beyond what annotations provide.

    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 a single sentence but dense with specific fields. It is not overly long and every phrase adds value, though it is somewhat of a list and could be structured more clearly.

    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 an output schema, the description need not explain return values. It covers the key returned fields and adds a subtle liveness detail. It lacks parameter explanation, but that is partially compensated by the schema and output schema.

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

    Parameters1/5

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

    Schema description coverage is 0% and the description does not mention either parameter (job_dir, stalled_after_seconds). It gives no guidance on required values, types, or semantics, leaving the agent without additional meaning beyond the raw schema.

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

    Purpose4/5

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

    The description clearly states it reads job status for book extraction tasks, listing specific metrics. It is a specific verb+resource, but does not explicitly differentiate from sibling tools like get_batch_status.

    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 monitoring an active book extraction job, but provides no explicit guidance on when to use this tool versus alternatives. The heartbeat-based monitoring note gives context but no direct comparison.

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

  • Behavior3/5

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

    Annotations are absent, so the description carries full burden. It discloses that local full paths are hidden by default, which aligns with the include_sensitive parameter. It implies a read-only operation via '汇总' but does not explicitly state side-effect-freeness, permissions, or other behavioral traits. The added privacy note is useful but limited.

    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 core function and includes a relevant behavioral caveat. Every word earns its place; there is no filler 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?

    With 5 parameters, no annotations, and no parameter descriptions, the description must be richer to be complete. An output schema exists, so return values are covered, but the tool lacks guidance on parameter usage and selection rationale. It is minimally viable but leaves gaps for an agent to infer correctly.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate for parameter meanings. It implicitly covers root ('指定目录') and include_sensitive ('默认隐藏本地完整路径'), but leaves status, source_pdf, and max_records unexplained. While parameter names are semi-descriptive, the description adds only marginal value over 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 uses the specific verb '汇总' (summarize) with a clear resource: PDF processing history under a specified directory, including status, page count, and quality metrics. It distinguishes itself from siblings like get_job_status and share_processing_history by focusing on directory-level historical summaries.

    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?

    No guidance is provided on when to use this tool versus alternatives. It does not mention exclusions, alternatives, or context like 'use for directory-level summaries' beyond the core statement. The description lacks any usage-directed language.

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

  • 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 mentions 'sample check text layer' and 'generate inventory/suggested output', but does not explicitly state whether files are modified, whether output directories are created, or whether the scan is read-only. This leaves ambiguity about side effects. While 'scanning' implies non-destructive, the generation of output is underspecified.

    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, efficient sentence that is front-loaded with the main action ('recursively scan'). Every phrase adds meaning, and there is no fluff or repetition. It is appropriately sized for the tool's complexity.

    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 tool has 4 parameters, no annotations, and an output schema (which reduces the need to explain return values). However, the description lacks explicit usage guidance (when to use vs alternatives), fails to mention 'max_files', and leaves behavioral transparency gaps (e.g., file modification). While it covers core purpose and some parameters, it is not fully complete for an agent to reliably invoke it in all contexts.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate. It partially covers 'root' (directory to scan), 'output_dir' (suggested output directory), and 'inspect_pages' (sampling pages), but 'max_files' is not mentioned at all. The description does not clearly define parameter specifics or relationships, leaving gaps for an AI agent to correctly set parameters.

    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 a specific verb ('scan') with a clear resource ('PDF books in directory'), and states specific actions: recursive scanning, sampling text layer, generating inventory and suggested output directory. This clearly distinguishes it from sibling tools like 'inspect_pdf_text_layer' or 'batch_extract_library'. The title in Chinese also aligns with the purpose.

    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 for initial library scanning/inventory generation but does not explicitly state when to use it over alternatives. No exclusions or alternative tool recommendations are given. The context of 'recursively scanning a directory' is clear, but explicit usage guidance is missing.

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

  • Behavior3/5

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

    With no annotations, the description carries the full burden and does disclose a key behavioral trait: the activation is non-disruptive and only affects future workers. However, it does not mention whether it overwrites an existing active profile, whether it is idempotent, or what happens on invalid profile_id, leaving meaningful gaps in behavior disclosure.

    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 and front-loaded. The first sentence states the primary action and intended consumer; the second sentence immediately clarifies what it does not do. There is no filler or redundancy.

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

    Completeness3/5

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

    For a one-parameter activation tool with an output schema, the description covers the main effect and the side-effect boundary. However, it does not cross-reference plan_ocr_capacity_profile to explain how profile_id should be obtained, nor does it disambiguate from the sibling start_ocr_capacity_profile, which may cause confusion in a broader workflow.

    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 description never mentions the sole parameter profile_id. With schema description coverage at 0%, the tool description was expected to compensate, but it provides no guidance on where the ID comes from, its format, or how it relates to the 'completed baseline recommendation' mentioned in the text.

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

    Purpose4/5

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

    The description clearly identifies the action ('activate') and the target resource (the OCR capacity profile recommendation from a completed baseline). It also scopes the effect to batch workers started afterward. However, it does not explicitly contrast with sibling tools like start_ocr_capacity_profile or plan_ocr_capacity_profile, so it stops short of full distinction.

    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 states when to use the tool—after a completed baseline—and for whom (future batch workers). It also gives a clear exclusion: it will not hot-change, restart, or interrupt running workers. No alternative tool is named, so there is no explicit 'instead of X' guidance, but the context is clear.

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

  • Behavior3/5

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

    With no annotations, the description must carry the burden of behavioral disclosure. It explains the tool performs analysis (checking type, risk, ratio) and provides suggestions, which implies a read-only diagnostic behavior. However, it does not disclose whether it modifies files, requires specific permissions, or how it handles password-protected PDFs.

    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 concise sentence that front-loads the core purpose and enumerates several diagnostic dimensions. It contains no filler or redundant information, earning a high score for conciseness and structure.

    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 presence of an output schema covers return-value details, and the description outlines the key diagnostic outputs. However, the lack of parameter semantics and explicit usage context means the description is not fully complete for an agent to invoke the tool correctly in all scenarios.

    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 description coverage is 0%, and the description does not mention any of the three parameters (path, password, max_pages). While 'path' is self-explanatory, the meaning and purpose of 'password' and 'max_pages' are entirely absent, leaving the agent without critical usage 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 a specific verb '检查' (check/inspect) and clearly identifies the resource (PDF) and the aspects examined: type, garbled text risk, scanned page ratio, and recommended actions. This also distinguishes it from sibling tools that rescue, extract, or plan, making the purpose unambiguous.

    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 to diagnose a PDF before taking action, but it does not explicitly state when to use it over alternatives or mention any exclusions. No sibling tool alternatives are referenced, so guidance is only implicit from the tool's name and purpose.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries full burden. It discloses key behaviors: resumable, asynchronous (immediate return), and background execution. However, it omits details on monitoring, cancellation, or failure modes, which are relevant for a background task.

    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?

    Single sentence that front-loads the action and includes key context (resumable, immediate return, suitability for long scans). No redundant or filler content.

    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 purpose and basic behavior, but with 5 parameters and no parameter explanations, it is not fully complete for an agent to invoke correctly. The existence of an output schema reduces the need to describe return values, yet the lack of parameter semantics and monitoring guidance leaves gaps.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description does not mention any of the 5 parameters (path, mode, resume, max_pages, output_dir). It fails to compensate for the complete lack of parameter documentation, leaving the agent without guidance on how to fill the schema fields.

    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 clearly states 'start a resumable whole-book background extraction task' with immediate return of task catalog and process info. This specific verb+resource+mode distinguishes it from siblings like extract_book_text (foreground) and batch_extract_library (batch).

    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?

    Explicitly notes it is 'suitable for long-time scanning books', providing a clear when-to-use context. Does not name alternatives or exclusions, but the background/resumable nature implies a contrast with synchronous or short-run tools.

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

  • 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 explicitly states the operation does not change any running tasks, which is an important safety guarantee for a read-only tool. It does not mention authentication, freshness, or cost, but the non-mutation guarantee is the key behavioral trait and is clearly 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 a single sentence that front-loads the resource and actions, then appends the non-mutation guarantee with a semicolon. No filler or redundant phrasing; every clause contributes meaningful information.

    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 output schema likely covers the return fields, and the description names the main content categories. However, the description lacks parameter guidance and usage context, making it incomplete for an agent to invoke confidently without additional inference.

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

    Parameters1/5

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

    The input schema has one required parameter, profile_id, but the description provides zero information about it. Schema coverage is 0%, so the description should compensate but does not even mention the parameter or explain where the ID comes from or how it relates to the capacity baseline candidates.

    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 '读取' (read) and names the resource '容量基准' (capacity baseline), enumerating the exact data it returns: candidates, per-worker samples, throughput, quality gates, and suggestions. It also distinguishes itself from mutation-oriented siblings by stating it '不改变任何运行中任务' (does not alter any running tasks), clearly marking its read-only scope.

    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?

    No explicit when/when-not or alternative tool is named. The read verb and the safety note imply this is for inspection, but the description does not state when to choose it over plan_ocr_capacity_profile, start_ocr_capacity_profile, or activate_ocr_capacity_profile.

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

  • Behavior5/5

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

    With no annotations, the description fully carries the burden and excels: it reveals that the stop request is persisted, occurs at page boundaries, triggers a cross-platform process-tree cleanup if OCR becomes unresponsive, and guarantees the MCP will not be blocked. These are substantial behavioral details beyond a simple cancel operation.

    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 two sentences, with the core action front-loaded in the first sentence. The second sentence adds valuable technical context about persistence and cleanup, though it is dense; overall, it is efficient and earns its length.

    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 graceful stopping, persistence, fallback cleanup, and non-blocking behavior, and an output schema exists so return values need not be described. However, it omits edge cases like idempotency or resumability (relevant given sibling resume_job) and does not state prerequisites such as job_dir validity, leaving minor gaps.

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

    Parameters1/5

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

    Schema coverage is 0% and the description provides no explanation of the required 'job_dir' or optional 'reason' parameters. The description mentions '请求' and '用户请求' but fails to map these to the schema, leaving the agent without any guidance on parameter meanings or formats.

    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 a specific verb '安全停止' and targets a clear resource, '正在运行的书籍任务', with a precise scope, '当前页边界'. This distinguishes it from sibling tools like stop_batch, which stops batches rather than individual jobs, making the purpose unambiguous.

    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 for stopping a running book task, but it does not explicitly state when to prefer this over alternatives like stop_batch or resume_job, nor does it provide exclusions or conditions. Usage context is only implied, not clearly articulated.

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

  • Behavior3/5

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

    With no annotations, the description carries the transparency burden. It discloses the key constraints (no uncertain/cross-line replacements) and its title-scoped behavior, but does not mention whether existing rules are overwritten, permission requirements, or other mutation side effects.

    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, well-structured sentence that is front-loaded with the action and includes necessary scope and constraints without filler. It is highly concise while remaining informative.

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

    Completeness3/5

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

    For a mutation tool with four required parameters and no annotations, the description is somewhat sparse: it does not provide usage alternatives or explain rule_name. The output schema covers return shape, but overall behavioral and parameter completeness remain partial.

    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%, but the description adds meaning by indicating that wrong/right form a typo replacement pair and that title_keywords scope the rule via '书名限定词表'. However, rule_name is not semantically addressed, leaving a gap for one of the four required parameters.

    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 a specific action: based on verified page evidence, add a clear typo replacement to a title-scoped glossary. It clearly distinguishes itself from sibling tools like get_term_glossary (read-only) and other extraction/diagnosis tools.

    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 usage context: only use with verified page evidence, and explicitly excludes uncertain or cross-line replacements. It does not name alternative tools, but the when/when-not conditions are clearly stated.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full burden and delivers useful behavioral context: background scheduling, immediate return, dynamic concurrency based on CPU/memory/worker load, and support for resumable transfers. However, it does not mention potential side effects (e.g., where output files are written) or error-handling behavior, so it is not fully 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?

    The description is three short sentences, front-loaded with the primary action, and contains no redundant filler. Every sentence adds distinct value: operation, monitoring, concurrency behavior, and resume support.

    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 async workflow, monitoring approach, and dynamic resource adaptation, which is valuable for a complex tool. However, with 7 parameters and no schema descriptions, it leaves significant gaps in how to invoke the tool correctly. The output schema likely covers return values, but parameter semantics remain a clear deficiency.

    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%, yet the description does not explain any parameter by name. It only hints at root ('按目录'), concurrency ('并发数'), and resume ('断点续传'), but leaves mode, max_books, output_dir, max_workers, and max_pages_per_book undefined. This is insufficient for an agent to set parameters 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 a specific verb and resource: '按目录批量提取PDF书籍' (batch extract PDF books by directory), and distinguishes itself from siblings like extract_book_text by emphasizing batch processing and background scheduling. It also names the monitoring tool (get_batch_status), further disambiguating its 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 provides clear context: use this tool for directory-level batch extraction with immediate return and background OCR workers. It points to get_batch_status for progress monitoring, but does not explicitly state when not to use it or mention alternatives such as single-book extraction tools, so it lacks explicit exclusions.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly states that the tool only creates configuration and private sample plans, and it will mark itself as deferred if production OCR is running, ensuring it doesn't consume current task resources. This discloses non-destructive side effects and deferral behavior, though it could elaborate on additional side effects or requirements.

    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, well-structured sentence that front-loads the core action and scope, then adds two important safety behaviors. It is concise with no redundant information, earning a top score.

    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?

    Given the tool has 6 parameters, no annotations, and no parameter descriptions, the description provides a reasonable high-level overview but lacks details on what the plan contains or how parameters affect the plan. However, an output schema exists, which likely covers return values, so the description is adequate but not complete. It is a baseline-viable description with clear gaps.

    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 0% description coverage, and the description does not explicitly name or explain any parameters. It indirectly hints at 'threads' and 'workers' (likely candidates for candidate_threads and max_workers), but this is vague and insufficient for a 6-parameter tool. The description adds minimal value over the schema, so a low score is warranted.

    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: planning isolated OCR throughput benchmarks for 1/2/3/4 threads with single and multi-worker configurations. It uses a specific verb ('规划' / plan) and resource ('OCR 容量基准' / OCR capacity baseline), and distinguishes it from siblings like 'start_ocr_capacity_profile' by emphasizing this is the planning step that only creates configurations and sample plans.

    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: it plans only, creates private sample plans, and defers if production OCR is running, indicating when it is safe to run. While it does not explicitly name alternatives or exclusions, the 'planning only' orientation and deferral condition effectively guide when to use this tool versus starting or activating a profile.

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

  • 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 key behaviors: starting an independent OCR worker process, returning immediately without blocking MCP, and reusing per-page cache. This is substantial context, though it does not cover edge cases or failure modes.

    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, front-loaded sentences. The first covers the core mechanism, the second adds the non-blocking behavior, with no redundant or filler content.

    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 adequately explains the core operation but omits parameter-level details and edge cases. Since an output schema exists, return values are handled, but the 5 parameters remain unexplained, leaving the overall context somewhat incomplete.

    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 any of the 5 parameters (job_dir, mode, force, password, stalled_after_seconds). It only indirectly references the task, leaving the agent to guess the meanings and valid values of the parameters.

    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: it checks for suspected interruption and resumes from a checkpoint by reusing per-page cache. It uses a specific verb-resource pair with a distinct scope, distinguishing it from siblings like get_job_status or cancel_job.

    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 implies when to use the tool: when a task is suspected of being interrupted. It does not explicitly mention alternatives or exclusions, but the context is clear enough for an agent to infer appropriate usage.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the transparency burden. It clearly describes the tool's read-only diagnostic nature, the difference between fast and deep modes (including that fast mode skips OCR model loading), and immediate return behavior. However, it does not mention potential side effects such as PaddlePaddle initialization or error conditions.

    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 concise sentences, front-loaded with the main purpose and followed by a key behavioral note. No redundant words or unnecessary details.

    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 sufficiently covers the tool's purpose and mode behavior, and since an output schema exists, return values need not be listed. It could have added explicit guidance on when to run each mode, but for a simple health check tool it is largely 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 coverage is 100% because the only parameter 'deep_probe' has a detailed description in the schema. The tool description adds nothing beyond that, so the baseline of 3 is appropriate.

    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 states a specific action ('检查' / check) and clearly identifies the target resources (设备、内存、显卡、OCR相关依赖), while also mentioning the output (推荐处理模式). This clearly distinguishes it from sibling PDF/OCR job tools.

    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 this is a preflight health check, especially the fast mode for quick feedback, but does not explicitly state when to use versus alternatives like diagnose_pdf or plan_pdf_job. No exclusions or alternative tools are mentioned.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals key traits: it runs in the background, returns immediately, does not block MCP, and uses independent, non-overlapping private PDF page samples. This goes beyond the structured schema data.

    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: two sentences, front-loaded with the main purpose, followed by relevant behavioral details. There is no redundancy or wasted content.

    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 essential context for a simple start operation: when to run it, background execution, and immediate return. However, it leaves ambiguity about where profile_id comes from and does not point to plan_ocr_capacity_profile as a prerequisite, which is a notable gap.

    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 never mentions profile_id or explains how it relates to the planned benchmark. The parameter name is somewhat self-explanatory, but the description adds no semantic value for this required parameter.

    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 a specific action: run a planned capacity benchmark in the background when there is no production OCR. It also distinguishes this tool from siblings like plan_ocr_capacity_profile and activate_ocr_capacity_profile by emphasizing 'planned' and the background/asynchronous nature.

    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 an explicit precondition ('when the machine has no production OCR') and indicates that this is a background, non-blocking operation. It does not explicitly name alternative tools or when-not-to-use scenarios, but the context is sufficiently clear for an agent to decide.

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

  • Behavior5/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states the tool is non-destructive, only proposes auditable suggestions, and will never automatically modify OCR rules, code, or tasks. This is strong transparency for safe tool selection.

    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: two sentences, front-loaded with the primary action, and no filler. The second sentence adds valuable safety context without unnecessary detail.

    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 output schema covers return values, and the description covers purpose and safety well. However, the complete absence of parameter-level guidance and limited usage context leaves a noticeable gap for an agent selecting and invoking this tool effectively.

    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% for the three parameters, and the description does not explain job_dir, max_issues, or strategy_version. It only provides high-level context like 'current task status' and 'quality inspection,' leaving the agent to infer parameter meanings from names and defaults.

    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 generates versioned improvement suggestions based on task status, quality inspections, and regulatory events. It also explicitly distinguishes itself from modifying tools by stating it never automatically rewrites OCR rules, updates code, or reruns tasks.

    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 implies use when improvement suggestions are needed and provides a clear when-not by stating it never takes automatic actions. However, it does not name alternative sibling tools or provide explicit 'use this instead of X' guidance.

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

  • 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 transparency burden. It discloses automatic diagnosis/planning, selection of foreground vs recoverable background execution based on document type and estimated time, and real-time per-page progress updates. It does not mention failure modes or side effects, but it goes well beyond a generic statement of purpose.

    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 compact and front-loaded with the most important directive (preferred entry point, don't force user to choose internal tools). It uses four sentences with no repetition of schema details, and every clause adds functional information. This is excellent for an 11-parameter orchestrator.

    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 high complexity (11 parameters, multiple workflows, many sibling tools) and the existence of an output schema, the description covers the main invocation pattern, automatic workflow selection, foreground/background behavior, progress reporting, and the ability to query status/QC/resume/evidence through the same entry. It does not enumerate every workflow enum, but those are already described in the schema.

    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 coverage is 100%, and every parameter already has a descriptive schema entry, so the baseline is 3. The description adds minimal value by reinforcing that path and request are the primary inputs and job_dir is for existing tasks, which is already evident from the schema. It does not significantly deepen parameter understanding 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 explicitly names rescue_pdf as the preferred entry point ('首选入口') for single-PDF requests, with concrete actions: diagnose, plan, extract foreground/background, and query progress/QC/resume/evidence. It also differentiates from sibling tools by instructing the agent not to make the user select internal tools, making the orchestrator role unmistakable.

    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 clearly states when to use: for direct user requests about a single PDF, passing the path and raw request, and also for querying existing tasks via job_dir. It lacks explicit exclusions (e.g., batch/library scanning) and does not name alternative siblings, but the primary usage context is strong and actionable.

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

  • Behavior5/5

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

    Annotations already mark this as read-only, idempotent, and non-destructive. The description adds valuable interpretive context, such as explaining that per-worker details include actual page speed, heartbeat-confirmed PID, and memory metrics, and importantly warns that CPU ratio is normalized to whole-machine logical CPUs to avoid misreporting cumulative multi-core values as percentages. No contradictions with 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?

    The description is dense but each sentence carries significant information: the first defines the overall purpose and key metrics, the second details worker-level fields and the CPU normalization caveat. It is front-loaded with the main purpose, though the sentence structure is somewhat long. Overall, appropriate for the tool's complexity.

    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 presence of an output schema (so return format is already specified), the description provides supplementary interpretation and context, including the monitoring format, worker fields, and CPU calculation semantics. It covers both batch-level and worker-level aspects, making it complete for a complex monitoring tool.

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

    Parameters4/5

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

    The tool has zero parameters and schema coverage is 100% (empty schema). With no parameters, the description does not need to add parameter details, so the baseline of 4 applies. The description appropriately focuses on outputs rather than inputs.

    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 that this tool views overall batch extraction progress and enumerates specific metrics returned (book counts, timing, page counts, speed, per-worker task list). It uses a specific verb and resource scope, and its focus on batch-level plus worker-level monitoring distinguishes it from sibling tools like get_job_status.

    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 tool's use case is implied: it is for inspecting batch extraction progress. However, it does not explicitly state when to use this tool over alternatives like get_job_status or get_processing_history, nor does it mention any exclusions or prerequisites.

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

  • Behavior4/5

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

    Without any annotations, the description carries the full transparency burden. The verb '返回' clearly indicates a read-only retrieval operation, and it discloses that the glossary is '当前' (current) and '可审计' (auditable), providing state context. However, it does not explicitly state 'no side effects' or mention any access constraints, but the retrieval verb is sufficiently transparent for a getter.

    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 immediately states the tool's purpose and intended usage. It contains no filler or redundant content, earning the highest score.

    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 that this is a zero-parameter getter with an output schema already present, the description sufficiently covers what the tool does and why it would be used. It explains the 'auditable' and 'book-title restricted' nature of the glossary and ties it to the typo-correction workflow. No gaps are apparent.

    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 does not need to explain parameter details. The baseline score of 4 applies, and the description adds no parameter-related information, which is appropriate.

    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 '返回' (returns) and identifies the resource as '当前可审计的书名限定词表' (current auditable book-title restricted glossary). This clearly distinguishes it from sibling 'update_term_glossary' (which modifies) and other retrieval tools.

    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 states its intended use case: '供智能体依据页面证据补充明确错字' – for the agent to supplement typos based on page evidence. This provides clear context for when to fetch the glossary, though it does not explicitly mention alternative tools or exclusions.

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

  • Behavior5/5

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

    With no annotations, the description carries the full burden and offers valuable behavioral detail: the current book continues, only the next book is prevented. This goes beyond the basic 'stop' semantics and accurately discloses the tool's behavior.

    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 sentence with no wasted words, front-loading the action and clarifying nuance in a parenthetical. Perfectly concise and well-structured.

    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 parameterless tool with an output schema, the description fully explains the tool's behavior and side effects. It is complete for the tool's complexity and provides all necessary context.

    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 need not add parameter semantics. Baseline for 0 params is 4, and the description is appropriate without parameter 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 clearly states the tool stops batch extraction and specifies that the currently processing book will complete while no new book will start. This provides a specific verb ('stop') and resource ('batch extraction') and clearly distinguishes it from sibling tools like cancel_job or resume_job.

    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 implies when to use this tool (when you want a graceful stop after the current item) but does not explicitly mention alternatives or when not to use it. Context for usage is clear, but explicit exclusions or alternative comparisons are missing.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

pdf-rescue-mcp MCP server

Copy to your README.md:

Score Badge

pdf-rescue-mcp MCP server

Copy to your README.md:

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/albertm88/pdf-rescue-mcp'

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