前言
想在人工智能的帮助下进行Vibe编码,但厌倦了被限制在Cursor或Windsurf等工具上,并增加API成本?为什么不利用你已经花钱购买的人工智能助手,比如Claude Desktop,来完成你的开发工作流程呢? 带着这种心态,我开发了这个MCP服务器(或者更确切地说,我让克劳德帮助我开发这个工具)。 设置此MCP服务器后,您的AI助手可以自动搜索项目中的相关文件,分析代码库,并提供智能更正建议。虽然你仍然需要手动构建和运行你的项目,并将错误消息粘贴回对话中,但这种方法可以大大减少已经订阅人工智能服务的用户的重复复制粘贴工作,使开发过程更加简化。
✨ 特性
核心文件操作
- 读取文件:安全读取有大小限制的源代码文件
- 写入文件:使用可选备份创建和更新文件
- 列出文件:使用元数据浏览目录内容
- 流式写作:高效处理大文件写入
🆕 增强型操作(v0.2.1)
- 删除文件:通过自动备份安全删除文件
- 重命名/移动文件:重命名文件或在目录之间移动文件
- 部分写入:LLM优化功能,无需重写整个文件即可更新特定文件部分
🔒 安全功能
- 目录遍历保护:防止访问工作区外
- 文件扩展名白名单:只允许批准的文件类型
- 路径黑名单:阻止访问敏感目录
- 大小限制:防止过多的文件操作
- 并发操作限制:保护系统资源
🚀 快速开始
安装
# Clone the repository
git clone git@hgithub.com/Chakotay-Lee/mcp-source-server
cd mcp-source-server
# Install dependencies
npm install
# Build the project
npm run build
# Run tests
npm testClaude桌面配置
将以下配置添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"source-code-server": {
"command": "node",
"args": ["/path/to/your/mcp-source-server/dist/index.js"],
"env": {
"MCP_WORKSPACE_DIR": "/path/to/your/workspace"
}
}
}
}替换 /path/to/your/mcp-source-server 了解该项目的实际路径,以及 /path/to/your/workspace 使用您想要的工作区目录。
📋 可用工具
基本操作
read_source_file-读取文件内容write_source_file-将内容写入文件list_source_files-列出目录中的文件stream_write_source_file-大文件的流式写入
🆕 增强运营
delete_source_file-使用备份选项删除文件rename_source_file-重命名或移动带有备份的文件partial_write_source_file-更新特定文件内容(LLM优化)
效用
get_server_stats-获取服务器状态和统计信息
🔧 配置
环境变量
MCP_WORKSPACE_DIR:设置工作区目录(默认值:./workspace)
安全配置
服务器包括内置的安全配置:
允许的文件扩展名
- 编程:
.js,.ts,.jsx,.tsx,.py,.cpp,.c,.h等等。 - 网状物:
.html,.css,.scss,.json,.xml,.yaml等等。 - 文档:
.md,.txt,.rst,.adoc - 模板:
.template,.example,.sample,.config - 无扩展:
Dockerfile,Makefile,.gitignore等等。
黑名单路径
..-目录遍历阻止.git/-Git存储库文件node_modules/-依赖关系目录.env.-环境文件(模板除外)secrets/-Secrets目录- 系统文件(
.DS_Store,Thumbs.db)
💡 使用示例
基本文件操作
// Read a file
await callTool('read_source_file', { filePath: 'src/index.js' });
// Write a file
await callTool('write_source_file', {
filePath: 'src/new-file.js',
content: 'console.log("Hello World");',
createBackup: true
});
// List files
await callTool('list_source_files', { dirPath: 'src' });🆕 增强运营
// Delete a file (with backup)
await callTool('delete_source_file', {
filePath: 'old-file.js',
createBackup: true
});
// Rename/move a file
await callTool('rename_source_file', {
oldPath: 'old-name.js',
newPath: 'src/new-name.js',
createBackup: true
});
// LLM-optimized partial update
await callTool('partial_write_source_file', {
filePath: 'utils.js',
oldContent: 'function oldFunction() { return "old"; }',
newContent: 'function newFunction() { return "updated"; }'
});🛡️ 安全说明
允许的开发文件
✅ .gitignore, .env.template, Dockerfile, Makefile, package.json, tsconfig.json
保护文件
🔒 .env, .env.local, .env.production, .git/config, node_modules/, secrets/
🧪 测试
# Run all tests
npm test
# Run specific test
npm test -- --testNamePattern="should allow development configuration files"
# Run with coverage
npm run test:coverage🔄 备份系统
服务器会自动在中创建备份 .backups 带时间戳的目录:
- 格式:
filename.timestamp.backup - 地点:
workspace/.backups/ - 建议自动清理
📊 性能特点
- 并发操作限制:防止系统过载
- 文件大小限制:默认每个文件10MB
- LLM优化:部分写入减少了小更改的文件I/O
- 流处理:高效处理大文件
🤝 贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 添加新功能的测试
- 确保所有测试通过
- 提交拉取请求
📝 许可证
\[您的许可证在这里\]
🆕 更新日志
v0.2.1
- ✨ 添加了文件删除功能
- ✨ 添加了文件重命名/移动功能
- ✨ 添加了LLM优化的部分写入功能
- 🔧 修复.env.template文件访问问题
- 🔧 通过精确的模式匹配增强安全性
- 🧪 综合测试套件(21项测试)
v0.1.0
- 🎉 具有基本文件操作的初始版本
- 🔒 安全功能和路径验证
- 📚 MCP协议实现
