MCP server for document management with read, edit, and formatting capabilities
DocumentMCP has two tools with basic schemas and descriptions, but significant gaps limit production readiness. Both tools have descriptions (10-20 chars baseline met), but descriptions lack depth on WHEN to use them and what happens on error. Schemas are present but minimal, parameters have types and descriptions, but no enums, ranges, or validation guidance. No output schemas documented. Error handling is minimal (ValueError raised but not actionable for LLMs). Tool names follow verb_noun pattern (read_*, edit_*) which is good, but descriptions don't explain state mutations or recovery paths. No tool annotations (readOnlyHint, destructiveHint) despite edit_document being destructive. Composition is reasonable (two focused tools), but no pagination, batch operations, or chaining support.
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.
No tool annotations (destructiveHint, readOnlyHint, idempotentHint). edit_document is destructive but unmarked, preventing agents from reasoning about safety and retry semantics.
Descriptions lack actionable context. 'Read the contents of a document' (34 chars) does not explain when to call this vs edit_document, what format is returned, or error recovery. Baseline: 194 chars average for A+ tools.
No output schemas documented. Agents cannot plan downstream calls or extract structured data. read_doc_contents returns a string; edit_document returns nothing, both should be formally declared.
Error handling is non-actionable. ValueError('Doc with id {doc_id} not found') gives no recovery guidance. Should return: 'Document not found. Available docs: [list]. Try read_doc_contents with one of these IDs.'
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | <=2025-11-25 | v2 |
edit_document uses exact string matching (old_str parameter), which is fragile and error-prone. No guidance on whitespace sensitivity, multi-line handling, or partial match fallback. Agents will struggle with formatting edge cases.