Desktop Commander 是一个功能丰富的 MCP 服务器,使 Claude AI 能够执行终端命令、管理文件系统、编辑代码和分析数据。它提供交互式进程控制、内存代码执行、数据分析、进程管理、文件操作和代码搜索等强大功能,是 AI 辅助开发的全能工具。
工具列表
start_process
启动新的终端进程并支持智能状态检测。能够识别 REPL 提示符(如 Python 的 >>>、Node.js 的 >、Shell 的 $)、检测进程是否等待输入或已完成执行。支持超时配置和后台执行,适用于长时间运行的命令。
参数:
command(string) (必需): 要执行的终端命令,如 ‘python3 -i’、’node -i’、’bash’ 等timeout_ms(number) (必需): 命令超时时间(毫秒),默认值取决于命令类型shell(string) (可选): 可选的 shell 类型,如 ‘bash’、’zsh’、’sh’ 等verbose_timing(boolean) (可选): 启用详细的性能遥测信息,用于调试和优化
interact_with_process
向运行中的进程发送输入并自动接收响应。这是本地文件分析的主要工具,支持 Python、Node.js、R、Julia、Shell、数据库等多种 REPL。自动等待 REPL 提示符,检测错误和完成状态,提供清晰的输出格式。
参数:
pid(number) (必需): start_process 返回的进程 IDinput(string) (必需): 要执行的代码或命令timeout_ms(number) (可选): 最大等待时间(毫秒),默认 8000mswait_for_prompt(boolean) (可选): 自动等待响应,默认 trueverbose_timing(boolean) (可选): 启用性能调试信息
read_file
从文件系统或 URL 读取文件内容,支持偏移量和长度参数实现部分读取。正向偏移量从指定行开始读取,负向偏移量实现类似 tail 的功能。支持文本文件和图像文件(PNG、JPEG、GIF、WebP)。
参数:
path(string) (必需): 文件的绝对路径或 URLoffset(number) (可选): 起始行号(0 基索引)或负数表示从末尾读取,默认 0length(number) (可选): 最大读取行数,默认 1000isUrl(boolean) (可选): 是否从 URL 读取,默认 false
write_file
写入或追加文件内容。标准做法是分块写入,每次最多 25-30 行。第一次使用 ‘rewrite’ 模式,后续使用 ‘append’ 模式。支持在允许的目录内进行文件操作。
参数:
path(string) (必需): 文件的绝对路径content(string) (必需): 要写入的内容mode(string) (可选): 写入模式:rewrite 覆盖,append 追加,默认 rewrite
edit_block
对文件进行精确的文本替换。最佳实践是进行多个小型、专注的编辑。默认只替换一次匹配,可通过 expected_replacements 参数指定替换次数。当发现接近但不完全匹配时,会显示字符级差异。
参数:
file_path(string) (必需): 要编辑的文件绝对路径old_string(string) (必需): 要替换的文本,需包含足够上下文以确保唯一性new_string(string) (必需): 替换后的文本expected_replacements(number) (可选): 期望的替换次数,默认 1
start_search
启动流式搜索,可以逐步返回结果。支持两种搜索类型:files(按文件名搜索)和 content(搜索文件内容)。支持正则表达式或字面量搜索,可通过 glob 模式过滤文件类型。
参数:
path(string) (必需): 搜索的目录绝对路径pattern(string) (必需): 搜索模式(文件名或内容文本)searchType(string) (可选): 搜索类型:files 按文件名,content 搜索内容,默认 filesfilePattern(string) (可选): 可选的文件过滤器,如 ‘.js’ 或 ‘.{ts,tsx}’literalSearch(boolean) (可选): 使用字面量匹配而非正则表达式,默认 falseignoreCase(boolean) (可选): 不区分大小写搜索,默认 truemaxResults(number) (可选): 最大结果数量contextLines(number) (可选): 内容搜索时显示的上下文行数,默认 5
list_directory
获取目录的详细列表,区分文件和目录([FILE]和[DIR]前缀)。支持递归列表,默认深度为 2。嵌套目录限制为每个目录最多 100 项,防止上下文溢出。
参数:
path(string) (必需): 目录的绝对路径depth(number) (可选): 递归深度,1 表示仅直接内容,默认 2
create_directory
创建新目录或确保目录存在。可以一次性创建多个嵌套目录。仅在允许的目录内工作。
参数:
path(string) (必需): 要创建的目录绝对路径
move_file
移动或重命名文件和目录。可以在一次操作中同时移动和重命名。源和目标必须都在允许的目录内。
参数:
source(string) (必需): 源文件或目录的绝对路径destination(string) (必需): 目标路径
list_sessions
列出所有活动的终端会话及其状态,包括 PID、是否阻塞、运行时间。帮助调试 REPL:Blocked: true 通常表示 REPL 正在等待输入。
参数:
force_terminate
强制终止运行中的终端会话。
参数:
pid(number) (必需): 要终止的进程 ID
配置示例
Npx
1 | { |
Docker
1 | { |
使用场景
1. 数据分析工作流
这是本地文件分析的唯一正确工具。启动 Python REPL(python3 -i),加载 pandas 和 numpy,读取 CSV 文件,执行数据探索、清洗、转换和可视化准备。AI 可以交互式地分析数据、生成统计摘要、识别模式和异常值,所有操作都在内存中完成,无需保存临时文件。
2. 代码重构辅助
使用 start_search 工具在整个代码库中搜索特定函数或模式,然后使用 edit_block 进行精确的代码替换。AI 可以识别代码异味、建议重构方案、批量更新 API 调用或重命名变量,同时保持代码的完整性和一致性。
3. 开发环境自动化
通过交互式进程控制,AI 可以管理开发服务器、数据库连接、SSH 会话等长时间运行的进程。例如,启动 Node.js 开发服务器,监控日志输出,检测到错误时自动重启,或者建立 SSH 连接执行远程部署命令。
4. 实时日志分析
使用 read_file 的负向偏移功能实现类似 tail 的日志监控。AI 可以持续读取日志文件的最后几行,检测错误模式、性能问题或安全威胁,并提供实时告警和诊断建议。
5. 批量文件处理
结合 list_directory、read_file 和 write_file 工具,AI 可以批量处理文件,如格式化代码、更新文档、转换数据格式、添加版权声明等。支持递归目录遍历和文件过滤,确保只处理目标文件。
6. 交互式调试
启动语言特定的 REPL(Python、Node.js、R、Julia 等),AI 可以交互式地执行代码片段、测试函数、检查变量值、调试逻辑错误。智能提示符检测确保每个命令都能得到完整响应,无需手动超时等待。
安装指南
前置要求
- Node.js(用于 NPX 安装)
- Docker(可选,用于容器化部署)
- Claude Desktop 或兼容的 MCP 客户端
- macOS、Linux 或 Windows(WSL2)操作系统
安装方式
NPX(推荐,自动更新)
1 | npx @wonderwhy-er/desktop-commander@latest setup |
Bash 安装器(macOS)
1 | curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install.sh | bash |
Smithery(Web 安装)
Docker
1 | bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh) |
手动配置
注意:编辑 claude_desktop_config.json,添加 npx 命令配置
项目信息
- 源码仓库: https://github.com/wonderwhy-er/DesktopCommanderMCP
- 许可证: MIT
- 开发语言: TypeScript
- GitHub Stars: 500