M

MCP Shell

Model Context Protocol 的 Node.js 实现,提供安全的 shell 命令执行功能,允许像 Claude 这样的 AI 模型在具有内置安全措施的受控环境中运行 shell 命令。

os-automationdeveloper-tools

987 查看 · 2026-07-07 更新

简介

Model Context Protocol 的 Node.js 实现,提供安全的 shell 命令执行功能,允许像 Claude 这样的 AI 模型在具有内置安全措施的受控环境中运行 shell 命令。

简介

Model Context Protocol 的 Node.js 实现,提供安全的 shell 命令执行功能,允许像 Claude 这样的 AI 模型在具有内置安全措施的受控环境中运行 shell 命令。

Shell MCP 服务器

这是一个用 Node.js 实现的 Model Context Protocol (MCP) 服务器,它提供了安全的 shell 命令执行功能。该服务器允许 AI 模型在具有内置安全措施的受控环境中执行 shell 命令。可以轻松与 Claude Desktop 集成,以将 Claude 与您的 shell 连接起来。

特性

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

安装

运行 npx mcp-shell

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

启动(或重启)Claude Desktop,您应该会在登录页面上看到列出的 MCP 工具。

安全特性

服务器实现了以下几种安全措施:

  1. 命令黑名单

    • 阻止执行危险的系统命令
    • 阻止对关键系统修改的访问
    • 保护文件系统免受破坏
    • 防止权限提升
  2. 命令验证

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

可用工具

服务器提供了一个工具:

run_command

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

输入模式:

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

响应:

  • 成功:命令输出为纯文本
  • 错误:错误消息为纯文本

黑名单命令

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

  • 文件系统破坏命令(rm, rmdir, del)
  • 磁盘/文件系统命令(format, mkfs, dd)
  • 权限/所有权命令(chmod, chown)
  • 权限提升命令(sudo, su)
  • 代码执行命令(exec, eval)
  • 系统通信命令(write, wall)
  • 系统控制命令(shutdown, reboot, init)

错误处理

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

  • 命令未找到错误
  • 黑名单命令错误
  • 执行错误
  • MCP 协议错误
  • 接收到 SIGINT 时优雅关闭

实现细节

服务器使用以下技术构建:

  • Model Context Protocol SDK
  • 用于通信的 StdioServerTransport
  • 用于命令执行的 execa
  • 用于命令验证的 command-exists

开发

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

  1. 编辑 BLACKLISTED_COMMANDS 集合以调整被阻止的命令
  2. 修改 validateCommand 函数以添加额外的验证规则
  3. CallToolRequestSchema 处理程序中增强命令解析逻辑

工具列表

  • run_command: Run a shell command

来源