doc-agent-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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| read_documentA | Read a Markdown or DOCX document as structured blocks. Returns headings, paragraphs, list items and tables with stable IDs (h-0, p-1, li-2, tbl-0). Prefer section_id= over reading whole documents. Pass doc_hash from a previous call to detect external modifications. Lists unmodeled_features so you know what the model cannot represent (images, footnotes, ...). |
| get_outlineA | Get the heading outline of a document. Returns flat heading entries (id, level, title, path) plus a nested tree. Use heading ids to read sections or anchor edits. |
| find_textA | Find exact occurrences of text inside document blocks. Returns every match as (element_id, start, end) character offsets plus a snippet - feed these offsets directly into propose_replace_text. Tables are skipped (cell-level search not supported). |
| get_commentsB | List comments anchored in the document (native DOCX comments). Each comment carries id, author, body, element_id and quoted range. For Markdown (which has no comment concept) the list is empty. |
| propose_replace_textA | Stage replacing character range [start:end) inside one block. Offsets come from find_text or read_document. The staged change includes before/after previews; nothing is written until apply_changes. Table cells are not supported (delete/re-insert the table instead). |
| propose_insert_blockB | Stage inserting a new block before or after an existing element. position: 'before' | 'after' (relative to anchor_id). kind: 'paragraph' | 'heading' (set level 1-6) | 'list_item'. This single tool covers insert-before, insert-after and append use cases (anchor on the last element and position='after'). |
| propose_delete_blockB | Stage deleting one whole block (heading, paragraph, item or table). |
| propose_add_commentB | Stage adding a comment anchored to an element. DOCX: creates a real Word comment (visible in Word/Google Docs). Markdown: stored in the session only - surfaced by get_comments until the process exits, because Markdown has no native comment storage; the tool result states this limitation explicitly. quote must appear inside the anchor element. |
| get_changesA | Review all staged changes with diffs before committing. Replace changes carry unified diffs; inserts/deletes/comments show their content. Apply selectively with apply_changes(change_ids=[...]). |
| discard_changesB | Drop staged changes (all of them, or specific change ids). |
| apply_changesA | Commit staged changes to the file (all, or selected change ids). Writes atomically, re-reads the file and returns the new doc_hash plus warnings about unmodeled features present in the document. |
| export_documentA | Convert the document to another supported format ('markdown'|'docx'). Conversion goes through the normalized model: markdown->docx builds a fresh Word file (headings, lists, tables, comments); docx->markdown serializes parsed blocks back to Markdown. Unsupported pairs raise a clear export_error listing supported conversions. |
| list_backendsA | List registered format backends and their file extensions. |
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 13 tools
Each tool targets a distinct operation: reading (read_document), outlining (get_outline), searching (find_text), comments (get_comments/propose_add_comment), editing via staging (propose_replace_text/insert/delete), change management (get/discard/apply_changes), and export/list backends. No two tools overlap in purpose, and the propose_* set is clearly separated from apply_changes.
All 13 tools follow a consistent snake_case verb_noun pattern (e.g., read_document, propose_insert_block, discard_changes). Verbs are descriptive and uniformly applied, making the naming predictable and easy to infer.
13 tools is well-scoped for a document editing server. Each tool covers a distinct lifecycle stage—read, inspect, search, comment, edit (staging), apply, export—without redundancy or excessive granularity.
The surface covers the core document workflow: reading, outlining, text search, editing (replace/insert/delete), comment creation, change staging/commit, and export. Minor gaps include no comment deletion/editing and no document creation, but these are outside the stated purpose of working with existing documents.