Skip to main content
Glama

桌面指挥官 MCP

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

npm 下载 铁匠徽章 给我买杯咖啡

不和谐

使用代码和文本、运行流程并自动执行任务,远远超越其他 AI 编辑器 - 无需 API 令牌成本。

桌面指挥官 MCP

目录

所有 AI 开发工具一站式服务。Desktop Commander 将所有开发工具集中到一个聊天窗口。您可以在计算机上执行长时间运行的终端命令,并通过模型上下文协议 (MCP) 管理进程。它基于MCP 文件系统服务器构建,提供额外的文件搜索和替换编辑功能。

Related MCP server: Model Context Protocol Server

特征

  • 使用输出流执行终端命令

  • 命令超时和后台执行支持

  • 进程管理(列出和终止进程)

  • 长时间运行命令的会话管理

  • 服务器配置管理:

    • 获取/设置配置值

    • 一次更新多个设置

    • 无需重启服务器即可动态更改配置

  • 完整的文件系统操作:

    • 读/写文件

    • 创建/列出目录

    • 移动文件/目录

    • 搜索文件

    • 获取文件元数据

  • 代码编辑功能:

    • 外科手术文本替换的小改动

    • 针对重大变更进行完整文件重写

    • 多文件支持

    • 基于模式的替换

    • 基于 vscode-ripgrep 的文件夹中的递归代码或文本搜索

  • 全面的审计日志:

    • 所有工具调用都会自动记录

    • 日志轮换,大小限制为 10MB

    • 详细的时间戳和参数

安装

首先,确保您已经下载并安装了Claude Desktop 应用程序,并且已经安装了 npm

选项 1:通过 npx 安装

只需在终端中运行此命令:

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

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

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

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

选项 2:使用 bash 脚本安装程序(macOS)

对于 macOS 用户,您可以使用我们的自动 bash 安装程序,它将检查您的 Node.js 版本,根据需要安装它,并自动配置 Desktop Commander:

curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install.sh | bash

该脚本自动处理所有依赖项和配置,以实现无缝的安装体验。

选项 3:通过 Smithery 安装

要通过Smithery自动为 Claude Desktop 安装 Desktop Commander:

npx -y @smithery/cli install @wonderwhy-er/desktop-commander --client claude

选项 4:手动添加到 claude_desktop_config

将此条目添加到您的 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" ] } } }

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

选项 5:本地结账

  1. 克隆并构建:

git clone https://github.com/wonderwhy-er/DesktopCommanderMCP.git cd DesktopCommanderMCP npm run setup

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

安装命令将:

  • 安装依赖项

  • 构建服务器

  • 配置 Claude 的桌面应用程序

  • 如果需要,将 MCP 服务器添加到 Claude 的配置中

更新桌面指挥官

通过 npx(选项 1)或 Smithery(选项 3)安装后,Desktop Commander 会在您重启 Claude 时自动更新到最新版本。无需手动更新。

对于手动安装,您可以通过再次运行安装命令进行更新。

用法

该服务器提供了一套全面的工具,分为以下几类:

可用工具

类别

工具

描述

配置

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

:启用/禁用遥测(布尔值)

终端

execute_command

执行具有可配置超时和 shell 选择的终端命令

read_output

从正在运行的终端会话中读取新输出

force_terminate

强制终止正在运行的终端会话

list_sessions

列出所有活动的终端会话

list_processes

列出所有正在运行的进程及其详细信息

kill_process

通过 PID 终止正在运行的进程

文件系统

read_file

从本地文件系统或 URL 读取基于行的分页内容(支持偏移量和长度参数)

read_multiple_files

同时读取多个文件

write_file

使用重写或附加模式选项写入文件内容(使用可配置的行限制)

create_directory

创建新目录或确保其存在

list_directory

获取文件和目录的详细列表

move_file

移动或重命名文件和目录

search_files

使用不区分大小写的子字符串匹配按名称查找文件

search_code

使用 ripgrep 在文件内容中搜索文本/代码模式

get_file_info

检索有关文件或目录的详细元数据

文本编辑

edit_block

应用有针对性的文本替换,并增强对较小编辑的提示(包括字符级差异反馈)

工具使用示例

搜索/替换块格式:

filepath.ext <<<<<<< SEARCH content to find ======= new content >>>>>>> REPLACE

例子:

src/main.js <<<<<<< SEARCH console.log("old message"); ======= console.log("new message"); >>>>>>> REPLACE

