本周新增
3 星
近 3 周倍数
—
距上次推送
316 天
距上次发布
685 天
许可证
MIT

星标增长

每根柱子是这个周期记录下来的 star 增长:优先取逐个 stargazer 到达时间分桶的到达数,还没被 stargazer 扫描覆盖的仓库改用该周期的 star 净增;两个写者都没记录的周期画成虚线空档,而不是当成 0。柱高按各自窗口的峰值归一,两张图不共用坐标轴。指向任意一根柱子, tooltip 里是该周期的九项指标:当前值与周期内的净增。

指向或点击一根柱子,看当天的九项指标。

12/1712/301/111/242/62/193/33/16

2025 年 12 月 18 日 新增 0 个星标; 2025 年 12 月 21 日 新增 0 个星标; 2025 年 12 月 24 日 新增 1 个星标; 2025 年 12 月 25 日 新增 -1 个星标; 2025 年 12 月 26 日 新增 0 个星标; 2026 年 1 月 2 日 新增 0 个星标; 2026 年 1 月 4 日 新增 0 个星标; 2026 年 1 月 5 日 新增 0 个星标; 2026 年 1 月 6 日 新增 0 个星标; 2026 年 1 月 8 日 新增 0 个星标; 2026 年 1 月 9 日 新增 0 个星标; 2026 年 1 月 10 日 新增 0 个星标; 2026 年 1 月 12 日 新增 0 个星标; 2026 年 1 月 13 日 新增 0 个星标; 2026 年 1 月 14 日 新增 0 个星标; 2026 年 1 月 15 日 新增 0 个星标; 2026 年 1 月 16 日 新增 1 个星标; 2026 年 1 月 18 日 新增 0 个星标; 2026 年 1 月 21 日 新增 1 个星标; 2026 年 1 月 25 日 新增 2 个星标; 2026 年 1 月 26 日 新增 1 个星标; 2026 年 1 月 28 日 新增 1 个星标; 2026 年 1 月 29 日 新增 1 个星标; 2026 年 2 月 1 日 新增 2 个星标; 2026 年 2 月 2 日 新增 0 个星标; 2026 年 2 月 8 日 新增 1 个星标; 2026 年 2 月 9 日 新增 -1 个星标; 2026 年 2 月 10 日 新增 0 个星标; 2026 年 2 月 11 日 新增 1 个星标; 2026 年 2 月 13 日 新增 1 个星标; 2026 年 2 月 14 日 新增 0 个星标; 2026 年 2 月 16 日 新增 0 个星标; 2026 年 2 月 17 日 新增 0 个星标; 2026 年 2 月 21 日 新增 0 个星标; 2026 年 3 月 16 日 新增 3 个星标

窗口内最高的一天是 2026 年 3 月 16 日,新增 3 个星标。

证据时间轴

这个项目还没有记录到异动、发布或许可证变化。

README
该仓库存储的文档,若已生成中文翻译则一并显示

MCP Shell Server

codecov smithery badge

一个实现模型上下文协议(MCP)的安全shell命令执行服务器。该服务器允许远程执行白名单中的shell命令,并支持stdin输入。

mcp-shell-server MCP服务器

功能

  • 安全命令执行:仅可执行白名单中的命令
  • 标准输入支持:通过stdin向命令传递输入
  • 完整输出:返回stdout、stderr、退出状态和执行时间
  • shell操作符安全:验证shell操作符(; , &&, ||, |)后的命令
  • 超时控制:设置命令的最大执行时间

在你的Claude.app中设置MCP客户端

发布版本

code ~/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"
      }
    },
  }
}

本地版本

配置

code ~/Library/Application\ Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "shell": {
      "command": "uv",
      "args": [
        "--directory",
        ".",
        "run",
        "mcp-shell-server"
      ],
      "env": {
        "ALLOW_COMMANDS": "ls,cat,pwd,grep,wc,touch,find"
      }
    },
  }
}

安装

通过Smithery安装

通过Smithery自动为Claude Desktop安装Shell Server:

npx -y @smithery/cli install mcp-shell-server --client claude

手动安装

pip install mcp-shell-server

通过Smithery安装

通过Smithery自动为Claude Desktop安装Shell Server:

npx -y @smithery/cli install mcp-shell-server --client claude

使用

启动服务器

ALLOW_COMMANDS="ls,cat,echo" uvx mcp-shell-server
# 或使用别名
ALLOWED_COMMANDS="ls,cat,echo" uvx mcp-shell-server

ALLOW_COMMANDS(或其别名ALLOWED_COMMANDS)环境变量指定允许执行的命令。命令之间可用逗号分隔,周围可包含可选空格。

ALLOW_COMMANDS或ALLOWED_COMMANDS的有效格式:

ALLOW_COMMANDS="ls,cat,echo"          # 基本格式
ALLOWED_COMMANDS="ls ,echo, cat"      # 带空格(使用别名)
ALLOW_COMMANDS="ls,  cat  , echo"     # 多个空格

请求格式

# 基本命令执行
{
    "command": ["ls", "-l", "/tmp"]
}

# 带stdin输入的命令
{
    "command": ["cat"],
    "stdin": "Hello, World!"
}

# 带超时的命令
{
    "command": ["long-running-process"],
    "timeout": 30  # 最大执行时间(秒)
}

# 带工作目录和超时的命令
{
    "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
}

安全

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

  1. 命令白名单:仅可执行明确允许的命令
  2. shell操作符验证:验证shell操作符(;、&&、||、|)后的命令是否符合白名单
  3. 无shell注入:命令直接执行,不进行shell解释

开发

设置开发环境

  1. 克隆仓库
git clone https://github.com/yourusername/mcp-shell-server.git
cd mcp-shell-server
  1. 安装依赖,包括测试需求
pip install -e ".[test]"

运行测试

pytest

API参考

请求参数

字段类型是否必需描述
commandstring[]是命令及其参数作为数组元素
stdinstring否要传递给命令的输入
directorystring否命令执行的工作目录
timeoutinteger否最大执行时间(秒)

响应字段

字段类型描述
stdoutstring命令的标准输出
stderrstring命令的标准错误输出
statusinteger退出状态码
execution_timefloat执行耗时(秒)
errorstring错误消息(仅失败时存在)

要求

  • Python 3.11或更高版本
  • mcp>=1.1.0

许可证

MIT许可证 - 详情请查看LICENSE文件

页面上的每个数字都来自记录下来的 stargazer 到达时间,没有评分公式,也没有 AI 判定。 任何结论都可以用 /api/v1/repos/{id}/stats 里的原始增量自己重算。