CodeRecoder MCP
An intelligent code version management system based on the MCP protocol, providing AI-enhanced code snapshots, project versioning, and smart change detection for AI-assisted programming.
README
CodeRecoder MCP
<div align="center">
智能代码版本管理系统 - 基于MCP协议的AI增强代码快照与恢复工具
</div>
🌟 项目简介
CodeRecoder是一个基于**Model Context Protocol (MCP)**的智能代码版本管理系统,专为AI辅助编程设计。它提供了类似Cursor编辑器的多轮生成和撤销功能,支持瞬间文件快照、项目级版本控制、智能变更检测和AI增强的代码分析。
✨ 核心特性
- 🚀 瞬间快照 - 基于直接文件复制的高性能快照系统
- 🧠 AI增强分析 - 集成Serena代码分析,智能识别代码变更和复杂度
- 📦 项目级版本控制 - 类似Cursor的增量/全量快照策略
- 🔍 智能变更检测 - 四重检测机制:Git状态、文件统计、内容哈希、时间戳
- 🏷️ 快照标签系统 - 用户友好的快照命名和分类
- 🔗 智能链式恢复 - 增量快照依赖关系自动处理
- 📊 结构化数据管理 - 项目独立的
.CodeRecoder目录结构 - 🛡️ 安全恢复机制 - 验证快照内容,防止意外数据丢失
🛠 技术架构
系统组件
CodeRecoder MCP Server
├── 📁 Core Managers
│ ├── ProjectManager # 项目激活与配置管理
│ ├── FileSnapshotManager # 单文件快照管理
│ ├── ProjectSnapshotManager# 项目级快照管理
│ └── HistoryManager # 传统编辑历史管理
├── 🔍 Analysis Services
│ └── AIAnalysisService # AI代码分析集成
├── 📊 Data Structure
│ └── DataStructureManager # 结构化数据管理
└── 🌐 MCP Interface
└── CodeRecoderServer # MCP协议服务器
数据存储结构
每个项目在其根目录下维护独立的.CodeRecoder目录:
.CodeRecoder/
├── config/ # 项目配置
│ ├── project.json # 项目元信息
│ ├── settings.json # 用户设置
│ └── cache.json # 缓存配置
├── snapshots/ # 快照存储
│ ├── files/ # 文件快照
│ │ ├── [sessionId]/ # 会话分组
│ │ └── sessions.json # 会话索引
│ ├── projects/ # 项目快照
│ │ ├── [snapshotId]/ # 完整项目副本
│ │ └── index.json # 快照索引
│ └── snapshots.json # 文件快照数据
├── history/ # 编辑历史
│ ├── edits.json # 编辑记录
│ └── sessions.json # 会话历史
├── analysis/ # AI分析缓存
│ ├── ai_summaries.json # AI分析结果
│ └── code_metrics.json # 代码指标
└── logs/ # 系统日志
├── debug.log # 调试日志
└── error.log # 错误日志
🚀 快速开始
环境要求
- Node.js >= 18.0.0
- TypeScript >= 5.3.0
- Git (用于变更检测)
- MCP兼容的AI助手 (如Claude Desktop、Cline等)
安装步骤
- 克隆仓库
git clone https://github.com/yourusername/CodeRecoder.git
cd CodeRecoder
- 安装依赖
npm install
- 构建项目
npm run build
- 配置MCP客户端
在Claude Desktop配置文件中添加:
{
"mcpServers": {
"coderecoder": {
"command": "node",
"args": ["/path/to/CodeRecoder/dist/index.js"],
"cwd": "/path/to/CodeRecoder"
}
}
}
- 启动服务
npm start
快速测试
# 激活项目
activate_project {"projectPath": "/path/to/your/project"}
# 创建文件快照
create_file_snapshot {
"filePath": "/path/to/file.js",
"prompt": "添加新功能前的备份"
}
# 创建项目快照
create_project_snapshot {
"prompt": "功能开发完成",
"name": "Feature v1.0",
"tags": ["stable", "feature"]
}
# 列出快照
list_project_snapshots {}
# 恢复快照
restore_project_snapshot {"snapshotId": "your-snapshot-id"}
📖 MCP工具API
项目管理
activate_project
激活项目进行代码跟踪,创建结构化的.CodeRecoder目录。
{
"projectPath": string, // 项目根目录路径
"projectName"?: string, // 可选项目名称
"language"?: string // 可选编程语言
}
deactivate_project
停用当前项目并可选择性保存历史记录。
list_projects
列出所有可用项目和当前激活的项目。
get_project_info
获取项目的详细信息。
文件快照管理
create_file_snapshot
为单个文件创建瞬间快照,支持AI分析。
{
"filePath": string, // 文件路径
"prompt": string, // 快照描述
"sessionId"?: string, // 可选会话ID
"metadata"?: object // 可选元数据
}
restore_file_snapshot
从快照恢复文件,支持即时恢复。
{
"snapshotId": string // 快照ID
}
list_file_snapshots
列出带有AI分析摘要的文件快照。
delete_file_snapshot
删除特定文件快照(不可撤销)。
项目快照管理
create_project_snapshot
创建项目级快照,类似Cursor的工作方式。
{
"prompt": string, // 快照描述
"name"?: string, // 用户友好名称
"tags"?: string[], // 快照标签
"projectPath"?: string // 可选项目路径
}
特性:
- 🔍 智能变更检测(四重检测机制)
- 📦 增量/全量快照策略
- 🧠 Serena代码分析集成
- 🏷️ 标签分类系统
list_project_snapshots
列出所有项目快照,包含详细信息:
输出信息:
- 📅 快照时间和时间差
- 🏷️ 快照名称和标签
- 🤖 AI分析摘要
- 📁 实际文件数量
- 🔗 依赖快照关系
- 📏 快照大小信息
restore_project_snapshot
智能恢复项目快照,支持增量快照链式恢复。
{
"snapshotId": string // 快照ID
}
特性:
- 🔗 自动构建恢复链
- 🛡️ 安全验证机制
- 📊 详细恢复进度
传统版本控制
record_edit
记录代码编辑(传统方式,建议使用快照)。
rollback_to_version
回滚到特定版本(传统方式)。
list_history
列出编辑历史记录。
会话管理
create_session
创建新的编辑会话来组织相关变更。
get_current_session
获取当前活动会话的信息。
get_diff
生成两个版本之间的差异比较。
🧠 智能特性
AI增强分析
CodeRecoder集成了先进的AI分析能力:
- 代码复杂度评估 - 自动评估代码变更的复杂度
- 变更意图识别 - 智能识别变更类型(功能、修复、重构等)
- 影响范围分析 - 分析代码变更的潜在影响
- Serena集成 - 深度代码结构和语义分析
智能变更检测
四重检测机制确保任何文件变更都能被准确捕获:
- Git状态检测 - 基于Git的变更状态
- 文件统计对比 - 文件大小、修改时间对比
- 内容哈希对比 - SHA256内容哈希验证
- 时间戳检测 - 最近修改文件扫描
智能快照策略
- 增量快照 - 只保存变更的文件,节省存储空间
- 全量快照 - 定期创建完整项目副本作为基线
- 智能触发 - 基于变更量和时间间隔自动决定快照类型
- 链式恢复 - 增量快照自动关联依赖,确保完整恢复
🔧 高级配置
项目配置
在项目的.CodeRecoder/config/project.json中可以配置:
{
"projectName": "MyProject",
"language": "typescript",
"features": {
"fileSnapshots": true,
"projectSnapshots": true,
"aiAnalysis": true,
"autoBackup": false
},
"settings": {
"maxSnapshots": 100,
"autoCleanup": true,
"fullSnapshotInterval": 10
}
}
快照策略配置
{
"fullSaveInterval": 10, // 每10次增量保存执行一次全量保存
"maxSnapshots": 100, // 最大快照数量
"autoCleanup": true, // 自动清理旧快照
"excludePatterns": [ // 排除文件模式
"node_modules",
".git",
"*.log"
]
}
🛡️ 安全特性
数据安全
- 内容验证 - 快照恢复前验证文件完整性
- 备份机制 - 恢复前自动创建当前文件备份
- 原子操作 - 确保操作的原子性,避免部分失败
- 路径安全 - 严格的路径验证,防止目录遍历攻击
恢复安全
- 快照验证 - 恢复前检查快照内容和完整性
- 依赖检查 - 增量快照恢复前验证依赖链完整性
- 安全模式 - 移除危险的
--delete参数,防止意外删除 - 回滚保护 - 提供多层次的回滚和恢复机制
🚀 性能优化
高性能特性
- 直接文件复制 - 避免内容分析开销,实现毫秒级快照
- 增量存储 - 只保存变更文件,大幅减少存储需求
- 并行处理 - 多文件操作支持并行执行
- 智能缓存 - 文件哈希和元数据缓存,避免重复计算
性能基准
- 文件快照 - < 50ms (单文件)
- 项目快照 - < 2s (100+ 文件项目)
- 快照恢复 - < 1s (完整项目恢复)
- 变更检测 - < 500ms (智能四重检测)
🤝 集成指南
与AI助手集成
CodeRecoder专为AI辅助编程设计,完美集成:
- Claude Desktop - 通过MCP协议原生支持
- Cline - VS Code扩展直接集成
- 其他MCP客户端 - 任何支持MCP的AI助手
工作流示例
// 1. 激活项目
await activate_project({projectPath: "/my/project"});
// 2. 开发前创建检查点
await create_project_snapshot({
prompt: "开始新功能开发",
name: "开发起点",
tags: ["checkpoint", "stable"]
});
// 3. 开发过程中创建文件快照
await create_file_snapshot({
filePath: "/my/project/src/feature.ts",
prompt: "实现核心逻辑"
});
// 4. 功能完成后创建项目快照
await create_project_snapshot({
prompt: "新功能开发完成",
name: "Feature X v1.0",
tags: ["feature", "complete", "tested"]
});
// 5. 如需回滚
await restore_project_snapshot({
snapshotId: "checkpoint-snapshot-id"
});
🔄 迁移指南
从其他工具迁移
从Git迁移
# CodeRecoder可以与Git并存
# 激活项目后自动检测Git状态
activate_project {"projectPath": "/existing/git/project"}
从Cursor迁移
CodeRecoder提供类似Cursor的快照功能:
- 使用
create_project_snapshot替代Cursor的项目快照 - 使用
list_project_snapshots查看快照历史 - 使用
restore_project_snapshot恢复到特定状态
🐛 故障排除
常见问题
快照创建失败
# 检查项目是否正确激活
get_project_info {}
# 检查磁盘空间
df -h
# 查看详细日志
tail -f .CodeRecoder/logs/debug.log
恢复失败
# 验证快照完整性
list_project_snapshots {}
# 检查快照文件
ls -la .CodeRecoder/snapshots/projects/[snapshot-id]/
变更检测不工作
# 检查文件基线
# 如果基线为空,会自动重建
create_project_snapshot {"prompt": "重建基线"}
调试模式
启用详细日志:
# 设置环境变量
export DEBUG=coderecoder:*
npm start
🤝 贡献指南
我们欢迎社区贡献!请遵循以下步骤:
开发环境设置
git clone https://github.com/yourusername/CodeRecoder.git
cd CodeRecoder
npm install
npm run build
提交指南
- Fork 项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
代码规范
- 使用 TypeScript 严格模式
- 遵循 ESLint 配置
- 添加适当的注释和文档
- 编写单元测试
📄 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
🙏 致谢
- Model Context Protocol - 为AI助手提供结构化工具访问
- Cursor - 启发了项目快照和版本控制设计
- TypeScript - 提供类型安全和开发体验
- Node.js - 运行时环境
📊 项目统计
- 代码行数: ~2,500 行 TypeScript
- 核心模块: 8 个
- MCP工具: 18 个
- 支持的语言: 全部(语言无关)
- 最低Node版本: 18.0.0
🔗 相关链接
<div align="center">
CodeRecoder - 让AI辅助编程更加智能和安全
</div>
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.