Skip to main content
Glama

paragraphs_list

Read-only

List all paragraphs in a .docx with address, text, style, and layout facts in document order. Use to locate or inspect content before applying edits.

Instructions

Every paragraph with its address, text, style and layout facts (optionally the normalised text and the estimated page), in document order. heading_level is null for a body paragraph.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
docYesPath to the .docx.
limitNoMost items to return; a response is also capped at about 8,000 bytes.
pagesNoAdd the estimated `page` and `page_label` per paragraph, and `page_basis`, `rendered_marks` and `page_count` (see page.estimate).
cursorNoThe `next` value of the previous response, to continue the list.
storiesNoStories to read (default ["body"]): "notes" adds footnotes and endnotes, each after the paragraph holding its mark; "headers" adds headers and footers, after the body. Their addresses carry a prefix (fn3/p1#…, hdr1.default/p1#…).
normalizedNoAdd `normalized`, the text as `text.normalized` gives it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.5/5.0
Behavior3/5

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

readOnlyHint=true already declares the safe-read profile, so the description's added value is limited to ordering ('document order') and the heading_level null semantic for body paragraphs. It says nothing beyond the schema about pagination or the ~8,000-byte cap, which schema already carries.

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?

Two tight sentences that front-load the core promise (every paragraph with its facts) before the optional add-ons. Every clause carries information, though the final heading_level sentence is a minor output detail tacked on.

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?

With no output schema, the description usefully enumerates the returned fields (address, text, style, layout facts, normalized, page) and their semantics. It is reasonably complete for a list tool, with pagination left entirely to the cursor parameter's schema text.

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 100%, so the schema fully documents all six parameters. The description only loosely mirrors the optional normalized and pages behavior and introduces heading_level, which is an output field rather than a parameter; it adds little parameter-level meaning beyond the baseline.

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 resource (every paragraph) with its returned fields (address, text, style, layout facts) and scope (document order). An agent can tell this is a bulk enumeration rather than a single-item fetch, though it never names the sibling para_get as the alternative for one paragraph.

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?

Usage is only implied by the word 'Every' and 'in document order' – the natural read is 'use this to enumerate all paragraphs.' There is no explicit when-to-use/when-not guidance and no routing to para_get for targeted lookups, leaving the agent to infer the boundary.

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