In-memory document store exposed over MCP stdio with tools to read, edit, and inspect documents, plus resources and prompts for document management.
DocumentMCP has 3 tools with basic definitions but significant quality gaps. Tool names follow verb_noun convention (read_doc_contents, edit_document, list_docs_meta), which is good. However, descriptions are minimal (10-50 chars), parameter descriptions are sparse or missing, and input schemas lack proper type declarations. The edit_document tool is destructive but has no confirmation mechanism or dry-run option. No output schemas are documented. Error handling is minimal, tools raise ValueError but provide no recovery guidance. The server uses FastMCP (Python), not the Go SDK listed in the repo header, creating confusion about the actual implementation.
Edit a document by replacing a string in the documents content with a new string.
List metadata about all documents including count and character statistics.
Read the contents of a document and return it as a string.
Destructive tool (edit_document) lacks confirmation or dry-run. No pattern:confirmation-request implemented. Agents can irreversibly modify documents without safeguards.
Parameter descriptions are missing or trivial. 'doc_id' has a description, but 'old_str' and 'new_str' in edit_document lack context on format, length, or escaping rules. LLMs cannot infer constraints.
No output schemas documented. Tools return strings or lists, but LLMs have no formal schema to parse results or plan downstream calls. Violates pattern:tool requirement.
Error handling is minimal. ValueError exceptions provide no recovery guidance. 'Doc with id {doc_id} not found' is bare, should suggest available doc IDs or next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Tool list_docs_meta name is misleading. Description says 'List metadata about all documents including count and character statistics' but implementation (inferred from test file) likely just returns doc IDs. Name and description mismatch.