MCP server for document management with tools to read and edit documents, resources for listing and fetching documents, and prompts for document formatting
DocumentMCP has 4 tools with mixed quality. read_doc_contents and edit_document have minimal descriptions (under 100 chars) and lack parameter detail. Schemas are present but sparse. add and document_path_to_markdown have better descriptions (150+ chars with examples) but are not part of the primary server. No tool annotations (readOnlyHint/destructiveHint). Error handling is basic (ValueError raises). No output schema documentation. Naming is verb-forward but descriptions lack WHEN/WHY guidance critical for LLM selection.
Add two numbers together. Takes two numerical inputs and returns their sum. This tool handles integers and floating point numbers. When to use: - When you need to perform simple addition - When you need precise numerical calculation Examples: >>> add(2, 3) 5.0 >>> add(2.5, 3.5) 6.0
Convert a PDF or DOCX file to markdown-formatted text. Reads the file at the given path and converts its contents to markdown. When to use: - When you have a local PDF or DOCX file and want its content as markdown - When you need to extract text from a document for further processing Examples: >>> document_path_to_markdown("/path/to/report.pdf") '# Report Title\n...' >>> document_path_to_markdown("/path/to/notes.docx") '# Notes\n...'
Edit a document by replacing a string in the documents content with a new string.
Read the contents of a document and return it as a string.
Minimal parameter descriptions in primary tools. read_doc_contents and edit_document lack guidance on expected format, constraints, or error cases. LLMs cannot infer whether doc_id is a filename, UUID, or slug.
No output schema documentation. Tools return strings or lists but do not specify structure, field names, or format. LLMs cannot plan downstream calls or extract data reliably.
Missing tool annotations. edit_document is destructive (WRITE risk) but lacks destructiveHint annotation. read_doc_contents is read-only but lacks readOnlyHint. Agents cannot distinguish safe from unsafe operations.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Weak error messages. ValueError exceptions ('Doc with id {doc_id} not found') do not guide recovery. No suggestion of available doc_ids or alternative actions.
Tool descriptions lack WHEN/WHY context. 'Read the contents of a document' does not explain when to use read_doc_contents vs the docs://documents/{doc_id} resource. LLMs may choose wrong interface.