mcp-editor provides 5 file-editing tools with complete input schemas and basic descriptions. All tools have verb-noun naming (view, create, string_replace, insert, undo_edit) and documented parameters with types. However, descriptions are generic (10-50 chars), lack context on when to use each tool, and omit guidance on side effects. No output schemas are documented. Parameter descriptions are minimal, e.g., 'Absolute path to the file' lacks format/constraint details. Error handling is present but not actionable (ToolError thrown without recovery guidance). The server lacks tool annotations (readOnlyHint, destructiveHint) despite having clear risk profiles (READ_ONLY, WRITE, REVERSIBLE). No pagination, batching, or composition guidance for multi-file workflows.
Create a new file with specified content
Insert text at a specific line in the file
Replace a string in a file with a new string. By default, replaces only if the string is unique. Use replace_all=true to replace all occurrences.
Undo the last edit to a file
View file contents or directory listing
Descriptions are too short (10-50 chars) and lack actionable context. 'Create a new file with specified content' does not explain when to use create vs string_replace, what happens if the file exists, or what the return value contains.
No output schemas documented. LLMs cannot infer what view() returns (file contents? directory listing? both?), what create() returns (file path? success message?), or what string_replace() returns on failure.
Missing tool annotations despite clear risk profiles. create, string_replace, and insert are destructive (WRITE); view is read-only; undo_edit is reversible. Annotations (destructiveHint, readOnlyHint, idempotentHint) enable agents to reason about safety and retry logic.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Parameter descriptions lack format/constraint details. 'Absolute path to the file' does not specify: must it be absolute? Can it be relative? What characters are forbidden? Does it support ~/ expansion? LLMs guess and pass invalid paths.
Error handling is present but not actionable. ToolError('Invalid arguments for X command') tells the LLM nothing about what was wrong, what values are valid, or how to recover. No recovery guidance per pattern:recovery-guide.