内容
# Shell MCP 服务器
基于 Node.js 的模型上下文协议(MCP)实现,提供安全的 shell 命令执行功能。该服务器允许 AI 模型在具有内置安全措施的受控环境中执行 shell 命令。可与 [Claude Desktop](https://claude.ai/download) 无缝集成,以便将 Claude 连接到您的 shell。
<a href="https://glama.ai/mcp/servers/jwkd5nmnh7">
<img width="380" height="200" src="https://glama.ai/mcp/servers/jwkd5nmnh7/badge" alt="Shell 服务器 MCP 服务器" />
</a>
## 功能特点
- 符合 MCP 协议的服务器实现
- 具有黑名单保护的安全命令执行
- 命令存在验证
- 基于标准 I/O 的传输
- 错误处理和优雅关闭
## 安装
运行 `npx mcp-shell`。
要将其添加到 Claude Desktop,运行 `npx mcp-shell config`。或者手动将 `npx -y mcp-shell` 添加到您的配置文件中。
启动(或重启) [Claude Desktop](https://claude.ai/download) ,您应该会在登录页面看到列出的 MCP 工具。
## 安全功能
服务器实施了多项安全措施:
1. 命令黑名单
- 防止执行危险的系统命令
- 阻止访问关键系统修改
- 保护免受文件系统破坏
- 防止权限提升
2. 命令验证
- 在执行前验证命令存在
- 针对黑名单进行验证
- 为无效命令返回清晰的错误消息
## 可用工具
服务器提供一个工具:
### 运行命令
执行 shell 命令并返回其输出。
**输入模式:**
```json
{
"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 信号的优雅关闭
## 实现细节
服务器使用以下技术构建:
- 模型上下文协议 SDK
- StdioServerTransport 用于通信
- execa 用于命令执行
- command-exists 用于命令验证
## 开发
要修改安全设置,您可以:
1. 编辑 `BLACKLISTED_COMMANDS` 集以调整阻止的命令
2. 修改 `validateCommand` 函数以添加额外的验证规则
3. 增强 `CallToolRequestSchema` 处理程序中的命令解析逻辑