MCP server for reading and writing files in target project folders, with support for managing strategic decisions and creating new files
Three tools with basic schemas and minimal descriptions. read_file and write_decisions have generic 10-20 char descriptions that fail to explain WHEN to use them or what they return. No output schemas documented. Parameters lack format constraints (e.g., filePath accepts any string, inviting path traversal). No error recovery guidance. create_file missing from src/index.js (only in .ts), creating inconsistency. No idempotency guarantees or permission checks despite write operations. Descriptions are below the 50-200 char LLM-optimized baseline.
Create a new file with given content, creating directories if needed
Read any file from a target project folder
Append timestamped content to any file in a target project folder
Descriptions too short and lack WHEN/WHY context. 'Read any file from a target project folder' (10 chars) does not explain when to call read_file vs other discovery tools, what format is returned, or prerequisites. LLM cannot determine tool selection.
No output schema documented. Tools return {content: [{type: 'text', text: string}]} but LLMs cannot infer this structure. Downstream tools cannot plan what fields to extract.
Path traversal vulnerability: filePath parameter accepts any string with no validation. LLM could pass '../../../etc/passwd' or absolute paths outside intended scope. No sanitization or constraint documented.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2026-07-28+ | v2 |
No error recovery guidance. Catch blocks return generic 'Error reading file: {error}' without actionable next steps. LLM cannot distinguish retryable (network) from fatal (permission denied) errors.
create_file defined only in src/index.ts but missing from compiled src/index.js. Inconsistency between source and runtime artifact creates confusion about which tools are actually available.