MCP Shell Server

MCP Shell Server

未知

MCP Shell 服务器是一个安全的命令执行工具,实现了模型上下文协议(MCP),允许远程执行白名单中的shell命令。

codecov

核心特性

  • 安全命令执行:仅执行白名单命令
  • 标准输入支持:通过stdin传递输入
  • 完整输出:返回stdout、stderr、退出状态和执行时间
  • Shell操作符安全:验证所有命令包括操作符后的命令
  • 超时控制:设置最大执行时间

安装

pip install mcp-shell-server

基本配置

在Claude.app中配置

修改 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "shell": {
      "command": "uvx",
      "args": ["mcp-shell-server"],
      "env": {
        "ALLOW_COMMANDS": "ls,cat,pwd,grep,wc,touch,find"
      }
    }
  }
}

使用方法

启动服务器

ALLOW_COMMANDS="ls,cat,echo" uvx mcp-shell-server

注意: 可使用 ALLOWED_COMMANDS 作为别名

请求示例

基本命令:

{
    "command": ["ls", "-l", "/tmp"]
}

带标准输入:

{
    "command": ["cat"],
    "stdin": "Hello, World!"
}

带超时和工作目录:

{
    "command": ["grep", "-r", "pattern"],
    "directory": "/path/to/search",
    "timeout": 60
}

响应格式

成功响应:

{
    "stdout": "命令输出",
    "stderr": "",
    "status": 0,
    "execution_time": 0.123
}

错误响应:

{
    "error": "不允许的命令: rm",
    "status": 1,
    "stdout": "",
    "stderr": "不允许的命令: rm",
    "execution_time": 0
}

系统要求

  • Python 3.11+
  • mcp>=1.1.0

安全性

  • 仅执行白名单命令
  • 验证shell操作符(;, &&, ||, |)后的命令
  • 直接执行命令,防止shell注入

许可证

MIT许可证