MCP-CodeSavant: 为Claude Desktop提供强大的代码操作功能
仓库概览
- 仓库名称: mcp-codesavant
- 仓库作者: twolven (Todd Wolven)
- 仓库URL: 点击访问mcp-codesavant GitHub仓库
- 描述: Code execution and line-editing for Claude Desktop using MCP
项目简述
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命令)
每种语言执行时都会在工作空间目录下创建一个临时文件,并使用相应的解释器执行。
贡献指南
如果你对本项目感兴趣并希望做出贡献,请遵循以下步骤:
- Fork 仓库
- 创建你的功能分支
- 提交你的代码更改
- 推送到分支
- 创建一个新的Pull Request
协议
本项目依据MIT协议授权 - 详情请参阅LICENSE文件。
作者信息
Todd Wolven - Github档案
致谢
- 本项目建立在Anthropic的Model Context Protocol (MCP)之上
- 为Anthropic的Claude设计开发
潜在应用场景与价值
MCP-CodeSavant在科技和商业领域都具备颇多潜力。其能够高效地帮助开发者进行代码管理和自动化操作,特别适用于需要频繁进行代码迭代和调试的项目。同时,结合AI助手增强了自动化和智能化的编程体验,进一步推动了AI在软件开发中的应用。它亦能在教育领域中,以实时代码运行为技术教学贡献力量,为学生提供自主学习和实践的平台。