MCP Shell

@hdresearch/mcp-shell
3 Stars 1.0k 次浏览 hdresearch 更新于 2026-08-23

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

该服务暂未提供标准配置,请参考 README 手动接入

可用工具 (1 个)

该服务在 MCP 协议中暴露的工具,AI 可按需调用

run_command 1 个参数

Run a shell command

该工具无需必填参数,直接调用即可

服务介绍

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 处理程序中增强命令解析逻辑

相关 MCP 服务