返回市场
渗透应用1.7B-MCP

渗透应用1.7B-MCP

作者:Osmosis-AI53 星标更新:2025-07-04

项目介绍

CodeMerge

这是一个使用Osmosis-Apply-1.7B模型来合并代码编辑的Model Context Protocol (MCP)服务器。

  • 代码合并:使用Osmosis/Osmosis-Apply-1.7B模型应用编辑
  • MCP集成:作为Model Context Protocol服务器工作,集成到现有的AI IDE解决方案中
  • 文件操作:可以直接在原地编辑文件或返回编辑后的代码

安装

先决条件

  • Python 3.10或更高版本
  • 已安装并运行的Ollama
  • 拉取Osmosis模型:ollama pull Osmosis/Osmosis-Apply-1.7B

设置

  1. 克隆仓库:
git clone <repository-url>
cd codemerge
  1. 使用uv安装依赖项:
uv sync
  1. 运行:
uv run python codemerge.py

使用方法

作为MCP服务器

CodeMerge可以作为MCP服务器使用。在您的MCP客户端中进行配置:

{
  "mcpServers": {
    "codemerge": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/codemerge",
        "run",
        "codemerge.py"
      ]
    }
  }
}

直接使用

您也可以直接在Python中使用CodeMerge:

from call_snippet import apply_code_edit

# 原始代码
original_code = """def hello():
    print('Hello, World!')
    print('Some code')
    print('Some more code')
    return 'success'"""

# 要应用的编辑
edit_snippet = """def hello():
    print('Hello, Universe!')
    print('Some code')
    # ... existing code ...
    return 'success'"""

# 应用编辑
result = apply_code_edit(original_code, edit_snippet)
print(result)

MCP工具使用

MCP服务器提供了一个带有以下参数的edit_snippet工具:

  • original_code:要编辑的确切原始代码
  • edit_snippet:要应用的编辑,使用// ... existing code ...标记
  • file_path:要更新的文件的绝对路径

示例工具调用:

{
  "name": "edit_snippet",
  "arguments": {
    "original_code": "def hello():\n    print('Hello, World!')",
    "edit_snippet": "def hello():\n    print('Hello, Universe!')\n    # ... existing code ...",
    "file_path": "/path/to/your/file.py"
  }
}

编辑格式

CodeMerge使用一种特定的编辑格式,该格式在简洁的同时保留上下文:

// ... existing code ...
FIRST_EDIT
// ... existing code ...
SECOND_EDIT
// ... existing code ...
THIRD_EDIT
// ... existing code ...

// ... existing code ...标记指示应保留的原始代码位置。这允许您仅指定想要更改的部分,同时保持原始代码的确切结构和格式。

依赖项

  • httpx>=0.28.1:用于API调用的HTTP客户端
  • mcp[cli]>=1.10.1:Model Context Protocol实现
  • ollama:Ollama的Python客户端(单独安装)

架构

CodeMerge由几个组件组成:

  • codemerge.py:主要的MCP服务器实现
  • call_snippet.py:具有流支持的直接使用接口
  • test_codemerge.py:全面的测试套件
  • pyproject.toml:项目配置和依赖项