Skip to main content
Glama

table_get

Read-only

Read a table's grid from a .docx by table number in the main story or a paragraph address in any story, returning cells, spans, merges, and paragraph addresses.

Instructions

One table's grid: its rows of cells, each with its first grid column (col), span (w:gridSpan), vmerge (null, "restart" or "continue") and the addresses of its own paragraphs. A nested table is a table of its own, numbered after the one holding it; an empty w:tbl takes a number and has no rows. table numbers the main story only; at works in any story (a footnote's table is numbered within that footnote's story).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
atNoInstead of `table`: any paragraph address in the table, in any story (`fn3/p1#…`, `hdr1.default/p1#…`); the reply's `table` is then numbered within that story.
docYesPath to the .docx.
tableNoTable number in the main story, 1-based in document order (the `cell.table` of a paragraph row); text-box and DrawingML tables are not counted. Tables of notes, headers and footers are reached with `at`.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=true, so the description carries most of the behavioral burden and does so well: numbering rules for nested tables, the fact that an empty w:tbl still consumes a number, and story-scoped numbering. It adds no error or failure semantics (e.g., what happens for an out-of-range table number), which keeps it from a 5.

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 dense sentences with no filler; the return shape is front-loaded and the numbering rules follow immediately. Every clause conveys a constraint the agent could act on.

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?

With no output schema, the description correctly takes on the return contract — grid rows, per-cell first grid column, gridSpan, vmerge states, and paragraph addresses — plus the numbering semantics needed to interpret `table` and `at`. Nothing essential for a correct call is missing.

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%, and the schema's own descriptions largely duplicate the description's story-numbering explanation for `at` and `table`. The description adds the returned-grid shape but no new syntax, formats, or edge-case meaning for the three parameters, so the baseline 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 names the exact resource and its contents ('One table's grid: its rows of cells') and enumerates the per-cell fields (col, span, vmerge, paragraph addresses), so an agent can immediately tell this is a read of a table structure rather than of paragraphs (para_get) or a row mutation (table_row_delete). Scope limits are stated, including that text-box/DrawingML tables are not counted.

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 gives useful addressing context ('table numbers the main story only; at works in any story'), which implies how to reach non-main-story tables, but it never states at a tool level when to pick table_get over siblings like para_get or outline, nor any exclusions. Usage is inferable rather than spelled out.

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