article
README
🚀 Shell MCP 服务器
一个基于 Node.js 实现的模型上下文协议(MCP)服务,为您提供安全的 shell 命令执行功能。该服务器允许 AI 模型在受控环境中执行 shell 命令,内置了多重安全措施。它还能轻松集成到 Claude Desktop,实现 Claude 与您的 shell 之间的连接。
🚀 快速开始
运行 npx mcp-shell。
若要添加到 Claude Desktop,可运行 npx mcp-shell config,或者手动将 npx -y mcp-shell 添加到配置中。
启动(或重新启动)Claude Desktop,您会在登录页面看到 MCP 工具。
✨ 主要特性
- 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 信号时优雅关闭
实现细节
服务器使用以下技术构建:
- 模型上下文协议 SDK
- StdioServerTransport 进行通信
- 使用 execa 执行命令
- 使用 command-exists 验证命令是否存在
开发说明
要修改安全设置,可以执行以下操作:
- 编辑
BLACKLISTED_COMMANDS集合以调整被阻止的命令 - 修改
validateCommand函数以添加额外的验证规则 - 改进
CallToolRequestSchema处理器中的命令解析逻辑
微信扫一扫