使用说明

项目简介

Desktop Commander 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为 Claude 等大型语言模型 (LLM) 桌面应用提供本地计算机的控制能力。它允许 LLM 通过预定义工具执行终端命令、管理系统进程,并进行文件读写、目录操作以及代码编辑等文件系统操作,从而扩展 LLM 的应用场景和交互深度。

主要功能点

  • 终端命令执行: 允许 LLM 运行终端命令,并实时获取命令输出,支持设置命令超时和后台执行。
  • 进程管理: 提供进程列表查看和进程终止功能,方便 LLM 监控和管理系统进程。
  • 文件系统操作: 支持文件的读写、创建目录、列出目录内容、移动文件以及搜索文件等常见文件系统操作。
  • 代码编辑: 具备代码编辑能力,支持基于搜索和替换的代码块编辑以及完整文件重写,方便 LLM 修改代码文件。
  • 命令黑名单: 允许用户配置命令黑名单,限制 LLM 执行某些敏感或危险的命令,增强安全性。
  • 会话管理: 支持长时间运行的命令会话管理,允许 LLM 在命令超时后继续获取输出或强制终止会话。

安装步骤

  1. 确保已安装 Claude 桌面应用:访问 Claude 桌面应用下载页 下载并安装 Claude 桌面应用程序。

  2. 确保已安装 npm:如果您的计算机上尚未安装 npm,请访问 npm 安装指南 进行安装。

  3. 选择安装方式 (推荐使用 Option 2 或 Option 3):

    • Option 2: 使用 npx 安装 (推荐)

      在终端中运行以下命令:

      npx @wonderwhy-er/desktop-commander setup
    • Option 3: 手动添加到 Claude 配置文件

      a. 找到 Claude 的配置文件 'claude_desktop_config.json'。 * macOS: '~/Library/Application Support/Claude/claude_desktop_config.json' * Windows: '%APPDATA%\Claude\claude_desktop_config.json'

      b. 编辑 'claude_desktop_config.json' 文件,在 '"mcpServers"' 字段下添加以下 JSON 配置:

      {
        "mcpServers": {
          "desktop-commander": {
            "command": "npx",
            "args": [
              "-y",
              "@wonderwhy-er/desktop-commander"
            ]
          }
        }
      }
    • Option 1 和 Option 4 较为复杂,不推荐普通用户使用。

  4. 重启 Claude 桌面应用: 如果 Claude 桌面应用正在运行,请重启使其加载新的 MCP 服务器配置。

服务器配置

对于 MCP 客户端(如 Claude 桌面应用),您需要配置以下信息以连接到 Desktop Commander 服务器。这些配置通常在客户端的设置或配置文件中完成。

以下是配置示例,通常客户端会要求您填入 'server name', 'command', 'args' 等字段:

{
  "server name": "desktop-commander",  // MCP 服务器名称,在客户端中用于标识和选择
  "command": "npx",                  // 启动 MCP 服务器的命令,这里使用 npx 运行
  "args": [                           // 启动命令的参数
    "-y",                             // npx 参数,自动确认安装软件包
    "@wonderwhy-er/desktop-commander" // 要运行的 npm 包名,即 Desktop Commander 服务器
  ]
}

基本使用方法

安装并配置完成后,在 Claude 桌面应用中,您可以通过指令或自然语言指示 Claude 使用 Desktop Commander 提供的工具。

例如,您可以指示 Claude 执行以下操作:

  • 执行终端命令: "请执行命令 'ls -l' 查看当前目录的文件列表" (Claude 会调用 'execute_command' 工具)
  • 读取文件内容: "读取文件 '~/Documents/notes.txt' 的内容" (Claude 会调用 'read_file' 工具)
  • 编辑代码文件: "将 'src/main.js' 文件中的 'console.log("old message");' 替换为 'console.log("new message");'" (Claude 会调用 'edit_block' 工具,并按照指定的格式提供代码块)

请参考仓库 README.md 文件中 "Usage" 部分,了解每个工具的详细描述和使用方法。

信息

分类

桌面与硬件