项目简介

MCP备份服务器是一个专门为AI Agent和代码编辑器设计的MCP (Model Context Protocol) 服务器,它通过提供备份和恢复工具,增强了这些应用在代码编辑和创作过程中的数据安全性和操作灵活性。与传统的版本控制系统Git不同,该服务器专注于为用户提供即时、定向的备份,特别是在进行高风险的代码修改或结构调整前,提供快速“保存点”功能。

主要功能点

  • 文件备份与恢复: 支持对单个文件进行备份和恢复,保留历史版本。
  • 文件夹备份与恢复: 支持对整个文件夹进行备份和恢复,方便项目级别的整体回退。
  • 上下文关联备份: 允许在创建备份时附加Agent上下文信息,记录备份时的操作意图或思考过程。
  • 版本管理: 自动管理备份版本,并可配置最大版本数量,避免备份无限增长。
  • 紧急备份: 在执行恢复操作前,可选择创建紧急备份,进一步保障数据安全。
  • 模式过滤: 在文件夹备份时,支持使用模式匹配来包含或排除特定文件,提高备份效率和针对性。
  • 操作取消: 支持取消正在进行的备份或恢复操作。

安装步骤

  1. 手动安装

    首先确保你的系统中已安装 Node.js 和 npm。

    # 克隆仓库到本地
    git clone https://github.com/hexitex/MCP-Backup-Server.git
    cd MCP-Backup-Server
    
    # 安装依赖
    npm install
    
    # 构建TypeScript文件
    npm run build
  2. 启动服务器

    构建完成后,使用以下命令启动 MCP 备份服务器:

    npm start

    服务器默认监听标准输入输出 (stdio),并使用环境变量进行配置。

服务器配置

MCP客户端需要配置服务器的启动命令以建立连接。以下是通用的配置信息,你需要根据你的MCP客户端进行配置 (例如 Cursor 或 Windsurf):

{
  "serverName": "backup",
  "command": "node",
  "args": ["./dist/index.js"],
  "env": {
    "BACKUP_DIR": "./.code_backups",  // 备份文件存放的主目录,默认为用户Home目录下的 .code_backups 文件夹
    "EMERGENCY_BACKUP_DIR": "./.code_emergency_backups", // 紧急备份文件存放目录,默认为用户Home目录下的 .code_emergency_backups 文件夹
    "MAX_VERSIONS": "10"  // 每个文件或文件夹保留的最大备份版本数,默认为 10
  }
}

配置参数说明:

  • 'serverName': 服务器名称,客户端用以识别和调用,例如 "backup"。
  • 'command': 启动服务器的命令,这里是 'node'。
  • 'args': 启动命令的参数,指定服务器入口文件 './dist/index.js'。
  • 'env': 环境变量配置,包括备份目录、紧急备份目录和最大版本数。

注意: 请将以上 JSON 配置信息填写到你的 MCP 客户端的配置文件中 (例如 Cursor 的 '.cursor/mcp.json' 或 Windsurf 的 MCP 配置)。具体的配置文件位置和格式请参考你的 MCP 客户端的文档。你不需要修改或运行代码,只需要复制配置信息到客户端即可。

基本使用方法

MCP 备份服务器通过 JSON-RPC 协议与客户端通信,提供以下工具 (Tools):

  • 'backup_create': 创建文件备份。
    • 参数: 'file_path' (文件绝对路径), 'agent_context' (可选,备份上下文描述)。
  • 'backup_list': 列出文件备份版本。
    • 参数: 'file_path' (文件绝对路径)。
  • 'backup_restore': 恢复文件备份。
    • 参数: 'file_path' (文件绝对路径), 'timestamp' (备份时间戳), 'create_emergency_backup' (可选,恢复前创建紧急备份,默认为true)。
  • 'backup_folder_create': 创建文件夹备份。
    • 参数: 'folder_path' (文件夹绝对路径), 'include_pattern' (可选,包含文件模式), 'exclude_pattern' (可选,排除文件模式), 'agent_context' (可选,备份上下文描述)。
  • 'backup_folder_list': 列出文件夹备份版本。
    • 参数: 'folder_path' (文件夹绝对路径)。
  • 'backup_folder_restore': 恢复文件夹备份。
    • 参数: 'folder_path' (文件夹绝对路径), 'timestamp' (备份时间戳), 'create_emergency_backup' (可选,恢复前创建紧急备份,默认为true)。
  • 'backup_list_all': 列出所有备份 (包括文件和文件夹备份)。
    • 参数: 'include_pattern' (可选,包含文件模式), 'exclude_pattern' (可选,排除文件模式), 'include_emergency' (可选,包含紧急备份,默认为true)。
  • 'mcp_cancel': 取消操作。
    • 参数: 'operationId' (操作ID)。

在 MCP 客户端中,你可以通过调用这些工具来执行相应的备份和恢复操作。具体的调用方式取决于你的 MCP 客户端,通常是以 JSON 格式发送请求到 MCP 服务器。请参考你的 MCP 客户端文档来了解如何配置和使用 MCP 服务器。

使用示例 (Agent 请求 JSON 格式):

// 创建文件备份
{
  "name": "mcp0_backup_create",
  "parameters": {
    "file_path": "./src/core.js",
    "agent_context": "Add validation feature"
  }
}

// 列出文件备份
{
  "name": "mcp0_backup_list",
  "parameters": {
    "file_path": "./src/core.js"
  }
}

// 恢复文件备份
{
  "name": "mcp0_backup_restore",
  "parameters": {
    "file_path": "./src/core.js",
    "timestamp": "20250310-055950-000",
    "create_emergency_backup": true
  }
}

提示: 请确保在进行重要的代码修改或结构调整前,使用备份工具创建备份,以便在必要时能够快速恢复。

信息

分类

数据库与文件