内容
# Claude Desktop Commander MCP
[](https://www.npmjs.com/package/@wonderwhy-er/desktop-commander)
[](https://smithery.ai/server/@wonderwhy-er/desktop-commander)
[](https://mseep.ai/app/d95e8592-4114-4957-b0ef-289c5460ab31)
简短版本。两个关键点。终端命令和基于差异的文件编辑。
<a href="https://glama.ai/mcp/servers/zempur9oh4">
<img width="380" height="200" src="https://glama.ai/mcp/servers/zempur9oh4/badge" alt="Claude Desktop Commander MCP server" />
</a>
这是一个服务器,允许Claude桌面应用程序在您的计算机上执行长时间运行的终端命令,并通过模型上下文协议(Model Context Protocol,MCP)管理进程 + 基于 [MCP Filesystem Server](https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem) 提供额外的搜索和替换文件编辑功能。
## 功能
- 执行终端命令并进行输出流处理
- 支持命令超时和后台执行
- 进程管理(列出和终止进程)
- 长时间运行命令的会话管理
- 完整的文件系统操作:
- 读取/写入文件
- 创建/列出目录
- 移动文件/目录
- 搜索文件
- 获取文件元数据
- 代码编辑功能:
- 小改动的精确文本替换
- 大改动的完整文件重写
- 支持多个文件
- 基于模式的替换
## 安装
首先,确保您已下载并安装了 [Claude Desktop app](https://claude.ai/download),并且您已安装 [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)。
### 选项 1:通过 Smithery 安装
要通过 [Smithery](https://smithery.ai/server/@wonderwhy-er/desktop-commander) 自动安装 Claude Desktop 的 Desktop Commander:
```bash
npx -y @smithery/cli install @wonderwhy-er/desktop-commander --client claude
```
### 选项 2:通过 npx 安装
只需在终端中运行以下命令
```
npx @wonderwhy-er/desktop-commander setup
```
如果正在运行,请重启 Claude
### 选项 3:手动添加到 claude_desktop_config
将此条目添加到您的 claude_desktop_config.json 文件中(在 Mac 上,路径为 ~/Library/Application\ Support/Claude/claude_desktop_config.json):
```json
{
"mcpServers": {
"desktop-commander": {
"command": "npx",
"args": [
"-y",
"@wonderwhy-er/desktop-commander"
]
}
}
}
```
如果 Claude 正在运行,请重启它。
### 选项 4:本地检出
1. 克隆并构建:
```bash
git clone https://github.com/wonderwhy-er/ClaudeComputerCommander.git
cd ClaudeComputerCommander
npm run setup
```
如果 Claude 正在运行,请重启它。
setup 命令将会:
- 安装依赖
- 构建服务器
- 配置 Claude 的桌面应用
- 如果需要,将 MCP 服务器添加到 Claude 的配置中
## 使用方法
服务器提供以下工具类别:
### 终端工具
- `execute_command`: 运行带有可配置超时的命令
- `read_output`: 获取长时间运行命令的输出
- `force_terminate`: 停止正在运行的命令会话
- `list_sessions`: 查看活动的命令会话
- `list_processes`: 查看系统进程
- `kill_process`: 根据 PID 终止进程
- `block_command`/`unblock_command`: 管理命令黑名单
### 文件系统工具
- `read_file`/`write_file`: 文件操作
- `create_directory`/`list_directory`: 目录管理
- `move_file`: 移动/重命名文件
- `search_files`: 基于模式的文件搜索
- `get_file_info`: 文件元数据
### 编辑工具
- `edit_block`: 进行精确的文本替换(适用于文件大小变化小于20%的情况)
- `write_file`: 完整的文件重写(适用于大于20%的大幅更改或当edit_block失败时)
搜索/替换块格式:
```
filepath.ext
<<<<<<< SEARCH
要替换的现有代码
=======
要插入的新代码
>>>>>>> REPLACE
```
示例:
```
src/main.js
<<<<<<< SEARCH
console.log("旧消息");
=======
console.log("新消息");
>>>>>>> REPLACE
```
## 处理长时间运行的命令
对于可能需要较长时间的命令:
1. `execute_command` 在超时后返回初始输出
2. 命令在后台继续运行
3. 使用 `read_output` 和 PID 获取新输出
4. 如有需要,使用 `force_terminate` 停止命令
## 模型上下文协议集成
该项目扩展了MCP Filesystem Server,以支持:
- Claude Desktop中的本地服务器
- 完整的系统命令执行
- 进程管理
- 文件操作
- 带有搜索/替换块的代码编辑
作为探索Claude MCPs的一部分创建: https://youtube.com/live/TlbjFDbl5Us
## 贡献
如果您觉得这个项目有用,请考虑在 GitHub 上给它一个 ⭐ 星标!这有助于其他人发现该项目,并鼓励进一步的发展。
我们欢迎社区的贡献!无论您发现了一个 bug、想要提出功能请求,还是想贡献代码,您都可以通过以下方式来帮助我们:
- **发现了 bug?** 在 [github.com/wonderwhy-er/ClaudeComputerCommander/issues](https://github.com/wonderwhy-er/ClaudeComputerCommander/issues) 上打开一个 issue
- **有功能想法?** 在 issues 部分提交一个功能请求
- **想贡献代码?** Fork 这个仓库,创建一个分支,并提交一个 pull request
- **有问题或讨论?** 在 GitHub Discussions 标签中开始讨论
所有的贡献,无论大小,都非常感谢!
## 许可证
MIT