Skip to main content
Glama
graphgrow

root-ext-docs

by graphgrow

root-ext-docs

Document-engineering MCP tool server for ROOT Workspace (and any MCP host). Twelve tools across four surfaces:

  • PDFpdf_info (which pages are text, which are scans), pdf_extract_text (page-ranged), pdf_pages_to_images (render to derived/ — where the workspace viewer and the model's image-read path pick them up), ocr_pdf (local tesseract).

  • Officedocx_extract, pptx_extract: structure-keeping markdown (headings, tables, slide notes).

  • Imagesocr_image, image_convert, image_crop, image_annotate (labelled rectangles for pointing at drawings).

  • Archivesarchive_list, archive_extract (zip-slip refused by name, size/entry caps).

Charter, binding and tested: extract and derive, never mutate sources. No tool overwrites, deletes, or edits a user's file in place; write tools refuse output paths that collide with inputs and default to derived/ beside the source.

OCR needs the system tesseract binary (brew install tesseract) and refuses by name without it. Nothing in this pack reaches the network.

Develop

uv venv && uv pip install -e ".[dev]"
.venv/bin/pytest

Related MCP server: pdf-reader-mcp

Package (signed .rootx, ADR-0018)

uv build
.venv/bin/python tools/build_pack.py   # --unsigned for a test build

Available Tools

12 tools
archive_extractA
Idempotent

Extract an archive (or just members) into out_dir — default derived/<name>/ beside it, and NEVER anywhere else: absolute paths, .. members, and links are refused by name (zip-slip), entry count and total size are capped so a zip bomb is an error, not an outage.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
membersNo
out_dirNo

TDQS

A4.6/5.0
Behavior5/5

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

The description adds significant behavioral context beyond annotations: default output location, zip-slip prevention (refusing absolute paths, '..', links), entry count and size caps to prevent zip bombs. It covers security and error handling thoroughly.

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?

The description is a single, well-structured sentence that front-loads the main action and then details constraints and safety measures. No redundant information; every part is valuable.

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?

Given no output schema and 3 parameters, the description covers security and default behavior but lacks details on return values, error handling for non-zip-bomb issues, and handling of different archive formats. It is mostly complete but could be slightly richer.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate. It explains the default behavior for `out_dir` and mentions the optional `members` parameter. However, it does not explicitly describe what `members` does (filtering specific entries) beyond a brief mention, leaving some ambiguity.

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 tool's purpose: 'Extract an archive (or just `members`) into out_dir'. It specifies the default output location and constraints, distinguishing it from sibling tools like archive_list which lists contents, and other extraction tools for different formats.

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?

The description implies usage for extracting archives and contrasts with listing via sibling name archive_list. It provides clear context about the tool's capabilities and limitations (e.g., security checks), but does not explicitly state when not to use it or list alternatives.

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

archive_listA
Read-only

List a zip/tar archive's entries (name, size, kind) plus the total uncompressed size — look before extracting. Bounded at 1000 entries; truncation is marked.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already state readOnlyHint=true, and the description adds crucial behavioral details: a limit of 1000 entries with truncation marked. This goes beyond the annotations and ensures the agent knows the limitation.

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?

The description is two sentences, front-loads the action and output, and contains no extraneous information. Every part earns its place.

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 tool simplicity (one parameter, no output schema, annotations present), the description fully covers purpose, behavior limitations, and return information. Nothing essential is missing.

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

Parameters4/5

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

There is one parameter 'path' with 0% schema description coverage. The description compensates by implying the path is to the archive file, adding meaningful context beyond the schema's bare 'Path' title. It is clear enough for correct usage.

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 specifies the verb 'List', the resource 'zip/tar archive entries', and the output details (name, size, kind, total size). It distinguishes itself from the sibling 'archive_extract' by framing as 'look before extracting'.

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?

The description explicitly advises to use this tool before extracting ('look before extracting'), providing clear usage context. It does not mention when not to use it, but the guidance is sufficient for a simple tool.

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

docx_extractA
Read-only

Extract a DOCX in document order with structure kept: headings as markdown levels, paragraphs, and tables as markdown tables — so you can cite the table under a section instead of fishing in text soup. Bounded; truncation is marked.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false. The description adds that the tool is 'bounded' and 'truncation is marked', which discloses important behavioral traits about output limits beyond what annotations provide. No contradictions are present.

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 sentences, perfectly front-loaded with the core action and key details. Every word earns its place, and no filler is present. The structure ('Extract a DOCX...' followed by additional context) is optimal for agent scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main functionality and a key behavioral aspect (bounded, truncation marked), but lacks details about the output format beyond 'markdown', and does not explain what 'bounded' means quantitatively. Given the tool has one parameter and no output schema, the description is adequate but could be slightly more complete (e.g., specifying output is a string).

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

Parameters1/5

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

The input schema has a single required parameter 'path' with 0% description coverage. The tool description does not mention this parameter at all, leaving the agent with no explanation of what the parameter expects or its format. With low schema coverage, the description fails to compensate.

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 'extract' and the resource 'DOCX', specifies the extraction yields structured output (headings as markdown, paragraphs, tables as markdown tables) in document order, and distinguishes it from siblings like pdf_extract_text or pptx_extract by focusing on DOCX with structure preservation.

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?

The description implies when to use: when structured extraction from a DOCX with headings and tables is needed. It does not explicitly state when not to use or list alternatives, but the context of sibling tools provides implicit differentiation. A direct indication of alternatives would elevate this to a 5.

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

image_annotateA
Idempotent

Draw labelled rectangles on a copy of an image (up to 50 marks, each {x, y, w, h, label?}) — point at regions of a drawing or screenshot when words alone are ambiguous. Writes a NEW file; refuses an out_path that collides with the input (charter).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
marksYes
out_pathYes

TDQS

A4.8/5.0
Behavior5/5

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

Discloses key behaviors: creates a new file, refuses out_path collisions with input. Beyond annotations (idempotentHint=true, destructiveHint=false), adds context about file safety and collision prevention.

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 well-structured sentences: first describes primary action and constraints, second details output behavior. No filler, information is front-loaded.

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?

Thoroughly covers the tool's functionality given 3 required params and no output schema. Explains input format, output creation, and safety constraint. No obvious gaps.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates: explains the mark format as {x, y, w, h, label?}, limits to 50 marks, and clarifies out_path collision behavior. Adds meaning far beyond the schema.

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?

Explicitly states the verb 'draw labelled rectangles' on 'a copy of an image', with specific mark structure. Clearly distinguishes from sibling tools like image_crop and image_convert by focusing on annotation.

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?

Provides concrete usage scenario: 'point at regions of a drawing or screenshot when words alone are ambiguous.' Implies when to use, though does not explicitly state when not to use or list alternatives.

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

image_convertA
Idempotent

Convert/resize/rotate an image into a NEW file — format by out_path suffix (png/jpg/webp/gif/bmp/tiff), optional max_dim bound on the long edge, rotation in 90° steps. Refuses an out_path that collides with the input (charter).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
max_dimNo
qualityNo
out_pathYes
rotate_degNo

TDQS

A3.9/5.0
Behavior4/5

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

Adds details beyond annotations: rotation in 90° steps, max_dim bounding long edge, and input collision refusal. Annotations already indicate idempotent and non-destructive; no contradiction.

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 sentences, front-loaded with primary purpose, no extraneous words. Every sentence adds essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers main operations and key constraints, but lacks explanation for quality parameter and default behavior when max_dim is null. No output schema to compensate.

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?

With 0% schema coverage, description partially explains path, out_path (format via suffix), max_dim, and rotate_deg, but omits quality parameter. Adds value but not complete.

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?

Description clearly states 'Convert/resize/rotate an image into a NEW file' with format determined by out_path suffix, distinguishing it from sibling tools like image_crop or image_annotate.

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?

Some guidance is given (refuses out_path collision with input), but no explicit when-to-use or when-not-to-use context compared to alternatives like image_crop or ocr_image.

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

image_cropA
Idempotent

Crop a pixel box (x, y, width, height from the top-left) into a NEW file — e.g. isolate one view of a drawing before OCR or a close look. Refuses a box that leaves the image and an out_path that collides with the input (charter).

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
pathYes
widthYes
heightYes
out_pathYes

TDQS

A4.4/5.0
Behavior5/5

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

Annotations indicate idempotentHint=true and destructiveHint=false, which align with creating a new file. The description adds valuable behavioral details: refusal conditions for invalid boxes and output paths, going beyond the annotations.

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?

The description is two sentences, front-loads the main action, and adds constraints without redundancy. Every sentence adds value.

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?

Given 6 required parameters, no output schema, and annotations with hints, the description covers the core operation, example usage, and critical constraints. It lacks details on output format or error handling, but is sufficient for typical use.

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 must compensate. It explains that x,y,width,height define a 'pixel box from the top-left' and that out_path is for the new file. However, it does not detail each parameter's valid ranges or restrictions, leaving some gaps.

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 tool crops a pixel box from an image into a new file, with a concrete example ('isolate one view of a drawing before OCR or a close look'). It distinguishes from sibling tools by specifying the operation and result.

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?

The description provides an example use case (before OCR or close look) and mentions constraints (refuses out-of-bounds box or colliding output path). However, it does not explicitly state when not to use this tool or suggest alternatives.

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

ocr_imageA
Read-only

OCR one image (png/jpg/gif/webp/bmp/tiff) with the LOCAL tesseract binary — needs tesseract installed and refuses by name without it; nothing reaches the network. OCR misreads numbers — verify critical values by looking at the image itself.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoeng
pathYes

TDQS

A4.4/5.0
Behavior5/5

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

Beyond annotations (readOnlyHint=true), describes local execution, tesseract dependency, network isolation, and accuracy warnings, providing comprehensive behavioral disclosure.

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 sentences, front-loaded with core action, every sentence adds value, no wasted words.

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?

Covers file formats, local execution, dependency, and accuracy warning. Lacks output format description but acceptable for a simple OCR tool. Informs selection among siblings.

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 has 0% description coverage. Description adds meaning for 'path' by listing accepted image formats, but does not explain 'lang' parameter or provide full parameter semantics.

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 'OCR' and the resource 'one image' with supported formats (png/jpg/gif/webp/bmp/tiff), distinguishing it from siblings like ocr_pdf.

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?

Provides crucial usage context (local, requires tesseract, warns about number accuracy) and implies when not to use (for PDFs), but lacks explicit alternatives or when-not-to-use statements.

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

ocr_pdfA
Read-only

OCR scanned PDF pages (up to 10 per call): renders each page and runs the LOCAL tesseract binary — needs tesseract installed (brew install tesseract) and refuses by name without it; nothing reaches the network. Use pdf_info first to find which pages need OCR. OCR misreads numbers — verify critical values against the rendered page.

ParametersJSON Schema
NameRequiredDescriptionDefault
dpiNo
langNoeng
pathYes
pagesNo1-5

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only mark readOnlyHint and openWorldHint. The description adds critical behavioral info: local binary dependency, error behavior (refuses by name without tesseract), network isolation, and accuracy warning (misreads numbers). No contradiction with annotations.

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?

Three sentences pack maximum value: first gives core purpose and constraint, second covers dependencies and privacy, third provides guidance and warning. No wasted words; each sentence earns its place.

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?

Given no output schema, the description covers purpose, constraints, prerequisites, privacy, and a usage tip. However, it omits the return type (text) and does not fully substitute for missing schema descriptions. Still, it's largely complete for an experienced agent.

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

Parameters2/5

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

Schema coverage is 0% (no parameter descriptions). The description implies 'pages' via 'up to 10 per call' and path via PDF context, but does not explain dpi, lang, or default behavior. With 0% coverage, description should have detailed each parameter's role.

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 explicitly states the verb 'OCR', the resource 'scanned PDF pages', and the limit 'up to 10 per call'. It distinguishes from sibling tools like pdf_extract_text and ocr_image by implying use case (scanned vs. native PDFs) and referencing pdf_info for pagination.

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 description tells when to use ('Use pdf_info first to find which pages need OCR'), clarifies prerequisites (tesseract installed), and implies when not to use (e.g., if no installation, use other tools). It also notes that nothing reaches the network, aiding security decisions.

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

pdf_extract_textA
Read-only

Extract the text layer of a page range (1-based: "3", "1-5", "2,4,9-11"; up to 50 pages per call). Page-ranged so a 400-page standard is read in slices instead of one blind gulp. Returns nothing useful for scanned pages — pdf_info names those, ocr_pdf reads them. Bounded; truncation is marked.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
pagesNo1-20

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint true and openWorldHint false. Description adds limitations: no text for scanned pages, truncation marking, 50-page limit. Could clarify how truncation is marked.

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 efficient sentences with no waste; key info front-loaded. Every sentence adds value.

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?

Covers main use, limitations, and alternatives. However, no output schema and description does not specify the format of returned text (e.g., concatenated, page-separated).

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

Parameters4/5

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

Despite 0% schema coverage, description explains the 'pages' parameter format (range syntax, default, limit). Path is self-explanatory. Adds meaning beyond bare schema.

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?

Explicitly states 'extract the text layer of a page range', naming the action and resource. Distinguishes from siblings by mentioning pdf_info and ocr_pdf for scanned pages.

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?

Explains when to use (slicing large PDFs) and when not to use (scanned pages), with explicit alternatives (pdf_info, ocr_pdf).

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

pdf_infoA
Read-only

Inventory a PDF before reading it: page count, per-page size (mm), and — the part that matters — which pages carry a text layer and which are scans/drawings. Use it to decide between pdf_extract_text (text layer), ocr_pdf (scans), and pdf_pages_to_images (look at drawings). Reads the file on this machine; nothing leaves it.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true. Description adds meaningful context: 'Reads the file on this machine; nothing leaves it.' This clarifies data locality and privacy, which is important for agents operating on local files. No contradiction with annotations.

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 sentences, no waste. Front-loaded with purpose, then usage guidance, then behavioral note. Every sentence is essential.

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?

Clearly states outputs: page count, per-page size, and text-layer presence. No output schema, but description sufficiently covers expected information. Minor gap: does not specify output format (e.g., JSON structure), but given the tool's simplicity, it is nearly complete.

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

Parameters2/5

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

Schema has 0% description coverage; the single 'path' parameter has only type and title. Description does not elaborate on path format, allowed values, or how to specify the file. It only implies the file is local. Given the gap, description should compensate but does not.

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?

Description uses specific verb 'Inventory' and identifies resource 'PDF'. It clearly states what metadata is extracted (page count, per-page size, text vs. scan/drawing) and directly differentiates from sibling tools by mentioning pdf_extract_text, ocr_pdf, and pdf_pages_to_images.

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 guides when to use this tool: as a pre-read inventory step. Names three sibling tools and the decision criteria (text layer vs. scans vs. drawings), providing clear context for the agent to choose the correct subsequent tool.

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

pdf_pages_to_imagesA
Idempotent

Render PDF pages to PNG/JPEG files (up to 20 pages per call, dpi 30–400) in out_dir — default derived/ beside the source, never on top of it (charter). The rendered pages are ordinary images: open them in the workspace, or read them with fs.read to LOOK at a drawing-heavy page the text extractor can't serve.

ParametersJSON Schema
NameRequiredDescriptionDefault
dpiNo
pathYes
pagesNo1-5
out_dirNo
image_formatNopng

TDQS

A4.7/5.0
Behavior5/5

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

Adds behavioral details beyond annotations: page limit, dpi range, output directory behavior, and file nature. No contradiction with annotations.

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?

Three focused sentences, front-loaded with key functionality, no unnecessary words.

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?

Adequately covers purpose, constraints, and use case for a rendering tool with no output schema.

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

Parameters4/5

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

Despite 0% schema coverage, description adds meaning for dpi range and output directory default, but does not explain all 5 parameters explicitly.

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 'Render' and resource 'PDF pages', specifies output format (PNG/JPEG), limits (20 pages, dpi range), and distinguishes from siblings like text extraction.

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?

The description hints at use for drawing-heavy pages where text extractor fails, but lacks explicit when-not-to-use or alternative selection guidance among siblings.

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

pptx_extractA
Read-only

Extract a PPTX slide by slide: title, body text, tables, and speaker notes (quoted, marked as notes). Bounded; truncation is marked.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations provide readOnlyHint, but description adds important behavioral details: bounded extraction and marking of truncation. No contradictions.

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 concise sentences with no wasted words. Information is front-loaded and directly relevant.

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?

Covers main extracted content and boundedness/truncation. Lacks details on path format or handling edge cases, but adequate for a simple extraction tool.

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

Parameters1/5

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

Single parameter 'path' with 0% schema coverage. Description does not explain what the path refers to or expected format, failing to compensate for lack of 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?

Describes clear action ('Extract'), resource ('PPTX'), and specific extracted elements (title, body, tables, speaker notes). Distinguishes from sibling extraction tools for other formats.

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?

Implies use for PPTX extraction but lacks explicit when-to-use or when-not-to-use guidance. No mention of alternatives among sibling tools.

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

TDQS

A4.2/5.0
Disambiguation5/5

Each tool targets a distinct resource or operation: archives, PDF (with clear separation between info, text extraction, rendering, and OCR), DOCX, PPTX, and images. The descriptions explain precisely when to use each, minimizing overlap.

Naming Consistency4/5

Most tools follow a resource_action pattern (e.g., pdf_extract_text, image_crop), but ocr_pdf and ocr_image invert this to action_resource. pdf_info uses a noun as a verb. The pattern is largely consistent with minor deviations.

Tool Count5/5

At 12 tools, the set is well-scoped for a document extraction server. Each tool has a clear role, covering archives, multiple document formats, and image processing without unnecessary duplication.

Completeness4/5

The surface covers core extraction workflows: listing/extracting archives, reading PDFs (text, renders, OCR), extracting DOCX/PPTX, and image processing. Minor gaps exist (no archive creation, no PDF metadata extraction) but do not hinder primary use.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/graphgrow/root-ext-docs'

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