增强的编辑块功能

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

  1. 改进的提示:工具描述现在强调进行多个小的、有针对性的编辑,而不是一次大的更改

  2. 模糊搜索回退:当精确匹配失败时,它会执行模糊搜索并提供详细的反馈

  3. 字符级差异:使用{-removed-}{+added+}格式准确显示不同之处

  4. 多次出现支持:可以使用expected_replacements参数替换多个实例

  5. 全面记录:所有模糊搜索均记录下来,以供分析和调试

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

URL 支持

  • read_file现在可以从本地文件和 URL 获取内容

  • 示例:使用isUrl: true参数的read_file从 Web 资源读取

  • 处理来自远程源的文本和图像内容

  • 图像(本地或来自 URL)在 Claude 的界面中以视觉方式显示,而不是以文本形式显示

  • 克劳德可以看到并分析实际图像内容

  • URL 请求的默认超时时间为 30 秒

模糊搜索日志分析(npm脚本)

模糊搜索日志系统包括方便的 npm 脚本,用于分析 MCP 环境之外的日志:

# View recent fuzzy search logs npm run logs:view -- --count 20 # Analyze patterns and performance npm run logs:analyze -- --threshold 0.8 # Export logs to CSV or JSON npm run logs:export -- --format json --output analysis.json # Clear all logs (with confirmation) 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

您将学到什么

模糊搜索日志可以帮助您了解:

  1. 精确匹配失败的原因:常见问题,例如空格差异、行尾或字符编码

  2. 性能模式:搜索复杂性如何影响执行时间

  3. 文件类型问题:哪些文件扩展名通常存在匹配问题

  4. 字符编码问题:导致差异的特定字符代码

审计日志

Desktop Commander 现在包括所有工具调用的全面日志记录:

记录的内容

  • 每个工具调用都会记录时间戳、工具名称和参数(已进行隐私保护)

  • 当日志大小达到 10MB 时,会自动轮换

日志位置

日志保存到:

  • macOS/Linux~/.claude-server-commander/claude_tool_call.log

  • Windows%USERPROFILE%\.claude-server-commander\claude_tool_call.log

此审计跟踪有助于调试、安全监控以及了解 Claude 如何与您的系统交互。

处理长时间运行的命令

对于可能需要一段时间的命令:

配置管理

⚠️ 重要安全警告

  1. 请务必在与实际工作不同的聊天窗口中更改配置。如果遇到文件系统访问限制,Claude 有时可能会尝试修改配置设置(例如allowedDirectories )。

  2. 目前, ,而不限制终端命令。终端命令仍然可以访问允许目录之外的文件。完整的终端沙盒功能正在规划中。

配置工具

您可以使用提供的工具管理服务器配置:

// Get the entire config get_config({}) // Set a specific config value set_config_value({ "key": "defaultShell", "value": "/bin/zsh" }) // Set multiple config values using separate calls set_config_value({ "key": "defaultShell", "value": "/bin/bash" }) set_config_value({ "key": "allowedDirectories", "value": ["/Users/username/projects"] })

配置保存到服务器工作目录中的config.json ,并在服务器重启后仍然存在。

最佳实践

  1. 为配置更改创建专用聊天:在一次聊天中进行所有配置更改,然后为实际工作开始新的聊天。

  2. 小心使用空的 :将其设置为空数组( [] )将授予对整个文件系统的文件操作访问权限。

  3. 使用特定路径:不要使用像/这样的宽路径,而是指定您想要访问的确切目录。

  4. 更改后始终验证配置:使用get_config({})确认您的更改已正确应用。

使用不同的 Shell

您可以指定使用哪个 shell 来执行命令:

// Using default shell (bash or system default) execute_command({ "command": "echo $SHELL" }) // Using zsh specifically execute_command({ "command": "echo $SHELL", "shell": "/bin/zsh" }) // Using bash specifically execute_command({ "command": "echo $SHELL", "shell": "/bin/bash" })

这使得您可以使用特定于 shell 的功能或在命令之间保持一致的环境。

  1. 超时后, execute_command返回初始输出

  2. 命令在后台继续

  3. 使用read_output和 PID 来获取新的输出

  4. 如果需要,使用force_terminate停止

调试

如果需要调试服务器,可以以调试模式安装:

# Using npx npx @wonderwhy-er/desktop-commander@latest setup --debug # Or if installed locally npm run setup:debug

这将:

  1. 配置 Claude 使用单独的“desktop-commander”服务器

  2. 使用--inspect-brk=9229标志启用 Node.js 检查器协议

  3. 在开始时暂停执行,直到调试器连接

  4. 启用额外的调试环境变量

连接调试器:

  • 在 Chrome 中,访问chrome://inspect并查找 Node.js 实例

  • 在 VS Code 中,使用“附加到节点进程”调试配置

  • 其他 IDE/工具可能有类似的用于 Node.js 调试的“附加”选项

