document-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| convert_documentA | Converts a document from one supported format to another via documents.js's DocumentConverter port -- docx, pptx, xlsx, odt, odp, ods, odg, odf, markdown, and pdf. Not every (source, targetFormat) pair is supported directly (odf, for instance, only ever converts to pdf); call list_document_conversions first to see which pairs actually are. |
| list_document_conversionsA | Lists every (source, target) format pair convert_document actually supports, straight from documents.js's own DocumentConverter port -- the definitive source of truth for what convert_document will and will not accept as a (source, targetFormat) combination. |
| docx_extrasA | Reads a docx's own comments, footnotes, headers, footers, and numbering definitions -- data documents.js's ContentDocument pivot cannot carry, so ordinary document-reading tools never see it. Returns the real DocxExtras object (comments/footnotes/headers/footers/numbering) as structured data. |
| fontsA | Lists every source-embedded font face a docx/pptx/odt/odp/ods/odg document carries (family, weight/style, byte length). |
| describe_font_fileA | Reads a standalone TrueType/OpenType font file (.ttf/.otf) and reports the family/bold/italic triple it declares about itself. |
| from_packageB | Rebuilds real document bytes in a target format from a DocumentPackage previously serialised to JSON (e.g. by a caller's own --dump-package-equivalent step) -- the read side of the DocumentPackage round trip a conversion's onDocument callback produces. |
| metadata_readA | Reads a document's own title/author/subject/keywords/creator/producer/created-and-modified-timestamp metadata. Works across every supported format, including xlsx (read via a throwaway xlsx-to-pdf preview, since documents.js has no dedicated xlsx metadata reader of its own) and odf (a standalone formula document). |
| metadata_writeA | Patches a document's own title/author/subject/keywords, leaving every other field and every other flag as-is. Does not convert format -- the source document's own format and targetFormat must match (or both be 'pdf'); odf (a standalone formula document) is rejected outright as either a source or a target, since it has no write path back out at all. Convert the document to a different format first (e.g. with a documents.js conversion tool) if metadata needs to be set on the result of a format change. |
| odb_tablesA | Lists every table an embedded .odb database declares -- column names, types, and row data -- across every storage tier documents.js supports (HSQLDB TEXT/CACHED/BINARY script formats, Firebird gbak backups). |
| odb_formsA | Lists every form an .odb database declares, with each form's own data source and field-bound controls. |
| odb_reportsA | Lists every report an .odb database declares, with each report's own data-source command, band/group structure, and rpt: formula expressions. |
| odb_queryA | Runs a bounded single-table SELECT over an embedded .odb database's own extracted tables, given directly as SQL or by naming one of the database's saved queries. No database engine is involved -- the query runs in memory over the same tables odb_tables would return, against a closed grammar (SELECT/WHERE/GROUP BY/ORDER BY, no joins or subqueries); an unsupported construct is reported as a tool error naming it, never silently ignored. |
| odb_to_csvA | Extracts exactly one named table from an embedded .odb database as CSV bytes. The table name is required whenever the database declares more than one table. |
| odb_to_xlsxA | Extracts every table an embedded .odb database declares into one xlsx workbook, one sheet per table. |
| odb_render_reportA | Resolves one of an .odb database's own reports -- its data-bound command run through the bounded SQL engine, its rpt: formulas evaluated, its bands laid out -- and renders the result to docx, odt, or pdf. |
| odm_to_pdfA | Converts a .odm (ODF master document) to PDF. A .odm never carries its own chapters' content inline -- every text:section is a bare external reference to a standalone .odt file -- so each chapter the master document declares must resolve through |
| outline_documentA | Projects a document's table of contents as a structured outline: reads the source through documents.js's DocumentConverter port, takes the tree-form DocumentPackage the conversion reports, and runs document-outline.js's buildOutline over it. Groups carry { text, level, children } (a heading's, list item's, slide's, sheet's, or page's own label plus nested children); leaves carry { kind, text }. The outline is over the source's own content -- the internal conversion target preserves it and is pdf only for odf (the one format that only converts to pdf) and odg (whose alternative, svg, cannot represent more than one page). |
| pdf_inspectA | Parses a PDF (documents.js's readPdf) and reports a summary: page count, each page's own size and item-kind histogram, document metadata, and embedded image formats. Pass full: true to return the entire parsed LayoutDocument instead of a summary. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 18 tools
Each tool targets a distinct resource or operation: conversion, metadata, outline, PDF inspection, fonts (embedded vs standalone), and the seven odb_* tools are separated by action (list/query/extract/render). The only close pair, fonts and describe_font_file, is disambiguated by document-embedded vs standalone file.
Many tools follow verb_noun (convert_document, outline_document, describe_font_file) or noun_verb (metadata_read, metadata_write, pdf_inspect), but several are bare nouns (fonts, docx_extras, odb_tables, odb_forms, odb_reports) and one is a preposition phrase (from_package). The names are consistently snake_case and readable, but the verb-first convention is not applied throughout.
18 tools is on the upper end of a typical server scope, but the breadth is justified by the mix of general document operations and format-specific utilities (ODB, ODM, PDF, docx extras). Each tool earns a place; the count feels slightly heavy rather than bloated.
The set covers conversion (with capability listing), metadata read/write, outline extraction, PDF inspection, font handling, and a full ODB sub-toolkit (tables, forms, reports, query, export, render). Notable gaps include document creation and content editing beyond metadata, and generic text extraction is only implicit through conversion to markdown.