开源项目

DesktopCommanderMCP

DesktopCommanderMCP

为 Claude 等 AI 客户端提供终端控制、文件搜索与编辑能力的 MCP 服务器,让 AI 能直接执行命令、管理进程、读写 Excel/PDF/DOCX 等文件。亮点在于支持远程 AI 控制、Docker 隔离运行、文件预览 UI 和自动更新,安装简单且兼容多种 MCP 客户端(Cursor、VS Code、Windsurf 等),可替代部分 IDE 内的 AI 功能。注意:安全配置存在已知局限,生产环境建议使用 Docker 隔离。

README

Desktop Commander MCP

使用 AI 搜索、更新、管理文件并运行终端命令

npm downloads AgentAudit Verified Trust Score smithery badge Buy Me A Coffee

Discord

处理代码和文本、运行进程、自动化任务,远超其他 AI 编辑器——同时使用宿主客户端订阅,无需 API token 费用。

Desktop Commander MCP

🖥️ 试用 Desktop Commander App(Beta)

想要更好的体验? Desktop Commander App 提供 MCP server 的全部功能,外加:

  • 使用任意 AI 模型 — Claude、GPT-4.5、Gemini 2.5,或任何你偏好的模型
  • 实时查看文件变化 — AI 编辑文件时提供可视化文件预览
  • 添加自定义 MCP 和上下文 — 扩展你自己的工具,无需配置文件
  • 即将推出 — 技能系统、语音输入、后台定时任务等

👉 下载 App(macOS & Windows)

下面的 MCP server 仍然能完美配合 Claude Desktop 和其他 MCP 客户端——App 是为那些希望获得专用、精致体验的用户准备的。

目录

所有 AI 开发工具汇聚一处。 Desktop Commander 将所有开发工具整合到一个聊天中。 在您的计算机上执行长时间运行的终端命令,并通过 Model Context Protocol(MCP,模型上下文协议)管理进程。基于 MCP Filesystem Server 构建,提供额外的搜索和替换文件编辑能力。

功能特性

  • 远程 AI 控制 — 通过 Remote MCP 在 ChatGPT、Claude web 及其他 AI 服务中使用 Desktop Commander
  • 文件预览 UI — 在 Claude Desktop 中可视化预览文件,支持渲染 Markdown、内联图片、可折叠内容、内置 Markdown 编辑器,以及快速“在文件夹中打开”访问
  • 增强的终端命令与交互式进程控制
  • 在内存中执行代码(Python、Node.js、R)无需保存文件
  • 即时数据分析 — 只需请求即可分析 CSV/JSON/Excel 文件
  • 原生 Excel 文件支持 — 无需外部工具即可读取、写入、编辑和搜索 Excel 文件(.xlsx、.xls、.xlsm)
  • PDF 支持 — 读取 PDF(文本提取),从 Markdown 创建新 PDF,修改现有 PDF
  • DOCX 支持 — 读取、创建、编辑和搜索 Word 文档(.docx),支持精确的 XML 编辑和 Markdown 转 DOCX
  • 与运行中的进程交互(SSH、数据库、开发服务器)
  • 执行终端命令并流式输出
  • 支持命令超时和后台执行
  • 进程管理(列出和终止进程)
  • 长时间运行命令的会话管理
  • 进程输出分页 — 使用 offset/length 控制读取终端输出,防止上下文溢出
  • 服务器配置管理:
    • 获取/设置配置值
    • 一次更新多个设置
    • 无需重启服务器即可动态更改配置
  • 完整的文件系统操作:
    • 读/写文件(文本、Excel、PDF、DOCX)
    • 创建/列出目录
    • 递归目录列表,支持可配置深度和大文件夹上下文溢出保护
    • 移动文件/目录
    • 搜索文件和内容(包括 Excel 内容)
    • 获取文件元数据
    • 负偏移读取文件:使用负偏移值从文件末尾读取(类似 Unix tail 命令)
  • 代码编辑能力:
    • 精确文本替换,适用于小改动
    • 完整文件重写,适用于大改动
    • 多文件支持
    • 基于模式的替换
    • 基于 vscode-ripgrep 的递归代码或文本在文件夹中搜索
  • 全面的审计日志:
    • 自动记录所有工具调用
    • 日志轮转,上限 10MB
    • 详细的时间戳和参数
  • 安全强化:
    • 文件操作中防止符号链接遍历
    • 命令黑名单及绕过保护
    • Docker 隔离 实现完全沙箱
    • 详见 SECURITY.md

如何安装

在 Claude Desktop 中安装

Desktop Commander 为 Claude Desktop 提供多种安装方式。