重要调试说明:

  • 服务器将在启动时暂停,直到调试器连接(由于--inspect-brk标志)

  • 如果在调试期间没有看到活动,请确保您连接到正确的 Node.js 进程

  • 可能有多个 Node 进程正在运行;连接到端口 9229 上的进程

  • 在 Claude 的 MCP 服务器列表中,调试服务器被标识为“desktop-commander-debug”

故障排除:

  • 如果 Claude 在尝试使用调试服务器时超时,则您的调试器可能未正确连接

  • 正确连接后,进程将在到达第一个断点后继续执行

  • 连接后,您可以在 IDE 中添加其他断点

模型上下文协议集成

该项目扩展了 MCP 文件系统服务器以实现:

  • Claude Desktop 中的本地服务器支持

  • 完整系统命令执行

  • 流程管理

  • 文件操作

  • 使用搜索/替换块进行代码编辑

作为探索 Claude MCP 的一部分而创建: https://youtube.com/live/TlbjFDbl5Us

完毕

  • 2025 年 5 月 20 日 v0.1.40 版本发布- 为所有工具调用添加了审计日志记录,改进了基于行的文件操作,增强了 edit_block,为较小的编辑提供了更好的提示,添加了明确的遥测退出提示

  • 2025 年 5 月 5 日模糊搜索日志记录- 为模糊搜索操作添加了全面的日志记录系统,其中包含详细的分析工具、字符级差异和性能指标,以帮助调试 edit_block 故障

  • 2025 年 4 月 29 日通过配置退出遥测- 现在可以在配置中禁用遥测,请在聊天中询问

  • 2025 年 4 月 23 日增强编辑功能- 改进格式,添加模糊搜索和多现替换,失败率更低,编辑块使用频率更高

  • 2025 年 4 月 16 日 更好的配置- 改进了允许的路径、命令和 shell 环境的设置

  • 2025 年 4 月 14 日 Windows 环境修复- 解决了特定于 Windows 平台的问题

  • 2025 年 4 月 14 日 Linux 改进- 增强与各种 Linux 发行版的兼容性

  • 2025 年 12 月 4 日 更完善的允许目录和阻止命令- 改进了文件读写和终端命令限制的安全性和路径验证。终端仍然可以访问文件,而无需考虑允许的目录。

  • 2025 年 11 月 4 日 Shell 配置- 增加了配置用于命令执行的首选 Shell 的功能

  • 2025 年 7 月 4 日添加了 URL 支持- read_file命令现在可以从 URL 获取内容

  • 2025 年 3 月 28 日修复了“Watching /” JSON 错误- 实现了自定义 stdio 传输来处理非 JSON 消息并防止服务器崩溃

  • 2025 年 3 月 25 日 更好的代码搜索已合并) - 通过上下文感知结果增强代码探索

正在进行的工作/待办事项/路线图

目前正在探索以下功能:

  • 支持 WSL - Windows Subsystem for Linux 集成

  • 支持 SSH - 远程服务器命令执行

  • 更好地支持 CSV/PDF 等格式的文件

  • 为 Mac/Linux/Windows 提供终端沙盒以提高安全性

  • 文件读取模式- 例如,允许将 HTML 读取为纯文本或 markdown

  • 交互式 shell 支持- ssh、node/python repl

  • 改进大文件的读写

❤️ 支持桌面指挥官

球迷名人堂

这里列出了慷慨的支持者。感谢您帮助促成这个项目!

网站

访问我们的官方网站https://desktopcommander.app/获取最新信息、文档和更新。

媒体

通过以下资源了解有关该项目的更多信息:

文章

带有 MCP 的 Claude 取代了 Cursor 和 Windsurf。这是怎么发生的? ——详细探讨了带有模型上下文协议功能的 Claude 如何改变开发人员的工作流程。

视频

Claude Desktop Commander 视频教程- 观看如何有效设置和使用 Commander。

AnalyticsIndiaMag 上发表的论文

analyticsindiamag.png

社区

加入我们的Discord 服务器以获取帮助、分享反馈并与其他用户联系。

评价

这真是个救星!我之前一直用 Claude + Cursor,总觉得有点重复。现在终于解决了问题。我太开心了,非常感谢。而且今天 Claude 还添加了网页搜索支持。有了 MCP + 网页搜索,它就能用最新的更新来编写代码。当 Cursor 偶尔不工作或者所有快速请求都用完的时候,这个功能就派上用场了。

