Skip to main content
Glama

goodnotes_read_text

Reads typed text at a point on the preview canvas and returns a targetId for guarded replacement or rich-text edits. Set expectedKind to sticky or shape to open its native text editor.

Instructions

Read typed text at a point relative to the preview canvas. Set expectedKind to sticky or shape to enter its native text editor; an unfilled shape requires a point on its border. Returns a targetId for guarded replacement or rich-text edits. No handwriting OCR.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "viewId": "<viewId>",
      "x": "<x>",
      "y": "<y>"
    },
    "name": "goodnotes_read_text"
  }
}

Input Schema

NameRequiredDescriptionDefault
xYes
yYes
viewIdYes
expectedKindNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.21.1

TDQS

A4.2/5.0
Behavior4/5

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

Annotations mark this readOnlyHint=false and openWorldHint=true, and the description explains why reading is not read-only: it can enter a native text editor. It also discloses the returned targetId and its purpose ('guarded replacement or rich-text edits') plus the unfilled-shape geometry constraint — real context beyond the annotations, though editor state persistence and failure modes are unstated.

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?

Four short sentences, front-loaded with the core action, then the kind-switch, then the edge case, then the return value. Every clause carries distinct information and nothing is repeated from the schema.

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?

No output schema exists, and the description does name the return value (targetId) and its downstream use, which covers the main return concern. The remaining gaps are the undocumented text-box enum value and the meaning of viewId, minor for a point-based read tool but not trivial given 0% schema coverage.

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

Parameters3/5

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

Schema description coverage is 0%, so the description carries the burden and only partly does: it explains expectedKind's sticky and shape values but omits the documented 'text-box' enum member, and never clarifies viewId or why x/y are constrained to fractional ranges near the canvas edge.

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?

States a specific verb and resource ('Read typed text at a point relative to the preview canvas') and immediately scopes the target to typed text only, explicitly excluding handwriting OCR. An agent can distinguish this from goodnotes_read_handwriting and goodnotes_copy_text_object without opening either schema.

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?

Gives a concrete conditional: set expectedKind to sticky or shape to enter that object's native text editor, and notes the unfilled-shape edge case requiring a border point. The 'No handwriting OCR' clause implicitly routes to the handwriting sibling, though it never names the alternative explicitly or states a positive 'use this when' trigger.

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