文本差异服务

高性能的文本差异比较服务器,提供标准化的差异输出格式,适用于代码审查、文档比对等场景。

  • by kweinmeister
  • Python
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 kweinmeister/fast-diff-mcp

使用说明

快速差异MCP服务器

一个高性能的模型上下文协议服务器,提供文本差异比较功能。该服务器使大型语言模型(LLMs)能够高效地比较两段文本,并以标准的统一差异格式接收它们之间的差异。

核心逻辑采用Rust语言实现,以达到最高速度,相较于标准的Python库,性能有了显著提升。服务器同时提供了高性能的Rust实现和Python原生接口 difflib 以供比较和灵活使用。

可用工具

  • diff_tool_rust_similar - 使用高性能的Rust实现来比较两个多行字符串(该 similar Crate 的 Myers 差分算法)。这是性能方面的推荐工具。

    • original_text (字符串,必填):原文本内容。
    • modified_text (字符串,必填):修改后的文本内容。
  • diff_tool_python_difflib - 使用标准Python比较两个多行字符串 difflib 库(Ratcliff/Obershelp算法)。适用于比较或当……时 difflib-需要特定的行为。

    • original_text (字符串,必填):原文内容。
    • modified_text (字符串,必填):修改后的文本内容。

安装与使用

这个项目是一个带有Rust扩展的Python包,因此需要编译步骤。推荐的安装和运行方法是从本地克隆的仓库中进行。

先决条件

  • Git(注:Git是一个分布式版本控制系统,常用于代码管理)
  • Python(>= 3.10)
  • Rust 工具链
  • 紫外线 (用于Python环境和包管理)

从源代码运行

  1. 克隆仓库:

    git clone https://github.com/kweinmeister/fast-diff-mcp.git
    cd fast-diff-mcp
    
  2. 安装依赖项并编译扩展: 这个命令设置了一个虚拟环境,并以可编辑模式安装了该包。

    uv pip install -e .
    
  3. 运行服务器: 从项目目录的根目录运行:

    uv run server.py
    

配置

要使用MCP客户端连接到此服务器,您必须配置客户端以从本地克隆的此仓库中运行服务器。 以下命令假设您是在克隆仓库的根目录下运行它们 fast-diff-mcp 目录。

为Gemini CLI进行配置

在您的(内容/列表/设置等)中添加以下内容 ~/.gemini/settings.json 文件,替换 /path/to/fast-diff-mcp 加上你克隆仓库的绝对路径。

Using uv (from source)
{
  "mcpServers": {
    "diff": {
      "command": "uv",
      "args": ["run", "server.py"],
      "options": {
        "cwd": "/path/to/fast-diff-mcp"
      }
    }
  }
}

为Claude.app进行配置

在你的Claude设置中添加以下内容,替换(原有设置) /path/to/fast-diff-mcp 加上你克隆仓库的绝对路径。

Using uv (from source)
{
  "mcpServers": {
    "diff": {
      "command": "uv",
      "args": ["run", "server.py"],
      "options": {
        "cwd": "/path/to/fast-diff-mcp"
      }
    }
  }
}

为VS Code进行配置

将以下JSON代码块添加到您的用户设置(JSON)文件或 .vscode/mcp.json 在你的工作区中创建文件。记得替换 /path/to/fast-diff-mcp 使用正确的绝对路径。

请注意,该 mcp 使用时需要密钥 mcp.json 文件。

Using uv (from source)
{
  "mcp": {
    "servers": {
      "diff": {
        "command": "uv",
        "args": ["run", "server.py"],
        "options": {
          "cwd": "/path/to/fast-diff-mcp"
        }
      }
    }
  }
}

基准测试/标杆管理

这个仓库包含一个脚本,用于对Rust实现与Python实现的性能进行基准测试 difflib。

要运行基准测试,请在项目根目录下执行以下命令:

uv run benchmark.py

使用 Docker 部署到 Google Cloud Run

此项目经过优化,可利用其内置的多阶段构建功能部署到无服务器平台,如Google Cloud Run Dockerfile。

最直接的部署方式是使用 gcloud CLI(命令行界面),它将在一个步骤中构建容器并将其部署。

先决条件:

要部署,请运行以下命令:

# 1. Set your project, region, and service name
export PROJECT_ID="your-google-cloud-project-id"
export REGION="us-central1"
export SERVICE_NAME="fast-diff-mcp"

# 2. Configure gcloud to use your project
gcloud config set project $PROJECT_ID

# 3. Deploy from source
# gcloud will build the image and deploy it to Cloud Run
gcloud run deploy $SERVICE_NAME \
  --allow-unauthenticated \
  --region=$REGION \
  --source .

几分钟后, gcloud 将为您的服务提供一个公共URL。

贡献

欢迎提交拉取请求!我们鼓励大家贡献力量,共同改进这个服务器。无论您是想添加新功能、修复漏洞,还是改进文档,您的意见都非常重要。

许可证

Fast Diff MCP Server 根据 Apache License 2.0 授权。如需更多详情,请参阅 LICENSE 项目存储库中的文件。