DesktopCommanderMCP
DesktopCommanderMCP 是一个为 Claude 等 AI 聊天客户端设计的“外挂”服务器,装上后,AI 就能像本地助手一样帮你搜文件、改代码、跑终端命令,甚至直接预览 Excel、PDF、Word 文档。它把原本需要手动复制粘贴、反复切窗口的繁琐操作,变成一句自然语言指令就能完成,既省时间也省 API 费用。
如果你经常让 AI 帮忙改项目、跑脚本、分析数据,却总被“文件在哪”“命令怎么写”卡住,它会立刻解决这些痛点。开发者、数据分析师、运维人员、科研工作者都能用它把 AI 变成真正的“桌面搭档”。
亮点在于:支持长命令后台运行、实时输出流、内存里直接跑 Python/Node 代码,还能远程通过网页版的 Claude/ChatGPT 控制本地电脑,真正做到“人在浏览器,活让 AI 在本地干”。
使用场景
独立开发者小林正在赶制一个 SaaS 项目的 MVP,需要在 48 小时内把本地原型部署到线上并修复用户反馈的若干 bug。
没有 DesktopCommanderMCP 时
- 为了找出“用户列表加载慢”的代码位置,小林在 VS Code 里全局搜索
user.*load,结果 200+ 条匹配,手动逐条排查耗时 40 分钟。 - 发现是 SQL 查询缺少索引后,他切到终端敲
psql连数据库,再手动复制粘贴 EXPLAIN 结果回 Claude 网页,来回切换窗口 5 次才拿到优化建议。 - 改完 SQL 后,需要把改动同步到 staging 服务器,他又打开新终端窗口,手敲
scp上传文件,结果路径写错,覆盖错了文件,回滚又花 20 分钟。 - 用户还反馈导出 Excel 乱码,小林本地没有装 Office,只能先写脚本把 CSV 转 XLSX,再上传到测试环境验证,来回折腾 3 轮。
使用 DesktopCommanderMCP 后
- 小林直接在 Claude 聊天框里问:“找出所有包含 user 且执行 SQL 的函数”,DesktopCommanderMCP 秒级返回 3 个精准文件定位,节省 35 分钟。
- 他接着让 Claude 在对话里执行
psql -c "EXPLAIN ANALYZE SELECT * FROM users",输出实时回显在聊天窗口,AI 立即给出加索引的 SQL,一键复制即可运行。 - 改动完成后,一句“把当前 diff 推送到 staging”就让 DesktopCommanderMCP 自动执行
git diff+scp正确路径,全程无手敲命令,零失误。 - 针对 Excel 乱码,他直接让 Claude 用 DesktopCommanderMCP 读取测试环境的导出文件,实时修改编码设置并生成新 XLSX,3 分钟验证通过。
DesktopCommanderMCP 把分散在终端、编辑器、浏览器里的操作压缩成一句自然语言对话,让小林在截止前 6 小时就完成上线并睡了个好觉。
运行环境要求
- macOS
- Windows
- Linux
未说明
未说明