📋 更新与卸载信息: 选项 1、2、3、4 和 6 支持自动更新。选项 5 需要手动更新。详见下文。

选项 1:通过 npx 安装 ⭐ 自动更新(需要 Node.js)

只需在终端中运行:

npx @wonderwhy-er/desktop-commander@latest setup

调试模式(允许 Node.js 检查器连接):

npx @wonderwhy-er/desktop-commander@latest setup --debug

安装过程中的命令行选项:

  • --debug:启用 Node.js 检查器调试模式
  • --no-onboarding:为新用户禁用入门提示

如果 Claude 正在运行,请重启。

✅ 自动更新: 是——重启 Claude 时自动更新
🔄 手动更新: 再次运行 setup 命令
🗑️ 卸载: 运行 npx @wonderwhy-er/desktop-commander@latest remove

选项 2:使用 bash 脚本安装器(macOS)⭐ 自动更新(按需安装 Node.js)
curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install.sh | bash

此脚本会自动处理所有依赖和配置。

✅ 自动更新:
🔄 手动更新: 重新运行上面的 bash 安装器命令
🗑️ 卸载: 运行 npx @wonderwhy-er/desktop-commander@latest remove

选项 3:通过 Smithery 安装 ⭐ 自动更新(需要 Node.js)
  1. 访问: https://smithery.ai/server/@wonderwhy-er/desktop-commander
  2. 登录 Smithery(如果尚未登录)
  3. 选择你的客户端(Claude Desktop)右侧
  4. 使用提供的密钥安装,该密钥在选择客户端后显示
  5. 重启 Claude Desktop

✅ 自动更新: 是——重启 Claude 时自动更新
🔄 手动更新: 访问 Smithery 页面并重新安装

选项 4:手动添加到 claude_desktop_config ⭐ 自动更新(需要 Node.js)

将此条目添加到你的 claude_desktop_config.json:

  • Mac:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json
  • Linux:~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "desktop-commander": {
      "command": "npx",
      "args": [
        "-y",
        "@wonderwhy-er/desktop-commander@latest"
      ]
    }
  }
}

如果 Claude 正在运行,请重启。

✅ 自动更新: 是——重启 Claude 时自动更新
🔄 手动更新: 再次运行 setup 命令
🗑️ 卸载: 运行 npx @wonderwhy-er/desktop-commander@latest remove 或从 claude_desktop_config.json 中移除该条目

选项 5:本地检出 ❌ 手动更新(需要 Node.js)
git clone https://github.com/wonderwhy-er/DesktopCommanderMCP.git
cd DesktopCommanderMCP
npm run setup

如果 Claude 正在运行,请重启。

setup 命令会安装依赖、构建服务器并配置 Claude 的桌面应用。

❌ 自动更新: 否——需要手动 git 更新
🔄 手动更新: cd DesktopCommanderMCP && git pull && npm run setup
🗑️ 卸载: 运行 npx @wonderwhy-er/desktop-commander@latest remove 或删除克隆的目录和 Claude 配置中的 MCP 服务器条目

选项 6:Docker 安装 🐳 ⭐ 自动更新(无需 Node.js)

适合想要隔离环境或没有安装 Node.js 的用户。在沙箱化 Docker 容器中运行,并带有持久化工作环境。

前提条件: 已安装 并运行 Docker Desktop,已安装 Claude Desktop 应用。

macOS/Linux:

bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh)

Windows PowerShell:

iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.ps1'))

安装程序会检查 Docker、拉取镜像、提示挂载文件夹,并配置 Claude Desktop。

Docker 持久化: 你的工具、配置、工作文件和包缓存都会在重启后保留。

手动 Docker 配置

基本设置(无文件访问):

{
  "mcpServers": {
    "desktop-commander-in-docker": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "mcp/desktop-commander:latest"]
    }
  }
}

挂载文件夹:

{
  "mcpServers": {
    "desktop-commander-in-docker": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "/Users/username/Desktop:/mnt/desktop",
        "-v", "/Users/username/Documents:/mnt/documents",
        "mcp/desktop-commander:latest"
      ]
    }
  }
}

高级文件夹挂载:

{
  "mcpServers": {
    "desktop-commander-in-docker": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "dc-system:/usr",
        "-v", "dc-home:/root", 
        "-v", "dc-workspace:/workspace",
        "-v", "dc-packages:/var",
        "-v", "/Users/username/Projects:/mnt/Projects",
        "-v", "/Users/username/Downloads:/mnt/Downloads",
        "mcp/desktop-commander:latest"
      ]
    }
  }
}
Docker 管理命令

macOS/Linux:

# 检查状态
bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh) --status

# 重置所有持久化数据
bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh) --reset

Windows PowerShell:

# 检查状态
$script = (New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.ps1'); & ([ScriptBlock]::Create("$script")) -Status

# 重置所有数据
$script = (New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.ps1'); & ([ScriptBlock]::Create("$script")) -Reset

# 显示帮助
$script = (New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.ps1'); & ([ScriptBlock]::Create("$script")) -Help

故障排除: 从头重置并重新安装:

bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh) --reset && bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh)

✅ 自动更新: 是——latest 标签自动获取较新版本
🔄 手动更新: docker pull mcp/desktop-commander:latest 然后重启 Claude

在其他客户端中安装

Desktop Commander 可与任何兼容 MCP 的客户端配合使用。标准 JSON 配置如下:

{
  "mcpServers": {
    "desktop-commander": {
      "command": "npx",
      "args": ["-y", "@wonderwhy-er/desktop-commander@latest"]
    }
  }
}

将其添加到客户端 MCP 配置文件中,对应位置如下:

Cursor

Install MCP Server

在 Directory 中查看 MCP Server

或手动添加到 ~/.cursor/mcp.json(全局)或项目文件夹中的 .cursor/mcp.json(项目特定)。

更多信息请参阅 Cursor MCP 文档

Windsurf

添加到 ~/.codeium/windsurf/mcp_config.json。更多信息请参阅 Windsurf MCP 文档

VS Code / GitHub Copilot

添加到项目中的 .vscode/mcp.json 或 VS Code 用户设置(JSON)。确保在 Chat > MCP 下启用 MCP。在 Agent 模式下工作。

更多信息请参阅 VS Code MCP 文档

Cline

通过 VS Code 中 Cline 扩展设置进行配置。打开 Cline 侧边栏,点击 MCP Servers 图标,添加上面的 JSON 配置。更多信息请参阅 Cline MCP 文档

Roo Code

添加到你的 Roo Code MCP 配置文件。更多信息请参阅 Roo Code MCP 文档

Claude Code
claude mcp add --scope user desktop-commander -- npx -y @wonderwhy-er/desktop-commander@latest

移除 --scope user 以仅安装到当前项目。更多信息请参阅 Claude Code MCP 文档

Trae

使用“手动添加”功能,粘贴上面的 JSON 配置。更多信息请参阅 Trae MCP 文档

Kiro

导航至 Kiro > MCP Servers,点击 + Add,粘贴上面的 JSON 配置。更多信息请参阅 Kiro MCP 文档

Codex (OpenAI)

Codex 使用 TOML 配置。运行以下命令添加 Desktop Commander:

codex mcp add desktop-commander -- npx -y @wonderwhy-er/desktop-commander@latest

或手动添加到 ~/.codex/config.toml

[mcp_servers.desktop-commander]
command = "npx"
args = ["-y", "@wonderwhy-er/desktop-commander@latest"]

更多信息请参阅 Codex MCP 文档

JetBrains (AI Assistant)

在 JetBrains IDE 中,前往 Settings → Tools → AI Assistant → Model Context Protocol (MCP),点击 + 添加,选择 As JSON,然后粘贴上面的 JSON 配置。更多信息请参阅 JetBrains MCP 文档

Gemini CLI

添加到 ~/.gemini/settings.json

{
  "mcpServers": {
    "desktop-commander": {
      "command": "npx",
      "args": ["-y", "@wonderwhy-er/desktop-commander@latest"]
    }
  }
}

更多信息请参阅 Gemini CLI 文档

Augment Code

按下 Cmd/Ctrl+Shift+P,打开 Augment 面板,添加一个名为 desktop-commander 的新 MCP 服务器,并粘贴上面的 JSON 配置。更多信息请参阅 Augment Code MCP 文档

Qwen Code

运行以下命令添加 Desktop Commander:

qwen mcp add desktop-commander -- npx -y @wonderwhy-er/desktop-commander@latest

或添加到 .qwen/settings.json(项目)或 ~/.qwen/settings.json(全局)。更多信息请参阅 Qwen Code MCP 文档

ChatGPT / Claude Web(Remote MCP)

通过 Remote MCP 在 ChatGPTClaude web 及其他 AI 服务中使用 Desktop Commander——无需桌面应用。

👉 在 mcp.desktopcommander.app 开始使用

工作原理:

  1. 你在计算机上运行一个轻量级 Remote Device
  2. 它安全地连接到云端的 Remote MCP 服务
  3. 你的 AI 通过云端向你的设备发送命令
  4. 命令在本地执行,结果返回给你的 AI
  5. 你始终掌控——随时按 Ctrl+C 停止

安全性

  • ✅ 设备仅在你启动时运行
  • ✅ 命令以你的用户权限执行
  • ✅ 安全的 OAuth 认证和加密通信通道

更新与卸载 Desktop Commander

自动更新(选项 1、2、3、4 和 6)

选项 1(npx)、选项 2(bash 安装器)、3(Smithery)、4(手动配置)和 6(Docker) 会在你重启 Claude 时自动更新到最新版本。无需手动干预。

手动更新(选项 5)

  • 选项 5(本地检出): cd DesktopCommanderMCP && git pull && npm run setup

卸载 Desktop Commander

🤖 自动卸载(推荐)

完全移除 Desktop Commander 的最简单方式:

npx @wonderwhy-er/desktop-commander@latest remove

此自动卸载程序将:

  • ✅ 从 Claude 的 MCP 服务器配置中移除 Desktop Commander
  • ✅ 在更改之前创建 Claude 配置的备份
  • ✅ 提供完整包移除的指导
  • ✅ 如果出现问题,从备份恢复
🔧 手动卸载

如果自动卸载不起作用,或者你更喜欢手动移除:

从 Claude 配置中移除
  1. 找到你的 Claude Desktop 配置文件:
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
  1. 编辑配置文件:
  • 用文本编辑器打开文件
  • 找到并从 "mcpServers" 部分移除 "desktop-commander" 条目
  • 保存文件

示例 - 移除这部分:

{
    "desktop-commander": {
      "command": "npx",
      "args": ["@wonderwhy-er/desktop-commander@latest"]
    }
}

关闭并重启 Claude Desktop 以完成移除。

🆘 故障排除

如果自动卸载失败:

  • 使用手动卸载作为备用方案

如果卸载后 Claude 无法启动:

  • 恢复卸载程序创建的备份配置文件
  • 或手动修复 claude_desktop_config.json 中的 JSON 语法

需要帮助?

快速开始

安装 Desktop Commander 并重启 Claude Desktop 后,你就可以增强 Claude 体验了!

🚀 新用户入门

Desktop Commander 包含智能入门引导,帮助你发现可能性:

对于新用户: 当你刚开始使用时(成功命令少于 10 次),Claude 会在你成功使用 Desktop Commander 后自动提供有用的入门指导和实用教程。

随时请求帮助: 你可以随时通过简单的表述请求入门帮助:

  • "帮助我开始使用 Desktop Commander"
  • "给我展示 Desktop Commander 的示例"
  • "我可以用 Desktop Commander 做什么?"

Claude 随后会向你展示适合初学者的教程和示例,包括:

  • 📁 自动整理你的 Downloads 文件夹
  • 📊 使用 Python 分析 CSV/Excel 文件
  • ⚙️ 设置 GitHub Actions CI/CD
  • 🔍 探索和理解代码库
  • 🤖 运行交互式开发环境

使用方法

服务器提供一整套工具,分为以下几个类别:

可用工具

类别 工具 描述
配置 get_config 获取完整的服务器配置(JSON),包括 blockedCommands、defaultShell、allowedDirectories、fileReadLineLimit、fileWriteLineLimit、telemetryEnabled
set_config_value 按键设置特定的配置值。可用设置:
blockedCommands:禁止执行的 shell 命令数组
defaultShell:用于命令的 shell(例如 bash、zsh、powershell)
allowedDirectories:服务器可访问文件操作的路径数组(⚠️ 终端命令仍可访问这些目录之外的文件)
fileReadLineLimit:一次读取的最大行数(默认:1000)
fileWriteLineLimit:一次写入的最大行数(默认:50)
telemetryEnabled:启用/禁用遥测(布尔值)
终端 start_process 启动程序,智能检测何时准备好接收输入
interact_with_process 向运行中的程序发送命令并获取响应
read_process_output 从运行中的进程读取输出
force_terminate 强制终止正在运行的终端会话
list_sessions 列出所有活动的终端会话
list_processes 列出所有正在运行的进程及详细信息
kill_process 按 PID 终止正在运行的进程
文件系统 read_file 从本地文件系统、URL、Excel 文件(.xlsx、.xls、.xlsm)和 PDF 中读取内容,支持基于行/页的分页
read_multiple_files 同时读取多个文件
write_file 写入文件内容,支持重写或追加模式。支持 Excel 文件(JSON 二维数组格式)。对于 PDF,请使用 write_pdf
write_pdf 从 Markdown 创建新的 PDF 文件或修改现有 PDF(插入/删除页面)。支持 HTML/CSS 样式和 SVG 图形
create_directory 创建新目录或确保其存在
list_directory 获取文件和目录的详细递归列表(支持 depth 参数,默认 depth=2)
move_file 移动或重命名文件和目录
start_search 按文件名或内容模式启动流式搜索(搜索文本文件和 Excel 内容)
get_more_search_results 从活动搜索中获取分页结果,支持偏移量
stop_search 优雅地停止活动搜索
list_searches 列出所有活动的搜索会话
get_file_info 检索文件或目录的详细元数据(包括 Excel 表格信息)
文本编辑 edit_block 对文本文件应用目标文本替换,或对 Excel 文件进行基于范围的单元格更新
分析 get_usage_stats 获取使用统计信息供你自己参考
get_recent_tool_calls 获取最近的工具调用历史(含参数和输出),用于调试和上下文恢复
give_feedback_to_desktop_commander 在浏览器中打开反馈表单,向 Desktop Commander 团队提供反馈

快速示例

数据分析:

"分析 sales.csv 并展示顶级客户" → Claude 在内存中运行 Python 代码

远程访问:

"SSH 到我的服务器并检查磁盘空间" → Claude 维持 SSH 会话

开发:

"启动 Node.js 并测试此 API" → Claude 运行交互式 Node 会话

工具使用示例

搜索/替换块格式:

filepath.ext
<<<<<<< SEARCH
要查找的内容
=======
新内容
>>>>>>> REPLACE

示例:

src/main.js
<<<<<<< SEARCH
console.log("旧消息");
=======
console.log("新消息");
>>>>>>> REPLACE

增强的编辑块功能

edit_block 工具包含多项增强功能,以提高可靠性:

  1. 改进的提示:工具描述现在强调进行多次小且专注的编辑,而不是一次大改动
  2. 模糊搜索回退:当精确匹配失败时,执行模糊搜索并提供详细反馈
  3. 字符级别差异:使用 {-removed-}{+added+} 格式精确显示差异内容
  4. 多处出现支持:可通过 expected_replacements 参数替换多处实例
  5. 全面日志记录:所有模糊搜索都会被记录下来以供分析和调试

当搜索失败时,你将看到最接近匹配的详细信息,包括相似度百分比、执行时间和字符差异。所有这些细节都会自动记录,供以后使用模糊搜索日志工具进行分析。

Docker 支持

🐳 隔离环境使用

Desktop Commander 可以在 Docker 容器中运行,实现与宿主系统的完全隔离对计算机零风险。这非常适合测试、开发,或当你需要完全沙箱化时。

安装说明

  1. 为 Windows/Mac 安装 Docker

  2. 获取 Desktop Commander Docker 配置

  3. 挂载你的机器文件夹(即将推出)

    • 如何将本地目录挂载到 Docker 容器的说明即将提供
    • 这将允许你在保持完全隔离的同时处理文件

Docker 使用的好处

  • 与宿主系统完全隔离
  • 跨不同机器的一致环境
  • 易于清理——完成后只需移除容器
  • 非常适合测试新功能或配置

URL 支持

  • read_file 现在可以同时从本地文件和 URL 获取内容
  • 示例:使用 isUrl: true 参数读取网络资源
  • 处理来自远程源的文本和图像内容
  • 图像(本地或来自 URL)会在 Claude 界面中可视化显示,而非文本
  • Claude 可以查看并分析实际的图像内容
  • URL 请求默认超时 30 秒

文件预览 UI 与 Markdown 编辑器

Desktop Commander 在 Claude Desktop 中包含一个丰富的文件预览小部件,可以在 AI 处理文件时以视觉方式呈现。

支持的文件类型

  • Markdown — 带有内置编辑器的渲染预览
  • 图像 — 内联显示(PNG、JPEG、GIF、WebP 等)
  • 代码文件 — 语法高亮的源码视图
  • HTML — 渲染预览,可切换到源码视图
  • 目录 — 交互式树形结构,支持展开/折叠和延迟加载
  • PDF、Excel、DOCX — 原生内容提取和显示

Markdown 编辑器

在 Claude Desktop 中查看 .md 文件时,你可以直接在预览面板内编辑它——无需打开额外应用。

使用方法:

  1. 让 Claude 读取或创建一个 Markdown 文件
  2. 使用 ⤢ Expand 按钮将文件预览扩展为全屏
  3. 编辑器在全屏模式下自动激活
  4. 编辑你的内容,带有实时预览切换、复制、撤销和保存控制
  5. 更改会保存回磁盘;折叠以返回内联视图

编辑器功能:

  • 实时 编辑/预览切换——在原始 Mark
开源项目wonderwhy-er2026-07-08原文

相关内容