项目简介

CMD Server 是一个实现了 Model Context Protocol (MCP) 的服务器,它允许 MCP 客户端通过工具调用来执行本地操作系统命令 (CMD/Shell) 以及远程服务器的 SSH 命令。这个服务器使得大型语言模型(LLM)驱动的应用能够与本地或远程的操作系统环境进行交互,扩展了 LLM 的能力边界。

主要功能点

  • 本地命令执行: 支持在运行 CMD Server 的本地操作系统上执行命令行命令。可以执行如文件操作、系统管理等各种本地命令。
  • 远程 SSH 命令执行: 支持通过 SSH 连接到远程服务器,并在远程服务器上执行命令。这使得 LLM 应用可以控制远程系统。
  • 持久会话: 命令默认在持久化的会话中执行,这意味着多次命令执行可以共享相同的环境上下文(例如环境变量、当前目录等)。同时也支持通过参数 'newSession: true' 创建新的会话来执行命令。
  • 跨平台兼容: 支持 Windows 和 Linux 操作系统。
  • 基于 MCP SDK: 使用官方 MCP SDK 构建,保证了与 MCP 协议的兼容性和标准性。

安装步骤

  1. 前提条件: 确保你的环境中已安装 Node.js (v16 或更高版本) 和 npm 包管理器。
  2. 安装 server-cmd: 打开终端或命令提示符,执行以下命令安装 'server-cmd' 包:
    npm install server-cmd

服务器配置

MCP 客户端需要配置以下 JSON 信息来启动和连接 CMD Server。这个配置告诉客户端如何启动服务器进程,并指定服务器的名称以便进行协议通信。

{
  "serverName": "cmd-server",
  "command": "npx",
  "args": [
    "server-cmd"
  ]
}

配置参数说明:

  • 'serverName': 服务器名称,必须设置为 '"cmd-server"',这与 CMD Server 代码中声明的服务器名称一致。
  • 'command': 启动服务器的命令。这里使用 'npx' 命令来运行本地安装的 'server-cmd' 包。'npx' 允许你执行本地 node_modules 中的包,而无需全局安装。
  • 'args': 传递给启动命令的参数列表。在本例中,'server-cmd' 启动命令不需要额外的参数。

基本使用方法

  1. 启动 CMD Server: 当 MCP 客户端启动并加载上述配置后,客户端会自动使用配置中的命令 ('npx server-cmd') 启动 CMD Server。CMD Server 默认通过标准输入输出 (stdio) 与客户端通信。
  2. 调用工具: 在 MCP 客户端中,你可以使用以下两个工具来执行命令:
    • 'execute_command': 用于执行本地操作系统命令。你需要提供 'command' 参数来指定要执行的命令,以及可选的 'newSession' 参数来控制是否使用新的会话。
    • 'execute_ssh_command': 用于执行远程 SSH 命令。你需要提供 SSH 连接相关的参数,如 'host', 'port', 'username', 'password' 或 'privateKey', 以及要执行的远程 'command',和可选的 'newSession' 参数。
  3. 查看结果: 命令执行的结果(包括标准输出和标准错误输出)将通过 MCP 协议返回给客户端,客户端可以展示这些结果给用户或用于后续处理。

注意: 由于 CMD Server 允许执行操作系统命令,使用时请务必注意安全风险,特别是当命令内容来自不可信的来源时。建议在生产环境中使用时,进行严格的输入验证和权限控制。

信息

分类

桌面与硬件