快速开始
桌面指挥官 MCP
使用 AI 搜索、更新、管理文件并运行终端命令
处理代码与文本、运行进程并自动化任务,远超其他 AI 编辑器——同时采用主机客户端订阅模式,而非 API Token 费用。
👋 我们正在招聘——欢迎加入我们:https://desktopcommander.app/careers/
🖥️ 试用桌面指挥官应用(Beta 版)
想要更佳体验吗? 桌面指挥官应用为您提供 MCP 服务器的所有功能,并额外具备:
- 使用任意 AI 模型 —— Claude、GPT-4.5、Gemini 2.5,或您偏好的任何模型
- 实时查看文件变更 —— AI 编辑文件时的可视化预览
- 添加自定义 MCP 和上下文 —— 无需配置文件即可扩展您的专属工具
- 即将推出 —— 技能系统、语音转文字、后台定时任务等功能
👉 下载应用(macOS & Windows)
下方的 MCP 服务器仍可与 Claude Desktop 及其他 MCP 客户端完美配合——而这款应用则专为追求专注、精致体验的用户打造。
目录
将您的所有 AI 开发工具集中于一处。
桌面指挥官将所有开发工具整合到一个聊天界面中。
在您的电脑上执行长时间运行的终端命令,并通过模型上下文协议(MCP)管理进程。基于 MCP 文件系统服务器 构建,提供额外的搜索与替换文件编辑功能。
功能
- 远程 AI 控制 —— 通过 Remote MCP 从 ChatGPT、Claude Web 等 AI 服务中使用桌面指挥官
- 文件预览 UI —— 在 Claude Desktop 中提供可视化文件预览,支持渲染 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、数据库、开发服务器)
- 执行带输出流的终端命令
- 支持命令超时与后台执行
- 进程管理(列出并终止进程)
- 长时间运行命令的会话管理
- 进程输出分页 —— 通过偏移/长度控制读取终端输出,防止上下文溢出
- 服务器配置管理:
- 获取/设置配置值
- 一次性更新多项设置
- 动态配置更改无需重启服务器
- 全面的文件系统操作:
- 读取/写入文件(文本、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)
- 访问: https://smithery.ai/server/@wonderwhy-er/desktop-commander
- 登录 Smithery(如尚未登录)
- 在右侧选择您的客户端(Claude Desktop)
- 使用选定客户端后显示的密钥进行安装
- 重启 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 配置文件中,位置如下:
Windsurf
添加到 ~/.codeium/windsurf/mcp_config.json。更多信息请参阅 Windsurf MCP 文档。
VS Code / GitHub Copilot
添加到您项目的 .vscode/mcp.json 或 VS Code 用户设置(JSON)。确保在“聊天”>“MCP”下启用 MCP。可在代理模式下运行。
更多信息请参阅 VS Code MCP 文档。
Cline
通过 VS Code 中的 Cline 扩展设置进行配置。打开 Cline 侧边栏,点击 MCP 服务器图标,并添加上述 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 服务器, 点击 + 添加, 并粘贴上述 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 中,前往 设置 → 工具 → AI Assistant → 模型上下文协议 (MCP),点击 + 添加,选择 作为 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 (远程 MCP)
通过远程 MCP,在 ChatGPT、Claude web 和其他 AI 服务中使用 Desktop Commander——无需桌面应用程序。
👉 立即开始使用 mcp.desktopcommander.app
工作原理:
- 您在电脑上运行一个轻量级的 远程设备
- 它安全地连接到云端的远程 MCP 服务
- 您的 AI 通过云端向您的设备发送命令
- 命令在本地执行,结果返回给您的 AI
- 您始终掌控一切——随时按
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 配置中移除
找到您的 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
- macOS:
编辑配置文件:
- 使用文本编辑器打开该文件
- 在
"mcpServers"部分查找并删除"desktop-commander"条目 - 保存文件
示例——移除以下部分:
{ "desktop-commander": { "command": "npx", "args": ["@wonderwhy-er/desktop-commander@latest"] } }
关闭并重新启动 Claude Desktop,以完成移除。
🆘 故障排除
如果自动卸载失败:
- 请使用手动卸载作为备用方案
如果卸载后 Claude 无法启动:
- 恢复由卸载工具创建的备份配置文件
- 或者手动修复您的 claude_desktop_config.json 文件中的 JSON 语法
需要帮助吗?
- 加入我们的 Discord 社区:https://discord.com/invite/kQ27sNnZr7
入门指南
一旦安装好 Desktop Commander 并重启 Claude Desktop,您就可以开始大幅提升您的 Claude 使用体验了!
🚀 新用户引导
Desktop Commander 内置智能引导功能,帮助您发现各种可能性:
针对新用户: 当您刚开始使用(成功执行命令少于 10 次)时,Claude 会在您成功使用 Desktop Commander 后,自动提供实用的入门指导和教程。
随时请求帮助: 您可以随时通过说出以下话语来获得引导帮助:
- “帮我开始使用 Desktop Commander”
- “给我看 Desktop Commander 的示例”
- “我可以用 Desktop Commander 做些什么?”
随后,Claude 将为您展示适合初学者的教程和示例,包括:
- 📁 自动整理您的下载文件夹
- 📊 使用 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 |
获取文件和目录的递归详细列表(支持深度参数,默认深度为 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 工具包含多项增强功能,以提升可靠性:
- 改进提示:工具说明现在强调进行多次小而集中的修改,而非一次性进行大改动。
- 模糊搜索回退:当精确匹配失败时,系统会执行模糊搜索并提供详细反馈。
- 字符级差异显示:使用
{-removed-}{+added+}格式精确展示不同之处。 - 多处替换支持:可通过
expected_replacements参数一次性替换多个实例。 - 全面日志记录:所有模糊搜索都会被记录下来,便于分析与调试。
当搜索失败时,您将看到关于找到的最接近匹配的详细信息,包括相似度百分比、执行时间以及字符差异。所有这些细节都会自动记录下来,以便后续使用模糊搜索日志工具进行分析。
Docker 支持
🐳 隔离环境使用
Desktop Commander 可以在 Docker 容器中运行,实现与宿主机系统的完全隔离,从而确保您的计算机零风险。这非常适合用于测试、开发,或需要完全沙盒化环境的场景。
安装说明
安装适用于 Windows/Mac 的 Docker
- 从 docker.com 下载并安装 Docker Desktop。
获取 Desktop Commander 的 Docker 配置
- 访问:https://hub.docker.com/mcp/server/desktop-commander/manual
- 选项 A:使用提供的终端命令进行自动化设置。
- 选项 B:点击“独立”以获取配置 JSON,并手动将其添加到您的 Claude Desktop 配置中。

挂载本地文件夹(即将推出)
- 关于如何将本地目录挂载到 Docker 容器中的说明将很快发布。
- 这样您就可以在保持完全隔离的同时处理自己的文件。
使用 Docker 的优势
- 完全隔离 与宿主机系统。
- 一致的环境 在不同机器上保持一致。
- 易于清理——完成任务后只需删除容器即可。
- 非常适合测试 新功能或新配置。
URL 支持
read_file现在既可以读取本地文件,也可以从 URL 获取内容。- 示例:使用
isUrl: true参数调用read_file以读取网络资源。 - 同时支持远程来源的文本和图像内容。
- 图像(无论是本地还是来自 URL)都会在 Claude 的界面中以可视化方式显示,而不是作为文本呈现。
- Claude 能够查看并分析实际的图像内容。
- 默认对 URL 请求设置 30 秒超时。
模糊搜索日志分析(npm 脚本)
模糊搜索日志系统包含便捷的 npm 脚本,可在 MCP 环境外部对日志进行分析:
# 查看最近的模糊搜索日志
npm run logs:view -- --count 20
# 分析模式与性能
npm run logs:analyze -- --threshold 0.8
# 将日志导出为 CSV 或 JSON
npm run logs:export -- --format json --output analysis.json
# 清除所有日志(需确认)
npm run logs:clear
有关这些脚本的详细文档,请参阅 scripts/README.md。
模糊搜索日志
Desktop Commander 包含针对 edit_block 工具中模糊搜索操作的全面日志记录功能。当无法找到精确匹配时,系统会执行模糊搜索,并记录详细信息以便分析。
日志记录的内容
每次模糊搜索操作都会记录:
- 搜索与找到的文本:您要查找的文本与实际找到的文本对比。
- 相似度分数:匹配的接近程度(0–100%)。
- 执行时间:搜索耗时。
- 字符差异:详细显示具体不同的地方。
- 文件元数据:扩展名、搜索/找到文本的长度。
- 字符编码:导致差异的具体字符编码。
日志保存位置
日志会自动保存至:
- macOS/Linux:
~/.claude-server-commander-logs/fuzzy-search.log - Windows:
%USERPROFILE%\.claude-server-commander-logs\fuzzy-search.log
您能从中了解到什么
模糊搜索日志可以帮助您理解:
- 精确匹配为何失败:常见问题如空格差异、行尾符或字符编码问题。
- 性能模式:搜索复杂度如何影响执行时间。
- 文件类型问题:哪些文件扩展名常出现匹配问题。
- 字符编码问题:哪些特定字符编码会导致差异。
审计日志
Desktop Commander 现在包含对所有工具调用的全面日志记录功能:
日志记录的内容
- 每次工具调用都会记录时间戳、工具名称及参数(已进行隐私保护处理)。
- 当日志达到 10MB 时会自动轮转。
日志保存位置
日志保存至:
- macOS/Linux:
~/.claude-server-commander/claude_tool_call.log - Windows:
%USERPROFILE%\.claude-server-commander\claude_tool_call.log
此审计追踪有助于调试、安全监控以及了解 Claude 如何与您的系统交互。
处理长时间运行的命令
对于可能需要较长时间才能完成的命令:
配置管理
⚠️ 重要安全警告
有关全面的安全信息及漏洞报告:请参阅 SECURITY.md
已知的安全限制:目录限制与命令阻断可通过多种方式绕过,包括符号链接、命令替换、绝对路径以及代码执行等。
始终在单独的聊天窗口中更改配置,不要与实际工作同时进行。Claude 有时可能会尝试修改配置设置(如
allowedDirectories),尤其是在遇到文件系统访问限制时。目前
allowedDirectories设置仅限制文件系统操作,并不限制终端命令。终端命令仍可访问允许目录之外的文件。出于生产环境的安全考虑:请使用 Docker 安装,该方法可实现与宿主机系统的完全隔离。
配置工具
您可以使用提供的工具来管理服务器配置:
// 获取整个配置
get_config({})
// 设置特定的配置值
set_config_value({ "key": "defaultShell", "value": "/bin/zsh" })
// 通过多次调用设置多个配置值
set_config_value({ "key": "defaultShell", "value": "/bin/bash" })
set_config_value({ "key": "allowedDirectories", "value": ["/Users/username/projects"] })
配置会保存到服务器工作目录下的 config.json 文件中,并在服务器重启后仍然有效。
关于 fileWriteLineLimit 的说明
fileWriteLineLimit 设置控制单次 write_file 操作可以写入的最大行数(默认值为 50 行)。设置这一限制有以下几个重要原因:
为什么需要设置这个限制:
- AI 在使用 Token 方面较为浪费:AI 可能不会对文件进行两次小规模的修改,而是选择直接重写整个文件。我们希望通过限制每次操作的行数,促使 AI 以更小的改动方式完成任务,从而节省时间和 Token。
- Claude 的消息长度限制:单条消息存在长度限制,且点击“继续”按钮并不能真正解决问题。我们希望 AI 能够以更小的块状方式处理任务,这样当达到消息长度限制时,已经成功处理的部分不会丢失——只需从上一个块重新开始即可。
如何设置该限制:
// 如果需要,可以将其设置为上千行
set_config_value({ "key": "fileWriteLineLimit", "value": 1000 })
// 或者保持较小的值以强制更高效的行为
set_config_value({ "key": "fileWriteLineLimit", "value": 25 })
最大值:您可以根据需要将其设置为上千行——技术上没有任何限制。
最佳实践:
- 建议保持默认值(50 行),以鼓励 AI 更高效地工作并避免 Token 浪费。
- 当超过限制时,系统会自动提示分块处理。
- 分块越小,当 Claude 达到消息长度限制时,丢失的工作就越少。
最佳实践
创建专门的聊天用于配置更改:所有配置更改都应在同一个聊天中完成,然后开启一个新的聊天进行实际工作。
谨慎设置空的
allowedDirectories:如果将此设置为一个空数组 ([]),则文件操作将获得对整个文件系统的访问权限。使用具体的路径:不要使用像
/这样的宽泛路径,而应明确指定您希望访问的具体目录。更改后务必验证配置:使用
get_config({})确认您的更改已正确应用。
命令行选项
Desktop Commander 支持多种命令行选项,用于自定义行为:
禁用引导功能
默认情况下,Desktop Commander 会向新用户(即工具调用次数少于 10 次的用户)显示有用的引导提示。您可以禁用此功能:
# 禁用本次会话的引导
node dist/index.js --no-onboarding
# 或者使用 npm 脚本
npm run start:no-onboarding
# 对于 npx 安装,修改您的 claude_desktop_config.json:
{
"mcpServers": {
"desktop-commander": {
"command": "npx",
"args": [
"-y",
"@wonderwhy-er/desktop-commander@latest",
"--no-onboarding"
]
}
}
}
自动禁用引导的情况:
- 当 MCP 客户端名称被设置为 “desktop-commander” 时;
- 当使用
--no-onboarding标志时; - 当用户已经使用过引导提示或进行了 10 次以上的工具调用后。
调试信息: 服务器会在引导被禁用时记录日志:“通过 --no-onboarding 标志禁用了引导”。
使用不同的 Shell
您可以指定用于执行命令的 Shell:
// 使用默认 Shell(bash 或系统默认)
execute_command({ "command": "echo $SHELL" })
// 特别使用 zsh
execute_command({ "command": "echo $SHELL", "shell": "/bin/zsh" })
// 特别使用 bash
execute_command({ "command": "echo $SHELL", "shell": "/bin/bash" })
这使您能够利用特定 Shell 的功能,或在不同命令之间保持一致的环境。
execute_command在超时后返回初始输出;- 命令在后台继续执行;
- 使用
read_output并提供 PID 来获取新的输出; - 如有必要,使用
force_terminate来终止进程。
调试
如果您需要调试服务器,可以以调试模式安装它:
# 使用 npx
npx @wonderwhy-er/desktop-commander@latest setup --debug
# 或者本地安装
npm run setup:debug
这将:
- 配置 Claude 使用单独的 “desktop-commander” 服务器;
- 启用 Node.js 调试协议,并添加
--inspect-brk=9229标志; - 在启动时暂停执行,直到调试器连接;
- 启用额外的调试环境变量。
要连接调试器:
- 在 Chrome 中,访问
chrome://inspect并查找 Node.js 实例; - 在 VS Code 中,使用 “附加到 Node.js 进程” 调试配置;
- 其他 IDE 或工具也可能提供类似的 “附加” 选项来进行 Node.js 调试。
重要的调试注意事项:
- 由于设置了
--inspect-brk标志,服务器会在启动时暂停,直到调试器连接; - 如果在调试过程中没有看到任何活动,请确保已连接到正确的 Node.js 进程;
- 可能同时运行多个 Node.js 进程,需连接到端口 9229 上的那个;
- 调试服务器在 Claude 的 MCP 服务器列表中会被标识为 “desktop-commander-debug”。
故障排除:
- 如果 Claude 在尝试使用调试服务器时超时,可能是调试器未正确连接;
- 正确连接后,进程将在遇到第一个断点后继续执行;
- 连接后,您可以在 IDE 中添加更多断点。
模型上下文协议集成
该项目扩展了 MCP 文件系统服务器的功能,使其能够实现:
- 在 Claude Desktop 中支持本地服务器;
- 执行完整的系统命令;
- 进程管理;
- 文件操作;
- 代码编辑并支持搜索/替换块。
该项目是探索 Claude MCP 的一部分:https://youtube.com/live/TlbjFDbl5Us
支持 Desktop Commander
📢 支持本项目
Desktop Commander MCP 是免费且开源的,但要蓬勃发展仍需您的支持!
我们的理念很简单:如果您尚未取得成功,我们不希望您为此付费。但若 Desktop Commander 能为您的成功助力,请考虑为我们提供支持。
支持方式:
- 🌟 GitHub Sponsors - 定期支持
- ☕ 请我喝杯咖啡 - 一次性捐赠
- 💖 Patreon - 成为赞助人,每月支持我们
- ⭐ 在 GitHub 上加星标 - 帮助更多人发现该项目
❤️ 支持者名人堂
这里展示了慷慨的支持者。感谢您让这个项目成为现实!
为什么您的支持至关重要
您的支持使我们能够:
- 持续进行积极的开发与维护
- 添加新功能与集成
- 提升跨平台兼容性
- 提供更完善的文档与示例
- 打造更强大的项目社区
官方网站
请访问我们的官方网站 https://desktopcommander.app/,获取最新资讯、文档及更新。
媒体资源
通过以下资源了解更多关于本项目的信息:
文章
Claude 搭配 MCP 替代 Cursor 和 Windsurf。这是如何做到的? - 详细探讨具备模型上下文协议能力的 Claude 如何改变开发者的工作流程。
视频
Claude Desktop Commander 视频教程 - 观看如何高效地设置并使用 Commander。
AnalyticsIndiaMag 的报道
这位开发者用 Claude 搭配 MCP 取代了 Windsurf 和 Cursor
社区
加入我们的 Discord 服务器,获取帮助、分享反馈并与其他用户交流。
用户评价
https://www.youtube.com/watch?v=ly3bed99Dy8&lc=UgyyBt6_ShdDX_rIOad4AaABAg
https://www.youtube.com/watch?v=ly3bed99Dy8&lc=UgztdHvDMqTb9jiqnf54AaABAg
https://www.youtube.com/watch?v=ly3bed99Dy8&lc=UgyQFTmYLJ4VBwIlmql4AaABAg
https://www.youtube.com/watch?v=ly3bed99Dy8&lc=Ugy4-exy166_Ma7TH-h4AaABAg
[
https://medium.com/@pharmx/you-sir-are-my-hero-62cff5836a3e](https://medium.com/@pharmx/you-sir-are-my-hero-62cff5836a3e
如果您觉得这个项目有用,请考虑在GitHub上给它点个⭐星!这有助于更多人发现该项目,并鼓励我们继续开发。
我们欢迎社区贡献!无论您发现了Bug、有功能需求,还是想贡献代码,都可以通过以下方式参与:
- 发现了Bug? 在github.com/wonderwhy-er/DesktopCommanderMCP/issues中提交一个问题
- 有功能想法? 在Issues栏目中提交功能请求
- 想贡献代码? Fork仓库,创建分支,然后提交Pull Request
- 有问题或讨论? 在GitHub Discussions标签页发起讨论
无论大小贡献,我们都十分感激!
如果您觉得这个工具对您的工作流程很有价值,请考虑支持该项目。
常见问题
以下是几个常见问题的解答。如需更全面的FAQ,请参阅我们的详细FAQ文档。
什么是Desktop Commander?
这是一个MCP工具,可以让Claude Desktop访问您的文件系统和终端,从而将Claude变成一个多功能的助手,用于编码、自动化、代码库探索等。
这和Cursor/Windsurf有什么不同?
与专注于IDE的工具不同,Claude Desktop Commander提供了一种以解决方案为中心的方法,可以与您的整个操作系统协同工作,而不仅限于编码环境。Claude会完整读取文件,而不是分块处理;它可以同时处理多个项目;并且能一次性执行所有更改,而无需反复检查。
我需要为API积分付费吗?
不需要。这个工具是基于Claude Desktop的标准Pro订阅(每月20美元)运行的,不涉及API调用,因此除了订阅费之外不会产生额外费用。
Desktop Commander会自动更新吗?
是的,通过npx或Smithery安装后,只要您重启Claude,Desktop Commander就会自动更新到最新版本。无需手动更新。
最常见的使用场景有哪些?
- 探索和理解复杂的代码库
- 生成图表和文档
- 自动化跨系统的任务
- 同时处理多个项目
- 进行精准控制的手术式代码修改
安装或使用过程中遇到问题,该去哪里求助?
请加入我们的Discord服务器获取社区支持,查看GitHub Issues了解已知问题,或查阅完整FAQ获取故障排除技巧。您也可以访问我们的网站FAQ页面,获得更友好的使用体验。如果遇到新问题,请考虑提交GitHub Issue,并详细说明您的问题。
如何报告安全漏洞?
请在GitHub Issue中提交关于您发现的安全漏洞的详细信息。有关负责任披露的完整指南,请参阅我们的安全政策。
数据收集与隐私
Desktop Commander 会收集有限的、经过假名处理的遥测数据,以改进该工具。我们不会收集文件内容、文件路径或命令参数。
选择退出: 请让 Claude 执行“禁用 Desktop Commander 遥测”操作,或在您的配置中将 "telemetryEnabled": false 设置为真。
有关完整详情,请参阅我们的隐私政策。
验证
许可证
MIT
版本历史
v0.2.382026/03/03v0.2.372026/02/20v0.2.362026/02/16v0.2.332026/02/01v0.2.302026/01/21v0.2.242025/12/17v0.2.222025/11/15v0.2.212025/11/05v0.2.52025/07/16v0.2.192025/10/24v0.2.172025/10/06v0.2.142025/09/12v0.2.132025/09/10v0.2.112025/09/01v0.2.92025/08/15v0.2.72025/07/23v0.2.62025/07/16v0.2.42025/07/15v0.2.32025/06/07v0.2.12025/05/22常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。


