项目简介

Server Commands 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在扩展 LLM (如 Claude Desktop) 的能力,使其能够与本地操作系统进行交互。该服务器通过提供 'run_command' 和 'run_script' 工具,允许 LLM 客户端请求在服务器端执行指定的命令或脚本,并将执行结果返回给 LLM。此外,Server Commands 还提供 'run_command' Prompt,允许用户在聊天对话中直接插入命令的执行结果,增强 LLM 的上下文感知能力。

主要功能点

  • 命令执行工具 (run_command): 允许 LLM 客户端请求在服务器上执行指定的操作系统命令,例如 'hostname', 'ls -al', 'echo "hello world"' 等。服务器会将命令的标准输出 (STDOUT) 和标准错误输出 (STDERR) 作为文本返回。
  • 脚本执行工具 (run_script): 允许 LLM 客户端请求在服务器上执行脚本,支持多种脚本解释器,如 'fish', 'bash', 'zsh', 'python' 等。脚本内容通过标准输入 (STDIN) 传递给服务器,执行结果同样以 STDOUT 和 STDERR 的形式返回。
  • Prompt 消息 (run_command): 提供一个名为 'run_command' 的 Prompt,用户可以使用该 Prompt 生成包含命令执行结果的消息,并将其插入到与 LLM 的对话历史中。这使得用户可以在对话中方便地引用和利用命令执行的上下文信息。

安装步骤

  1. 安装 Node.js 和 npm: 确保你的系统已安装 Node.js 和 npm (Node.js 包管理器)。
  2. 克隆仓库: 将 GitHub 仓库 'https://github.com/g0t4/mcp-server-commands' 克隆到本地。
  3. 安装依赖: 在仓库根目录下,运行命令 'npm install' 安装项目依赖。
  4. 构建服务器: 运行命令 'npm run build' 构建服务器代码。

服务器配置

要将 Server Commands 服务器配置到 MCP 客户端(例如 Claude Desktop),你需要编辑客户端的配置文件。以 Claude Desktop 为例,配置文件路径如下:

  • MacOS: '~/Library/Application Support/Claude/claude_desktop_config.json'
  • Windows: '%APPDATA%/Claude/claude_desktop_config.json'

在配置文件中,添加或修改 'mcpServers' 字段,配置 Server Commands 服务器。以下是两种配置方式:

方式一:使用已发布的 npm 包 (推荐)

{
  "mcpServers": {
    "mcp-server-commands": {
      "command": "npx",
      "args": ["mcp-server-commands"]
      // command: 启动服务器的命令,这里使用 npx 运行已发布的 npm 包 mcp-server-commands
      // args:  传递给服务器的命令行参数,这里没有参数
    }
  }
}

方式二:使用本地构建版本 (开发或调试时使用)

{
  "mcpServers": {
    "mcp-server-commands": {
      "command": "/path/to/mcp-server-commands/build/index.js"
      // command: 启动服务器的命令,指向本地仓库构建后的 index.js 文件
      // 请将 "/path/to/mcp-server-commands" 替换为你的本地仓库路径
    }
  }
}

可选参数:

  • '--verbose': 在 'args' 数组中添加 '--verbose' 可以启用详细日志输出,方便调试。日志会写入 '~/Library/Logs/Claude/mcp-server-mcp-server-commands.log' (MacOS) 或 '%APPDATA%/Claude/mcp-server-mcp-server-commands.log' (Windows)。

基本使用方法

  1. 启动 MCP 客户端: 启动配置了 Server Commands 服务器的 MCP 客户端 (例如 Claude Desktop)。客户端会自动连接到 Server Commands 服务器。
  2. 在 LLM 中使用工具: 在与 LLM 的对话中,你可以指示 LLM 使用 'run_command' 或 'run_script' 工具来执行命令或脚本。LLM 会根据工具的输入参数要求,生成相应的工具调用请求发送给 Server Commands 服务器。
  3. 使用 Prompt 消息: 在支持 Prompt 功能的 MCP 客户端中(例如 Zed 编辑器的 AI Chat 面板),你可以使用 '/run_command' 等命令来生成包含命令输出的 Prompt 消息,并将其插入到对话历史中。

安全警告:

请务必谨慎使用 Server Commands 服务器,特别是 'run_command' 和 'run_script' 工具,因为它们允许 LLM 执行任意操作系统命令和脚本。请仔细审查 LLM 提出的命令或脚本,避免执行恶意或不信任的操作。建议在 Claude Desktop 等客户端中使用 "Approve Once" 模式,以便每次工具调用都需要用户手动批准。 不要使用 'sudo' 权限运行 Server Commands 服务器。

信息

分类

桌面与硬件