ttwolven
更新于 6/7/2025

MCP-CodeSavant: 为Claude Desktop提供强大的代码操作功能

仓库概览

项目简述

MCP-CodeSavant是一个工作进行中的(Model Context Protocol, MCP)服务器项目,为Claude Desktop提供代码操作、执行和版本控制的能力。它不仅能让AI助手读取、编写及执行代码,还能维护代码变更历史,确保代码的完整性与安全性。

项目特色

  • 代码读写与行操作: 提供针对代码文件的精细化行操作,方便开发者高效编辑代码。
  • 多语言代码执行: 支持Python与Node.js的代码执行,满足多语言开发需求。
  • 受控环境中的Shell命令执行: 可在安全的沙盒环境中执行Shell命令,确保系统安全。
  • 代码变更追踪与管理: 整合版本控制工具,简化变更管理流程。
  • 代码内搜索: 支持在代码文件内进行快速搜索,提高搜索效率。
  • 代码版本回退: 可以还原至历史版本,避免代码更改失误。

安装指南

克隆仓库

你可以通过以下命令克隆代码库:

git clone https://github.com/twolven/mcp-codesavant.git
cd mcp-codesavant

安装依赖

确认进入仓库目录后,运行以下命令安装必须的依赖:

pip install -r requirements.txt

配置服务器

根据以下配置指令,将服务器配置添加到你的Claude Desktop的config.json文件中:
{
  "mcpServers": {
    "codesavant": {
      "command": "python",
      "args": ["path/to/codesavant.py"]
    }
  }
}

目录结构

本项目将创建和管理以下目录结构以组织项目文件:

workspaces/
├── project1/
│   ├── .code_history.json
│   └── [代码文件]
├── project2/
│   ├── .code_history.json
│   └── [代码文件]
└── ...

工具参考

详细使用说明

1. read_code_file

读取代码文件的内容,可选地搜索特定部分。

{
    "project": "string",     // 项目名称
    "path": "string",        // 文件相对项目工作空间的路径
    "search": "string"       // (可选) 要在文件中搜索的文本/模式
}

返回示例:

{
    "success": true,
    "timestamp": 1234567890,
    "data": {
        "content": "string",      // 文件内容
        "start_line": number,     // (仅在使用搜索时) 找到部分的起始行
        "end_line": number       // (仅在使用搜索时) 找到部分的结束行
    }
}

2. write_code_file

对代码文件中的特定行进行写入或更新。

{
    "project": "string",     // 项目名称
    "path": "string",        // 文件相对工作空间的路径
    "content": "string",     // 要写入的内容(仅限于更改的行)
    "start_line": number,    // 更改的起始行号
    "end_line": number      // (可选) 更改的结束行号
}

返回示例:

{
    "success": true,
    "timestamp": 1234567890,
    "data": {
        "diff": {
            "changes": [           // 所做更改的列表
                [string, number, number, number, number]  // (类型, 旧开始, 旧结束, 新开始, 新结束)
            ],
            "timestamp": number    // 更改的时间戳
        }
    }
}

3. get_code_history

获取代码文件的变更历史。

{
    "path": "string"        // 文件相对工作空间的路径
}

返回示例:

{
    "success": true,
    "timestamp": 1234567890,
    "data": {
        "history": [
            {
                "changes": [       // 所做更改的列表
                    [string, number, number, number, number]
                ],
                "timestamp": number
            }
        ]
    }
}

4. execute_code_command

执行与代码相关的Shell命令。

{
    "command": "string",     // 要执行的Shell命令
    "timeout": number       // (可选) 命令超时时间,单位秒 (默认: 30)
}

返回示例:

{
    "success": true,
    "timestamp": 1234567890,
    "data": {
        "state": "success|error|timeout|cancelled",
        "output": "string",        // 命令输出
        "error": "string",         // 错误信息(如果有)
        "runtime": number,         // 执行时间,单位秒
        "exit_code": number       // 命令退出码
    }
}

5. execute_code

执行指定语言的代码。

{
    "code": "string",        // 要执行的代码
    "language": "string",    // 编程语言 ("python"或者"node")
    "timeout": number       // (可选) 执行超时时间,单位秒 (默认: 30)
}

返回示例:

{
    "success": true,
    "timestamp": 1234567890,
    "data": {
        "state": "success|error|timeout|cancelled",
        "output": "string",        // 代码执行输出
        "error": "string",         // 错误信息(如果有)
        "runtime": number,         // 执行时间,单位秒
        "exit_code": number       // 执行退出码
    }
}

6. revert_to_version

将代码文件还原到特定版本。

{
    "path": "string",        // 文件相对工作空间的路径
    "timestamp": number     // 要还原到的版本时间戳
}

返回示例:

{
    "success": true,
    "timestamp": 1234567890,
    "data": {
        "diff": {
            "changes": [           // 所做更改的列表
                [string, number, number, number, number]
            ],
            "timestamp": number    // 还原的时间戳
        }
    }
}

7. read_code_file_lines

读取代码文件中的特定行。

{
    "project": "string",     // 项目名称
    "path": "string",        // 文件相对项目工作空间的路径
    "start_line": number,    // 要读取的起始行号
    "end_line": number      // (可选) 要读取的结束行号
}

返回示例:

{
    "success": true,
    "timestamp": 1234567890,
    "data": {
        "content": "string"        // 指定行的内容
    }
}

错误处理

服务器将提供详细的错误响应,格式如下:

{
    "success": false,
    "timestamp": 1234567890,
    "data": null,
    "error": "错误信息"
}

可能的错误类型包括:

  • CodeFileError: 文件操作错误
  • CodeValidationError: 代码验证错误
  • CodeExecutionError: 代码执行错误

语言支持

当前支持以下语言进行代码执行:

  • Python (使用系统Python解释器)
  • Node.js (使用node命令)

每种语言执行时都会在工作空间目录下创建一个临时文件,并使用相应的解释器执行。

贡献指南

如果你对本项目感兴趣并希望做出贡献,请遵循以下步骤:

  1. Fork 仓库
  2. 创建你的功能分支
  3. 提交你的代码更改
  4. 推送到分支
  5. 创建一个新的Pull Request

协议

本项目依据MIT协议授权 - 详情请参阅LICENSE文件。

作者信息

Todd Wolven - Github档案

致谢

  • 本项目建立在Anthropic的Model Context Protocol (MCP)之上
  • 为Anthropic的Claude设计开发

潜在应用场景与价值

MCP-CodeSavant在科技和商业领域都具备颇多潜力。其能够高效地帮助开发者进行代码管理和自动化操作,特别适用于需要频繁进行代码迭代和调试的项目。同时,结合AI助手增强了自动化和智能化的编程体验,进一步推动了AI在软件开发中的应用。它亦能在教育领域中,以实时代码运行为技术教学贡献力量,为学生提供自主学习和实践的平台。

关于 mcp-codesavant
CodeSavant是一个MCP服务器,为Claude Desktop提供代码操控和执行功能,支持多语言代码执行及版本管理。

部署安装命令:

{ "mcpServers": { "twolven-mcp-codesavant": { "env": {}, "args": [ "path/to/codesavant.py" ], "command": "python" } } }

服务统计

629查看次数
264使用人数
88质量评分
有状态服务
安装难度: 复杂
部署环境: 本地
服务特性
MCP
代码执行
版本控制

相关MCP

查看更多