本项目是一个允许Claude桌面应用程序在您的计算机上执行长时间运行的终端命令并通过Model Context Protocol (MCP) 管理进程的服务器。它构建于MCP文件系统服务器之上,以提供额外的搜索和替换文件编辑功能。
本服务器主要有两个关键点:终端命令和基于差异的文件编辑。它能让Claude桌面应用在本地计算机执行长时间运行的终端命令,并通过MCP管理进程。
smith install @wonderwhy-er/desktop-commander
git clone https://github.com/wonderwhy-er/ClaudeDesktopCommander.git
cd ClaudeDesktopCommander
npm install
npm start
直接运行以下命令:
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上给它点个星!这将帮助更多人发现此项目并鼓励进一步开发。
我们欢迎社区的贡献!无论您发现了错误,有功能需求,还是想提交代码,以下是如何参与的方式:
所有的贡献,无论大小,都受到极大的欢迎!
MIT