Rewind-MCP

khalilbalaree/Rewind-MCP

3.4

If you are the rightful owner of Rewind-MCP and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

Rewind MCP is a smart and lightweight checkpointing server designed for the Claude Code CLI, offering seamless project state management and restoration.

šŸ”„ Rewind MCP

Smart and lightweight checkpointing mcp server for Claude Code CLI.

Features

  • šŸŽÆ Smart Checkpointing: Automatically checkpoint project states before agent wants to make any changes
  • šŸ”„ Complete Undo Support: Restore modified files, recover deleted files, or remove unwanted files
  • ⚔ Fast Multi-File Restore: Rewind changes across multiple files instantly

Example Agent Interaction

šŸ‘¤ User: "Add error handling..."

šŸ¤– Agent: Creating checkpoint before modifications...
āœ… Checkpoint: "Before adding error handling"

šŸ¤– Agent: "I have added error handling to the code"

šŸ‘¤ User: "This breaks the flow, please rewind"

šŸ¤– Agent: Restoring files from checkpoint...
āœ… Files restored to state before error handling

šŸš€ Quick Start

Installation

git clone https://github.com/khalilbalaree/Rewind-MCP.git
cd Rewind-MCP

then,

npm install
npm run build

Claude Code Configuration

Add this server to your Claude Code MCP configuration:

User-Based Configuration (Global)

Edit ~/Library/Application Support/Claude/claude_code_config.json:

{
  "mcpServers": {
    "Rewind-MCP": {
      "command": "node",
      "args": ["/absolute/path/to/Rewind-MCP/dist/index.js"],
      "env": {}
    }
  }
}
Project-Specific Configuration (Alternative)

For easier project sharing and version control, create a .mcp.json file in your project directory:

# In your project directory
cat > .mcp.json << 'EOF'
{
  "mcpServers": {
    "Rewind-MCP": {
      "command": "node",
      "args": ["/absolute/path/to/Rewind-MCP/dist/index.js"],
      "env": {}
    }
  }
}
EOF

Use Cases

šŸ‘¤ User: "Add error handling to my API"

šŸ¤– Agent: I'll add comprehensive error handling to your API files.

[Agent modifies src/api/routes.js]
āœ… Checkpoint created and pushed to stack: "Modified src/api/routes.js"

[Agent creates src/middleware/errorHandler.js]
āœ… Checkpoint created and pushed to stack: "Created src/middleware/errorHandler.js"

šŸ¤– Agent: I've added try-catch blocks and centralized error handling to your API routes and created a new error middleware.

šŸ‘¤ User: "Actually, I want to try a different approach. Can you show me what checkpoints are available?"

šŸ¤– Agent: I'll show you the available checkpoints.
šŸ“‹ Available checkpoints:
  1. "Created src/middleware/errorHandler.js" - [Most Recent]
  2. "Modified src/api/routes.js"
  3. "Database schema update"
  4. "Initial project setup"

šŸ‘¤ User: "Rewind the most recent changes"

šŸ¤– Agent: I'll restore the files from the most recent checkpoints.
āœ… Undone: "Created src/middleware/errorHandler.js"
āœ… Undone: "Modified src/api/routes.js"
Restored files:
  - src/api/routes.js (restored)
  - src/middleware/errorHandler.js (deleted)

šŸ‘¤ User: "Perfect! Now implement error handling using a custom Error class instead"

šŸ¤– Agent: I'll implement error handling using a custom Error class approach.

[Agent modifies src/api/routes.js]
āœ… Checkpoint created and pushed to stack: "Modified src/api/routes.js"

[Agent creates src/utils/CustomError.js]
āœ… Checkpoint created and pushed to stack: "Created src/utils/CustomError.js"

šŸ¤– Agent: I've implemented error handling using a custom Error class that provides better error categorization and response formatting.

Available Functional Calls for Claude

Just ask, and it will do the rest.

  • checkpoint(files, description) - Create checkpoint before changes
  • undo(file) - Restore to previous checkpoint
  • list_undos() - Show available checkpoints
  • cleanup - clean up all the checkpoints
  • status() - Show current checkpoint status

šŸ¤ Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

šŸ“„ License

MIT License - see file for details.

šŸ™‹ā€ā™‚ļø Support


Built with ā¤ļø for the Claude Code ecosystem