Blob存储与差异服务

BlobGuard MCP是一款轻量级、会话隔离的Blob存储和差异服务器,专为LLM编码代理设计,用于处理大量或频繁的代码编辑,减少幻觉风险并保持工作完整性。

  • by Voidious
  • Python
  • 混合部署
  • 更新于
在 GitHub 查看 voidious/blobguard-mcp

使用说明

BlobGuard MCP

BlobGuard MCP是一个轻量级的、会话隔离的blob存储和差异服务器,专为LLM编码代理进行大量或频繁的代码编辑而设计。它有助于减轻文本处理开销,避免幻觉,并保持正在进行的工作的保真度。

目的

BlobGuard MCP提供了一种多租户、内存中的blob存储和差异化服务,专为LLM编码代理构建。通过在代理外部处理blob存储和差异化,它能够高效、准确地管理大型或大量代码更改,降低幻觉风险,并保持正在进行的工作的完整性。

多会话支持

此服务器设计为多租户。它会自动为每个客户端连接创建一个唯一的、隔离的工作区。

所有blob都会根据连接自动命名。这意味着多个用户或应用程序可以同时与服务器交互,而其数据不会相互干扰,从而确保安全和可预测的体验,而无需任何所需的客户端配置。

安装

要开始使用BlobGuard MCP,请按照以下安装说明进行操作。

  1. 克隆存储库:

    git clone https://github.com/Voidious/blobguard-mcp.git
    cd blobguard-mcp
    
  2. 创建和激活虚拟环境:

    对于macOS/Linux:

    python3 -m venv .venv
    source .venv/bin/activate
    

    对于Windows:

    python -m venv .venv
    .\.venv\Scripts\activate
    
  3. 再进行: 使用以下命令安装所需的Python包 requirements.txt 文件。

    pip install -r requirements.txt
    

用法

BlobGuard MCP旨在用作具有MCP兼容客户端的服务器,例如Cursor或VS Code等编辑器中的AI编码助手。

要配置服务器,请在编辑器的配置中找到“MCP工具”或“MCP服务器”设置。然后,添加一个新的服务器配置块,如下所示:

对于macOS/Linux/Windows(Git Bash/WSL/Cygwin):

"blobguard": {
  "command": "/path/to/your/clone/of/blobguard-mcp/run.sh"
}

对于Windows(命令提示符或PowerShell):

"blobguard": {
  "command": "C:\\path\\to\\your\\clone\\of\\blobguard-mcp\\run.bat"
}

确保将路径替换为克隆存储库中脚本的实际位置。该脚本将自动激活虚拟环境并运行服务器。

注: 使用 run.sh 适用于类Unix shell(macOS、Linux、Git Bash、WSL、Cygwin)和 run.bat 适用于本机Windows命令提示符或PowerShell。

配置后,您的AI编码助手将能够使用BlobGuard MCP工具。

使用流式HTTP启动服务器

默认情况下,服务器使用stdio传输运行(适用于本地工具和编辑器集成)。要将服务器作为可流式HTTP服务运行(建议用于基于web的部署或远程访问),请使用 --http 标志:

python main.py --http

您还可以指定自定义主机和端口:

python main.py --http --host 0.0.0.0 --port 9000
  • --http:使用Streamable HTTP(而不是stdio)启动服务器
  • --host:HTTP服务器的主机(默认值:127.0.0.1)
  • --port:HTTP服务器的端口(默认值:8000)

注: 这 run.sh 和 run.bat 脚本也支持这些参数,并将它们传递给 main.py例如:

./run.sh --http --host 0.0.0.0 --port 9000

或在Windows上:

run.bat --http --host 0.0.0.0 --port 9000

如果你忽略了 --http,服务器将使用stdio传输(默认行为):

python main.py

人工智能辅助编码编辑器的使用规则

为了使用BlobGuard MCP获得最佳效果,请加载文件 blobguard-rules.md 将AI辅助编码编辑器(如Cursor或Windsurf)作为规则。这使您的编码助手能够遵循最佳实践,并高效地使用BlobGuard MCP。如果你愿意,你也可以阅读这个文件,但它的主要目的是作为你的编码助手的规则集。

可用工具

save_blob

使用给定名称和可选元数据保存blob。

参数:

  • name (str):blob的唯一名称。
  • content (str):要存储在blob中的内容。
  • metadata (dict,可选):与blob关联的可选元数据。
  • force (bool,可选):如果为True,则用相同的名称覆盖任何现有的blob。默认值为False。

退货:

  • dict: { "success": True } 如果保存,或 { "error": ... } 如果blob存在并且未设置力。

例子:

save_blob(name="foo", content="hello world", metadata={"author": "alice"})

get_blob

按名称检索blob及其元数据。

参数:

  • name (str):要检索的blob的名称。

退货:

  • dict: { "content": content, "metadata": metadata } 如果发现,或 { "error": ... } 如果没有找到。

例子:

get_blob(name="foo")

差异

按名称返回两个blob之间的统一diff,类似于diff命令的输出。

参数:

  • name1 (str):第一个blob的名称。
  • name2 (str):第二个blob的名称。

退货:

  • dict: { "diff": unified_diff_string } 如果两个斑点都存在,或者 { "error": ... }