article
README
🚀 用于Claude桌面的应用服务器:Claude Desktop Commander MCP
本项目是一个允许Claude桌面应用程序在您的计算机上执行长时间运行的终端命令并通过Model Context Protocol (MCP) 管理进程的服务器。它构建于MCP文件系统服务器之上,以提供额外的搜索和替换文件编辑功能。
🚀 快速开始
本服务器主要有两个关键点:终端命令和基于差异的文件编辑。它能让Claude桌面应用在本地计算机执行长时间运行的终端命令,并通过MCP管理进程。
✨ 主要特性
- 执行带有输出流式传输的终端命令
- 长时间运行命令的超时设置
- 进程管理:启动、停止、重启
- 文件操作:读取、写入、删除
- 支持基于差异的代码块文件编辑
📦 安装指南
方法一:使用smithery CLI安装
- 打开终端。
- 运行以下命令:
smith install @wonderwhy-er/desktop-commander
方法二:手动安装
- 克隆此仓库:
git clone https://github.com/wonderwhy-er/ClaudeDesktopCommander.git
cd ClaudeDesktopCommander
- 安装依赖项:
npm install
- 启动服务器:
npm start
方法三:通过npx安装
直接运行以下命令:
npx -y @wonderwhy-er/desktop-commander setup
手动配置
- 创建或编辑
claude_desktop_config.json文件。 - 添加以下内容:
{
"command": {
"timeout": 3600, // 超时时间,单位秒,默认3600秒(1小时)
"streamOutput": true // 是否流式输出,默认true
},
"file": {
"root": "/path/to/files" // 文件操作根目录,默认当前工作目录
}
}
💻 使用示例
基本用法
# 执行单行命令
execute_command("ls -a")
# 后台执行长时间运行的任务
execute_commandInBackground("long_task.sh", (status, output) => {
console.log(`任务完成,状态:${status}, 输出:${output}`);
})
# 监视文件变化
watchFile("/path/to/file.txt", (event, filename) => {
console.log(`检测到文件变化:${filename}`)
})
高级用法
进程管理
startProcess("app_process")
restartProcess("app_process")
stopProcess("app_process")
文件操作
readFile("/path/to/file.txt", (err, content) => {
if (err) throw err;
console.log(content);
})
writeFile("/path/to/newfile.txt", "写入内容", (err) => {
if (err) throw err;
console.log("文件写入成功");
})
基于差异的代码编辑
// 在Claude中定义一个差异块:
diff_block = """\
- 删除的部分
+ 新增的内容
@@ -1,5 +1,6 @@
这是修改后的代码"""
applyDiff("/path/to/file.txt", diff_block, (err) => {
if (err) throw err;
console.log("文件已成功更新");
})
🤝 贡献
如果您觉得这个项目有用,请考虑在GitHub上给它点个星!这将帮助更多人发现此项目并鼓励进一步开发。
我们欢迎社区的贡献!无论您发现了错误,有功能需求,还是想提交代码,以下是如何参与的方式:
- 发现问题? 在github.com/wonderwhy-er/ClaudeDesktopCommander/issues上打开一个问题。
- 有功能想法? 提交一个功能请求到问题部分。
- 想贡献代码? 叉取仓库,创建分支,并提交拉取请求。
- 有问题或讨论? 在GitHub Discussions部分开始讨论。
所有的贡献,无论大小,都受到极大的欢迎!
📄 许可证
MIT
Scan to contact