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 3 tools with inconsistent quality. read_doc_contents and edit_document have minimal descriptions (under 100 chars) and lack parameter detail. The add tool has a verbose, example-heavy description that violates best practices. All tools lack output schema documentation. Parameters have basic descriptions but no type constraints or validation guidance. No error handling guidance for LLMs. The edit_document tool is particularly risky, it performs string replacement without validation, no dry-run option, and no confirmation pattern despite being destructive.
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
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.
edit_document lacks confirmation/dry-run pattern for destructive operation. String replacement is irreversible and can corrupt documents. No validation that old_str exists before replacement.
add tool description contains example values (add(2, 3) → 5.0) which LLMs tend to reuse literally. Should use parameter constraints (type: number) instead.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract structured data. read_doc_contents returns string, edit_document returns nothing (implicit), add returns number, all undocumented.
edit_document description is 97 chars, below 100-char minimum. Lacks WHEN to use, prerequisites, or error recovery guidance. Does not state that operation modifies state.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
No error handling guidance. If doc_id not found, ValueError is raised but LLM receives no recovery hint (e.g., 'Call list_docs() to see available documents'). Agents cannot self-correct.