MCP server that intelligently reverts Claude Code CLI changes by analyzing conversation JSONL files. No more clipboard exports needed! Automatically finds active sessions and reverts file modifications using structured patch data.
VibeDoctor has a single tool 'revert_last_changes' with critical definition quality gaps. The tool name is clear and verb-first (good), but the description is vague about what it actually does. The input schema has structural problems: parameters lack proper type definitions in several cases, descriptions are minimal or missing, and the schema declares no required fields despite 'count' being functionally required. The tool's purpose, reverting Claude Code CLI changes by parsing JSONL, is mentioned but not in the tool description itself. Error handling is absent; there is no guidance on what happens when no session is found, when file writes fail, or when the JSONL format is invalid. The output is not documented at all. This is a narrow single-purpose tool with reasonable naming but poor description depth, incomplete schema, and no error recovery patterns.
Intelligently reverts the last N changes made by Claude Code CLI by analyzing conversation JSONL files. Automatically finds the active session and reverts file modifications using structured patch data.
Tool description is vague and does not state WHAT the tool does, WHEN to use it, or WHAT it returns. Current description ('Intelligently reverts the last N changes made by Claude Code CLI by analyzing conversation JSONL files...') is buried in the schema and not surfaced to the LLM during tool selection. The server's tool registration passes an empty description string to the LLM.
Input schema is incomplete and improperly structured. The 'count' parameter has type 'integer' with min/max constraints, which is correct. However, 'user_message' and 'conversation_history' have type 'string' with no constraints or validation rules. The 'required' array is empty, suggesting all parameters are optional, but 'count' and 'user_message' are functionally required to find and revert changes. Ambiguous optionality will cause the LLM to omit parameters, leading to incorrect behavior.
No output schema is documented. The tool performs file modifications and returns a results array, but the LLM cannot see what fields the response contains, preventing downstream tool chaining and error diagnosis.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 36 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 35 | - | v1 |
No error handling or recovery guidance. The code calls findActiveSession(), which can throw 'Claude Code projects directory not found'. It also attempts file writes that can fail. The tool provides no error classification (retryable vs. user-fixable vs. fatal) or actionable recovery hints to the LLM.
The tool modifies files on disk (a destructive operation) but has no confirmation or dry-run capability. An LLM may invoke it unintentionally, causing data loss. No destructiveHint annotation is present.
Parameter descriptions are minimal. 'user_message' is described as 'The message you sent to Claude Code that triggered this revert request' but does not explain what happens if the message is not found, whether partial matches are allowed, or whether the search is case-sensitive. 'conversation_history' is described as 'Conversation history to track previous revert operations' but does not explain the expected format or structure.