Shell命令执行服务器

一个基于Node.js的Model Context Protocol (MCP)实现,提供安全的Shell命令执行功能,适用于AI模型在受控环境中运行Shell命令。

  • by hdresearch
  • JavaScript
  • 本地部署
  • 41 星标
  • 更新于
在 GitHub 查看 hdresearch/mcp-shell

使用说明

壳牌MCP服务器

模型上下文协议(MCP)的Node.js实现,提供安全的shell命令执行功能。该服务器允许AI模型在具有内置安全措施的受控环境中执行shell命令。轻松集成 克劳德桌面版 把克劳德和你的外壳连接起来。

特性

  • 符合MCP的服务器实现
  • 具有黑名单保护的安全命令执行
  • 命令存在验证
  • 基于I/O的标准传输
  • 错误处理和优雅关机

安装

跑 npx mcp-shell.

要将其添加到Claude Desktop,请运行 npx mcp-shell config。或添加 npx -y mcp-shell 手动配置。

启动(或重新启动) 克劳德桌面版 您应该看到登录页面上列出的MCP工具。

安全功能

服务器实施了多种安全措施:

  1. 命令黑名单

    • 防止执行危险的系统命令
    • 阻止对关键系统修改的访问
    • 防止文件系统被破坏
    • 防止特权升级
  2. 命令验证

    • 执行前验证命令是否存在
    • 根据黑名单进行验证
    • 返回无效命令的明确错误消息

可用工具

服务器提供了一个工具:

运行命令

执行shell命令并返回其输出。

输入架构:

{
  "type": "object",
  "properties": {
    "command": { "type": "string" }
  }
}

答复:

  • 成功:命令以纯文本形式输出
  • 错误:以纯文本形式显示错误消息

列入黑名单的命令

出于安全考虑,以下命令类别被阻止:

  • 文件系统销毁命令(rm、rmdir、del)
  • 磁盘/文件系统命令(格式、mkfs、dd)
  • 权限/所有权命令(chmod、chown)
  • 特权升级命令(sudo、su)
  • 代码执行命令(exec、eval)
  • 系统通信命令(写入、挂墙)
  • 系统控制命令(关机、重启、初始化)

错误处理

服务器包括全面的错误处理:

  • 命令未找到错误
  • 列入黑名单的命令错误
  • 执行错误
  • MCP协议错误
  • SIGINT上的优雅关机

实现细节

服务器是使用以下方式构建的:

  • 模型上下文协议SDK
  • 通信标准服务器传输
  • execa用于命令执行
  • 命令存在以进行命令验证

发展

要修改安全设置,您可以:

  1. 编辑 BLACKLISTED_COMMANDS 设置为调整被阻止的命令
  2. 修改 validateCommand 添加其他验证规则的函数
  3. 增强命令解析逻辑 CallToolRequestSchema 处理程序