Shell MCP Server

Shell MCP Server

🚀 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 工具。

📚 详细文档

安全特性

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

  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 信号时优雅关闭

实现细节

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

  • 模型上下文协议 SDK
  • StdioServerTransport 进行通信
  • 使用 execa 执行命令
  • 使用 command-exists 验证命令是否存在

开发说明

要修改安全设置,可以执行以下操作:

  1. 编辑 BLACKLISTED_COMMANDS 集合以调整被阻止的命令
  2. 修改 validateCommand 函数以添加额外的验证规则
  3. 改进 CallToolRequestSchema 处理器中的命令解析逻辑
  • 0 关注
  • 0 收藏,11 浏览
  • system 提出于 2025-09-30 10:27

相似服务问题