A remote MCP server providing document management capabilities with MongoDB storage, supporting file operations and document CRUD operations
This server has 7 tools with significant definition quality gaps across naming, descriptions, and parameter documentation. Tools are explicitly registered with Zod schemas in src/index.ts and src/document/routes.ts. However, most parameter descriptions are missing or minimal, and several tool descriptions lack clarity about state modification and use cases. The server mixes trivial calculator tools with document management operations without clear separation of concerns. While schemas are present (Zod-based), parameter-level documentation is sparse, forcing LLMs to infer intent.
Simple addition tool that adds two numbers
Calculator tool with multiple operations: add, subtract, multiply, divide
Create document
Document ID
Get document by ID
Directory path to list files
Update document
Minimal or missing tool descriptions (avg 26 chars vs baseline 194 chars). Tools like 'deleteDocument' (12 chars) and 'createDocument' (15 chars) provide no context for LLM tool selection.
Parameter descriptions are largely absent (null in schemas). Parameters like 'a', 'b', 'operation' in 'add' and 'calculate'; 'path', 'content' in 'createDocument' lack descriptions. Violates requirement C.2 that every parameter needs a description.
No output schemas documented. Tools return generic text responses without declaring field structure. LLMs cannot infer what fields to extract or pass to downstream tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 43 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 44 | - | v1 |
Destructive operations (createDocument, updateDocument, deleteDocument) lack confirmation/dry-run patterns and do not document irreversibility in descriptions. No guidance for error recovery or undo.
Trivial calculator tools (add, calculate) mixed with domain-specific document management tools. Low-value tools clutter the interface and reduce signal for LLM tool selection.
Error responses return JSON-wrapped text strings without structured error classification. No guidance on retryability, actionable recovery steps, or suggested next tools (e.g., 'Document not found. Try getFilesInPath() first.').
No pagination parameters (limit, offset, cursor) on list operation (getFilesInPath). Large directories may return thousands of files, exhausting context window.
Parameter 'path' in updateDocument and getDocumentById is ambiguous. Does it override the document path, or filter by path? Undocumented parameter dependencies.