Skip to main content
Glama
54yyyu
by 54yyyu

zotero_get_page_layout

Detect candidate figure and table regions on a PDF page and return their normalized bounding boxes, enabling precise area annotations on detected content instead of guessed positions.

Instructions

Detect candidate figure/table regions on a PDF page and return their normalized bounding boxes, so area annotations can be placed on detected content instead of guessed positions. ALWAYS call this before zotero_create_annotation's area mode unless exact coordinates are already known. Returns each region's bounding box (x, y, width, height in [0, 1]), source (image/drawing/table/merged), associated caption (e.g. 'Figure 3: ...'), confidence level, and a ready-to-paste zotero_create_annotation call. Note: detection is geometric — boxes cover the graphical core of a figure/table; text labels inside figures or unruled table headers may fall outside the box. Confidence reflects caption matching, not box completeness. attachment_key: PDF attachment key — NOT the parent item key (use zotero_get_item_children to find attachments). page: 1-indexed page number (page 1 is the first page). Scope: PDFs only — EPUB attachments are NOT supported. Read-only: works in both local and web API modes. Example: zotero_get_page_layout(attachment_key='NHZFE5A7', page=7).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageYes1-indexed PDF page number
attachment_keyYesPDF attachment key (e.g., "NHZFE5A7")

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior5/5

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

Despite no annotations being provided, the description thoroughly discloses behavior: it's read-only, works in local and web API modes, detection is geometric (boxes cover graphical cores), and confidence reflects caption matching rather than box completeness. It also flags the limitation that text labels inside figures or unruled headers may fall outside boxes. This fully compensates for the absence of 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?

Well-structured with clear sections covering output, usage rule, caveats, parameters, scope, mode support, and a concrete example. Somewhat longer than the minimum, but every sentence adds information about limitations, scope, or usage that isn't obvious from the schema. The example call is valuable for grounding.

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 moderate complexity (geometric detection with nuanced caveats about caption matching and box coverage), the description is remarkably complete. It covers the output schema components, usage ordering, scope limitations, read-only guarantee, and a runnable example—all without needing to restate the output schema fields since an output schema exists.

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% since both parameters (attachment_key and page) are documented in the schema. The description adds useful context about what attachment_key must NOT be (parent item key) and clarifies page is 1-indexed with page 1 as first page, which adds small value beyond the schema's terse descriptions. Baseline 3 is appropriate since schema carries most of the burden.

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 (detect), resource (figure/table regions on a PDF page), and specific output (normalized bounding boxes). It explicitly distinguishes from sibling tools by framing it as a precursor to zotero_create_annotation's area mode, making its unique role in the toolset obvious.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states ALWAYS call before zotero_create_annotation's area mode unless exact coordinates are known, names the sibling alternative (zotero_create_annotation), and clarifies scope exclusions (EPUB not supported). It also differentiates attachment_key from parent item key, clearing up a common usage pitfall.

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

Install Server

Other Tools

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/54yyyu/zotero-mcp'

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