Skip to main content
Glama
koraynar

doc-extract-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_documentsA

List files in a directory inside the allowed root.

Args: directory: Directory path, relative to the allowed root (use '.' for the root itself) or absolute but inside it. glob_pattern: Filename filter, e.g. '.pdf' or '**/.csv' for recursive matching. Defaults to '*'. Must be relative and must not contain '..'; matching never leaves the allowed root.

Returns a list of {path, name, size_bytes, modified} entries; 'path' is relative to the allowed root and is what other tools accept.

read_documentA

Read a document and return its text content.

Supports .pdf (extracted per page with '--- page N ---' markers), .txt / .md / .json (read directly), and .csv (rendered as an aligned text table). Other types return a clear error.

Args: path: File path inside the allowed root. pages: Optional 1-indexed page selection for PDFs, e.g. '3', '1-5', or '1-3,7'. Empty string means all pages.

document_infoA

Return metadata for a document without reading its full content.

Includes file type, size, and modification time; page count and PDF metadata for PDFs; line count for text-based files.

Args: path: File path inside the allowed root.

chunk_documentA

Split a document's text into ordered, overlapping chunks.

Useful for long documents that do not fit one context read. For PDFs the text keeps its '--- page N ---' markers and each chunk carries a 'page_hint' (the page active at the start of the chunk); for other types 'page_hint' is null.

Args: path: File path inside the allowed root. max_chars: Maximum characters per chunk (default 4000). overlap: Characters repeated between consecutive chunks (default 200, must be smaller than max_chars).

Returns a list of {index, start_char, page_hint, text} in document order.

validate_jsonA

Validate a JSON string against a JSON Schema (Draft 2020-12).

Reports EVERY validation error with a JSON Pointer path, not just the first, so extraction mistakes can be fixed in one pass.

Args: data: The JSON document to validate, as a string. json_schema: The JSON Schema to validate against, as a string.

Returns {valid, error_count, errors:[{pointer, message, validator}]}; 'pointer' is a JSON Pointer into the data ('' means the document root).

save_structuredA

Write extracted data to a file inside the allowed root.

Args: path: Output file path inside the allowed root; parent directories are created as needed. data: The data to write, as a JSON string. For 'csv' it must be a JSON array of flat objects (no nested arrays/objects). format: 'json' (pretty-printed) or 'csv'.

Returns {path, format, rows, bytes}; 'rows' is the row count for csv or the element count when the JSON payload is an array, otherwise null.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.4/5.0

Scored across 6 tools

Disambiguation5/5

Each tool serves a distinct purpose: listing, reading, metadata, chunking, validation, and saving. No overlap; even read_document and chunk_document are clearly differentiated (full content vs. splitting for context). The separation is clean and unambiguous.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern (list_documents, read_document, chunk_document, validate_json, save_structured). The exception is document_info, which uses a noun_noun form instead of get_document_info, creating a minor deviation from the otherwise predictable scheme.

Tool Count5/5

Six tools is an appropriate, well-scoped count for a document extraction server. Each tool covers a necessary step in the extraction workflow without redundancy or bloat.

Completeness5/5

The tool set provides a complete lifecycle for document extraction: discovering files (list), retrieving content (read), obtaining metadata (info), handling long documents (chunk), validating structured output (validate), and persisting results (save). No obvious gaps; the scope is tightly defined and fully covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues