Token导航 LogoToken导航TokenDH.com
patch MCP logo
安全风控stdio官方级别未说明来源级核验

patch MCP

MCP Server

一个基于Model Context Protocol的补丁管理服务器,支持AI助手安全应用统一差异补丁到文件,并提供全面的安全验证和备份恢复功能。

工具数

0

提示词数

0

GitHub Stars

2

资源数

0
PythonClaude安全Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

shenning00

提供方

shenning00

最后核验

2026/5/17 20:19

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python3 -m venv .venv

详细介绍

补丁MCP服务器

![CI](https://github.com/shenning00/patch_mcp/actions) ![License: MIT](https://opensource.org/licenses/MIT) ![Python 3.10+](https://www.python.org/downloads/) ![Code style: black](https://github.com/psf/black) ![Coverage](https://github.com/shenning00/patch_mcp)

A. 模型上下文协议(MCP) 服务器能够使AI助手在全面的安全验证下,安全地对文件应用统一的差异补丁。

版本2.0.0 | 状态Beta(测试版)| 工具7 | 测试覆盖率84%(286项测试)

______________________________________________________________________

为什么要修补MCP服务器?

启用您的AI助手以:

  • 应用代码更改 使用标准的统一差异格式
  • 验证补丁 在应用它们之前
  • 创建和恢复备份 自动地
  • 撤销更改 如果出现问题,确保安全
  • 原子性地应用多个更改 通过多块补丁
  • 测试更改 在提交前进行预演模式(或模拟运行)

全部与 内置安全功能 (无符号链接、二进制文件或目录遍历)以及 自动回滚 关于失败。

______________________________________________________________________

为什么使用补丁工具而不是直接编辑?

对于AI助手和开发者而言, apply_patch 相较于传统的编辑操作提供了显著优势

功能apply_patch编辑工具
格式标准统一差异(如 git diff)自定义旧/新字符串
多次变更✅ 多片段(原子性)❌ 分离调用(无原子性)
更改可见性✅ 清晰的差异视图❌ 难以发现差异
代币效率✅ 令牌减少~50%❌ 需要完整的旧+新字符串
测试✅ 支持干运行模式❌ 无预览功能
原子性✅ 所有更改同时成功/失败❌ 可能进行部分更新
可审查性✅ 开发者熟知的标准格式❌ 自定义格式

现实世界中的例子

任务在一个文件中更新3个配置值

  • 编辑3次独立的工具调用,无原子性,难以审查
  • 应用补丁1次调用包含3个片段,原子操作,清晰的差异

简而言之对于大多数文件修改来说,使用apply_patch比直接编辑操作更高效、更安全、更清晰。

______________________________________________________________________

快速入门

安装

# Clone the repository
git clone https://github.com/shenning00/patch_mcp.git
cd patch_mcp

# Create virtual environment and install
python3 -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
pip install -e ".[dev]"

使用Claude桌面版进行配置

添加到您的Claude桌面MCP配置中(~/Library/Application Support/Claude/claude_desktop_config.json (在 macOS 上):

{
  "mcpServers": {
    "patch": {
      "command": "python",
      "args": ["-m", "patch_mcp"],
      "cwd": "/path/to/patch_mcp"
    }
  }
}

重启Claude桌面版后,补丁工具即可使用。

独立运行

python -m patch_mcp

服务器以标准输入输出(stdio)模式运行,并通过模型上下文协议进行通信。

______________________________________________________________________

可用工具

服务器提供了7种工具以实现全面的补丁管理:

核心补丁操作

  1. apply_patch - 对文件应用统一的差异补丁

- 支持多块补丁(原子方式应用多个更改) - 测试模式(不修改原样运行) - 应用前自动验证

  1. validate_patch - 检查是否可以应用补丁(只读)

- 在应用更改前进行预览 - 检测上下文不匹配 - 查看受影响的行范围

  1. revert_patch - 取消之前应用的补丁

- 安全地撤销更改 - 支持多片段补丁 - 需要准确的原始补丁

  1. generate_patch - 从两个文件版本创建补丁

- 比较原始文件和修改后的文件 - 生成标准的统一差异格式 - 可配置的上下文行

分析与检验

  1. inspect_patch - 分析补丁内容(无需文件)

- 查看哪些文件受到影响 - 统计代码块和行变更 - 支持多文件补丁

备份与恢复

  1. backup_file - 创建带有时间戳的备份

- 格式: filename.backup.YYYYMMDD_HHMMSS - 保留文件元数据 - 自动检查磁盘空间

  1. restore_backup - 从备份中恢复

- 自动检测原始位置 - 在覆盖前进行安全检查 - 提供强制选项

______________________________________________________________________

示例:人工智能助手如何使用这台服务器

场景1:简单的代码修改

AI助手的思考过程:

“用户希望在config.py中将超时时间从30秒改为60秒。我将使用补丁服务器来安全地完成此操作。”

人工智能使用工具:

  1. 生成补丁:
Tool: generate_patch
Args: {
  "original_file": "config.py",
  "modified_file": "config_new.py"
}
  1. 验证其可应用性:
Tool: validate_patch
Args: {
  "file_path": "config.py",
  "patch": "--- config.py\n+++ config.py\n@@ -10,3 +10,3 @@\n-timeout = 30\n+timeout = 60"
}
Result: {
  "success": true,
  "can_apply": true,
  "preview": {"lines_to_add": 1, "lines_to_remove": 1}
}
  1. 在应用前创建备份:
Tool: backup_file
Args: {"file_path": "config.py"}
Result: {"backup_file": "config.py.backup.20250118_143052"}
  1. 应用补丁:
Tool: apply_patch
Args: {
  "file_path": "config.py",
  "patch": "--- config.py\n+++ config.py\n@@ -10,3 +10,3 @@\n-timeout = 30\n+timeout = 60"
}
Result: {"success": true, "applied": true}

AI向用户报告:

“我已经在config.py中将超时时间从30秒更新为60秒。同时,已创建config.py.backup.20250118_143052作为备份,以防您需要回滚。”

______________________________________________________________________

场景2:带预演的多文件重构

AI助手的思考过程:

“用户想在三个文件中重命名一个函数。我应该先用模拟运行测试一下,然后再进行原子化应用。”

人工智能使用工具:

  1. 对每个补丁进行干运行测试:
Tool: apply_patch
Args: {
  "file_path": "utils.py",
  "patch": "...",
  "dry_run": true
}
Result: {"success": true, "changes": {"lines_added": 5, "lines_removed": 5}}
  1. 应用所有补丁:
Applies each patch with backups and validation

AI向用户报告:

“我已经在 utils.py、handlers.py 和 tests.py 中重命名了该函数。所有更改都先经过了验证,然后以原子方式应用。”

______________________________________________________________________

情景3:出了点问题

AI助手的思考过程:

“补丁应用失败。我应该恢复到备份状态。”

人工智能使用工具:

Tool: restore_backup
Args: {
  "backup_file": "config.py.backup.20250118_143052"
}
Result: {"success": true, "restored_to": "config.py"}

AI向用户报告:

“补丁无法应用,因为文件内容不匹配。我已经从备份中恢复了原始文件。自我们讨论这个更改以来,该文件可能已被修改过。”

______________________________________________________________________

安全特性

所有操作均包含全面的安全检查:

  • 🔒(锁形符号,常用于表示安全、保密或锁定状态) 符号链接保护 - 符号链接被拒绝(安全策略)
  • 🔒(锁形符号,通常表示安全、保密或锁定状态) 二进制文件检测 - 二进制文件自动检测并被拒绝
  • 🔒(锁形图标,通常表示安全、保密或锁定状态) 大小限制 - 文件大小最大为10MB
  • 🔒(锁形图标,常用于表示安全、保密或锁定状态) 磁盘空间验证 - 确保操作前有100MB以上的可用空间
  • 🔒(锁形图标,通常表示安全、保密或锁定状态) 路径遍历防护 - 防止目录逃逸
  • 🔒 表示“锁定”或“安全”的符号。 权限检查 - 验证读/写权限
  • 🔒(锁形符号,常用于表示安全、保密或锁定状态) 原子操作 - 文件替换使用原子重命名

SECURITY.md 翻译为中文是:“安全说明文件”或“安全指南文件” 以获取详细的安全信息。

______________________________________________________________________

多块补丁

一个强大的功能:对文件的不同部分应用多个更改 在原子层面上 在一个补丁中:

--- config.py
+++ config.py
@@ -10,3 +10,3 @@
 # Connection settings
-timeout = 30
+timeout = 60

@@ -25,3 +25,3 @@
 # Retry settings
-retries = 3
+retries = 5

@@ -50,3 +50,3 @@
 # Debug settings
-debug = False
+debug = True

这三个更改要么全部应用,要么一个都不应用。如果任何一部分更改失败,整个补丁将被拒绝。

______________________________________________________________________

文档

文档

错误类型

服务器提供了10种不同的错误类型,以便进行精确的错误处理:

标准误差:

  • file_not_foundpermission_deniedinvalid_patchcontext_mismatchencoding_errorio_error

安全错误:

  • symlink_errorbinary_filedisk_space_errorresource_limit

______________________________________________________________________

测试与质量

  • 286项测试 (全部通过)
  • 84%的代码覆盖率 跨所有模块
  • 严格的类型检查 使用 mypy
  • 代码格式化 与黑色(一起)
  • Linting(在编程领域,通常指代码检查或代码风格检测的过程) 带有绳圈(或项圈)
  • 持续集成/持续交付(CI/CD) 通过 GitHub Actions(Linux、macOS、Windows)
# Run tests
pytest tests/ -v --cov=src/patch_mcp

# Check code quality
black src/patch_mcp tests/
ruff check src/patch_mcp tests/
mypy src/patch_mcp --strict

______________________________________________________________________

做出贡献

欢迎投稿!请参阅 CONTRIBUTING.md 翻译为中文是:“贡献指南.md” 或 “贡献说明文件.md”。这个文件通常用于说明如何向某个项目或组织做出贡献,包括提交代码、报告问题、提出建议等相关的指南和规范 for:

  • 开发环境设置
  • 测试指南
  • 代码质量标准
  • 提交信息规范

______________________________________________________________________

许可证

这个项目遵循MIT许可证授权——详见 许可证 文件中详述。

作者斯科特·亨宁

______________________________________________________________________

支持

______________________________________________________________________

模型上下文协议

这台服务器实现了 模型上下文协议(MCP)这是一个开放协议,使人工智能助手能够安全地与本地工具和数据源进行交互。

了解更多:

______________________________________________________________________

最后更新时间2025年10月19日 阶段5星中的5星(测试版)| 工具7月7日

目录标签

目录标签

PythonClaude安全补丁管理本地部署文件修改安全验证备份恢复AI工具集成

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiononelocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP