Shell Command Execution MCP Server

项目简介

Shell Command Execution Server 是一个实现了 Model Context Protocol (MCP) 的服务器,它为大型语言模型 (LLM) 提供了安全执行 Shell 命令的能力。通过白名单机制、资源控制和安全限制,该服务器允许 LLM 安全地与底层操作系统交互,执行预定义的 Shell 命令,从而扩展 LLM 的功能。

主要功能点

  • 安全执行: 仅限白名单中的命令和参数可以执行,防止恶意命令注入。
  • 资源控制: 监控命令的内存和 CPU 使用情况,防止资源滥用。
  • 超时控制: 自动终止运行时间过长的命令,避免无限期运行。
  • 大小限制: 限制命令输出的大小,防止返回过大的结果。
  • MCP 集成: 完全兼容 MCP 协议,可以与 Claude 等 MCP 客户端无缝集成。

安装步骤

  1. 确保已安装 Node.js 18 或更高版本。

  2. 使用 npm 安装 '@kevinwatt/shell-mcp' 包:

    npm install @kevinwatt/shell-mcp

服务器配置

MCP 客户端需要配置连接 Shell MCP 服务器的启动命令。以下是 Dive Desktop 的配置示例,其他 MCP 客户端的配置方式类似。

{
  "mcpServers": {
    "shell": {
      "command": "npx",
      "args": [
        "-y",
        "@kevinwatt/shell-mcp"
      ]
    }
  }
}
  • 'server name': 'shell' (服务器名称,可以自定义)
  • 'command': 'npx' (Node.js 包执行器)
  • 'args':
    • '-y': 自动确认安装包 (可选,用于自动安装依赖)
    • '@kevinwatt/shell-mcp': Shell MCP 服务器的 npm 包名称,这将启动服务器。

基本使用方法

配置完成后,在 MCP 客户端中,你可以指示 LLM 调用以下工具来执行 Shell 命令。工具名称以 'shell_' 开头,例如:

  • 'shell_ls': 列出目录内容
  • 'shell_pwd': 显示当前工作目录
  • 'shell_df': 显示磁盘使用情况

例如,在与 LLM 对话时,你可以这样指示:

"使用 shell_pwd 显示当前目录"
"使用 shell_ls 命令列出当前目录的文件,并显示详细信息"
"使用 shell_df 命令查看磁盘空间使用情况"

LLM 将会调用相应的工具,并在安全的环境下执行 Shell 命令,然后将结果返回给你。

关键词

shell命令执行, LLM工具, 安全命令, 系统操作, 外部功能调用

信息

分类

桌面与硬件