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 工具。
安全特性
服务器实现了以下几种安全措施:
-
命令黑名单
- 阻止执行危险的系统命令
- 阻止对关键系统修改的访问
- 保护文件系统免受破坏
- 防止权限提升
-
命令验证
- 在执行前验证命令是否存在
- 对照黑名单进行验证
- 对无效命令返回明确的错误消息
可用工具
服务器提供了一个工具:
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
开发
要修改安全设置,您可以:
- 编辑
BLACKLISTED_COMMANDS集合以调整被阻止的命令 - 修改
validateCommand函数以添加额外的验证规则 - 在
CallToolRequestSchema处理程序中增强命令解析逻辑
工具列表
- run_command: Run a shell command
来源
- 来源:github
- 链接:https://github.com/hdresearch/mcp-shell