Skip to main content
Glama

goodnotes_read_document

Read-only

Read cached PDF pages and run bounded local OCR on pages without text, then continue with nextPage/nextOffset; refresh explicitly when current content is needed.

Instructions

Read cached PDF pages, with bounded automatic local OCR for pages without text. Continue with nextPage/nextOffset; OCR/formulas need visual checking. Refresh explicitly for current content.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "goodnotes_read_document"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlNo
endPageNo
refreshNo
exportIdNo
startPageNo
maxOcrPagesNo
startOffsetNo
ocrIfMissingNo
includeImagesNo
maxCharactersNo
maxImagePagesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.21.1

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already establish read-only, non-destructive, open-world access, so the bar is lower, but the description adds real behavioral context: reads come from a cache (potentially stale), OCR is local and bounded, and OCR/formula output is unreliable enough to require visual verification. The stale-cache-plus-explicit-refresh disclosure is exactly the kind of thing annotations cannot convey.

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?

Three tight sentences with the core capability front-loaded, no filler, and the caveats ordered after the primary action. The only friction is the undefined nextPage/nextOffset reference, which adds ambiguity rather than length.

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 an 11-parameter tool with no output schema and no parameter documentation, the description covers the conceptual model (cached pages, bounded OCR, pagination continuation, explicit refresh) but leaves most parameter surface undocumented and gives no sense of the response shape that the named continuation tokens belong to. It is sufficient to understand intent, not to call it confidently with specific arguments.

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% across 11 parameters, so the description must carry the load, yet it only touches refresh, OCR bounding (maxOcrPages), and implicitly ocrIfMissing. It says nothing about url vs exportId, startPage/endPage, startOffset, maxCharacters, includeImages, or maxImagePages, and the "nextPage/nextOffset" tokens it does mention correspond to no listed parameter.

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

Purpose4/5

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

States a specific verb and resource ("Read cached PDF pages") plus the key differentiator that OCR runs locally and automatically for text-less pages. It implicitly distinguishes itself from text/handwriting readers and from search tools by scoping to cached page reads, though it never names a sibling explicitly.

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?

Gives actionable guidance on continuation ("Continue with nextPage/nextOffset") and a clear rule for when to refresh ("Refresh explicitly for current content"), which is implied when-not guidance. However, there is no guidance on when to pick this over goodnotes_read_text or goodnotes_search_document, and the continuing tokens named do not match any parameter name in the schema, leaving the caller to infer they come from the response.

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

Deploy Server

Other Tools