Skip to main content
Glama
Anselmoo

io.github.Anselmoo/mcp-ooxml-ledger

by Anselmoo

Describe structure

describe_structure
Read-onlyIdempotent

Identify which parts of an Office document the session digest covers or excludes, detailing structural units like paragraphs, sheets, or slides.

Instructions

Report a session document's structure: which parts the digest covers, which it excludes, and the format's own units — paragraphs for docx, sheets for xlsx, slides (in <p:sldIdLst> order, never filesystem order) for pptx. Describes the session's working copy as opened; verify reports on the file on disk now.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
session_idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindYes
nameYes
partsYes
sheetsNo
slidesNo
documentYes
paragraphsNo
session_idYes
text_partsYes
excluded_partsYes
included_partsYes
baseline_digestYesThe canonical digest of this document AS IT WAS WHEN THE SESSION WAS OPENED, and of the working copy these results were read from — not an attestation about the file on disk right now. Call `verify` or `digest` for that.
document_may_have_changed_since_openYesTrue when the document FILE on disk no longer has the size and modification time it had when this session last touched it — so these results may describe a version that no longer exists. It reports writes from OUTSIDE this session: this server re-records both values after each of its own edits, so applying an edit here does not set it. A HINT, not a verification: it is also true after a save that changed nothing, and a rewrite that preserved both would not set it. Call `verify` for an answer about the file as it stands.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

The annotations already establish readOnlyHint and idempotentHint, so the description adds complementary behavioral detail: the tool reports on the working copy as opened rather than disk state, and it guarantees slide order follows <p:sldIdLst> rather than filesystem order. This is meaningful non-obvious behavior beyond what annotations express.

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 core purpose is front-loaded, format-specific details are compactly listed, and the verify contrast is placed exactly where it is actionable. Every clause adds useful information.

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 a single obvious parameter, a read-only annotation profile, and an output schema present, the description covers what an agent needs: scope, format-specific behavior, working-copy semantics, and the key sibling distinction. Nothing important is missing for correct invocation.

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?

The schema's only parameter, session_id, has no description (0% coverage). The description does not explicitly define session_id or explain where to obtain it, though the repeated 'session' language makes it reasonably clear the parameter identifies an opened session. This is only partial compensation for the missing schema documentation.

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 opens with a specific verb and resource: 'Report a session document's structure'. It then narrows that scope by naming exactly what structure means — digest coverage and format units for docx, xlsx, pptx. This makes the tool clearly distinguishable from siblings like verify and digest.

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?

The final sentence directly contrasts this tool with verify: 'Describes the session's working copy as opened; `verify` reports on the file on disk now.' This tells an agent when to choose describe_structure versus a likely alternative. It also relates the tool to digest by framing output as digest coverage, giving useful context for when it would be relevant.

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