这是我在 YouTube 视频上留下的第一条评论,谢谢!我一直在努力将 Cursor 中的一个旧 Flutter 应用从空值安全之前的旧版本更新到当前版本,并使用 Claude 3.7 实现了空值安全。我完成了大部分工作,但遇到了严重的 BLE 错误,我花了好几天时间才解决,但毫无进展。我尝试了 Augment Code,但也没能解决问题。我在 Claude 桌面版中实现了您的 MCP,并能够完整地比较新旧代码库,考虑到代码中的更新,并在几个小时内修复了问题。给正在尝试此方法的人一个建议:务必将更改暂存起来,并在适当的时候提交,以便能够撤消不需要的更改。太棒了!

太棒了!我刚用Windsurf升级了旧的全栈套接字项目,一周前买了许可证,它运行良好,甚至还可以,但也经常出现级联崩溃,不得不撤销所有更改,损失了数百个级联代币。短短一周内,代币就降到了不到100个,我可不想花10美元买300个代币。我终于有理由购买Claude MCP了,我终于可以随心所欲地编写代码了,不用担心代币成本。 这不仅仅是代码编辑,更是感谢你精彩的视频!

这是一个很棒的工具,谢谢,我喜欢使用它,因为它让克劳德能够进行外科手术编辑,使其更像人类开发人员。

先生,您是我的英雄。您几乎总结并描述了我最近的经历,比我自己能说的要好得多。Cursor 和 Windsurf 都让我沮丧到几乎对着电脑屏幕大喊大叫。我一时兴起,心想为什么不直接问 Claude,从那以后就再也没有回头。 首先,我会先咨询 Claude,让他保持理智,然后如果有必要,再尝试其他 IDE、框架等等。我以为只有我一个人这样,很高兴发现我不是,哈哈。 33 1

如果您觉得这个项目有用,请考虑在 GitHub 上点个⭐!这有助于其他人发现这个项目,并鼓励进一步开发。

我们欢迎社区的贡献!无论您是发现了错误、提出了功能请求,还是想贡献代码,都可以通过以下方式提供帮助:

  • **发现 bug 了?**请在github.com/wonderwhy-er/DesktopCommanderMCP/issues提交问题

  • **有功能创意?**请在问题版块提交功能请求

  • **想要贡献代码?**分叉代码库,创建分支,然后提交拉取请求

  • **有问题或想讨论?**请在 GitHub 讨论选项卡中发起讨论

所有的贡献,无论大小,都非常感谢!

如果您发现此工具对您的工作流程有价值,请考虑支持该项目

常见问题

以下是一些常见问题的解答。如需更全面的常见问题解答,请参阅我们详细的常见问题解答文档

什么是桌面指挥官?

它是一个 MCP 工具,使 Claude Desktop 能够访问您的文件系统和终端,将 Claude 变成一个多功能的编码、自动化、代码库探索等助手。

这与 Cursor/Windsurf 有何不同?

与专注于 IDE 的工具不同,Claude Desktop Commander 提供了一种以解决方案为中心的方法,它兼容整个操作系统,而不仅仅是在编码环境中。Claude 会完整读取文件,而不是将其分块,可以同时处理多个项目,并且可以一次性执行更改,而无需不断进行审查。

我需要支付 API 积分吗?

不。此工具与 Claude Desktop 的标准 Pro 订阅(每月 20 美元)兼容,而不是与 API 调用兼容,因此您不会产生订阅费以外的额外费用。

Desktop Commander 会自动更新吗?

是的,通过 npx 或 Smithery 安装后,Desktop Commander 会在您重启 Claude 时自动更新到最新版本。无需手动更新。

最常见的用例有哪些?

  • 探索和理解复杂的代码库

  • 生成图表和文档

  • 在整个系统中自动执行任务

  • 同时处理多个项目

  • 通过精确控制进行手术代码更改

我在安装或使用该工具时遇到了问题。我该如何获得帮助?

加入我们的Discord 服务器获取社区支持,查看GitHub Issues了解已知问题,或查看完整的常见问题解答获取故障排除技巧。您还可以访问我们网站的常见问题解答部分,获得更便捷的用户体验。如果您遇到新问题,请考虑创建 GitHub Issue并详细说明您的问题。

数据收集与隐私

Desktop Commander 会收集有限的匿名遥测数据,以帮助改进该工具。它不会收集任何个人信息、文件内容、文件路径或命令参数。

遥测功能默认启用。要选择退出,请执行以下操作:

  1. 打开聊天并简单询问: “禁用遥测”

  2. 聊天机器人将自动更新您的设置。

有关数据收集的完整详细信息,请参阅我们的隐私政策

执照

麻省理工学院

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/wonderwhy-er/DesktopCommanderMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server