← 返回公开榜单
cl

MladenSU/cli-mcp-server

Command line interface for MCP clients with secure execution and customizable security policies

本周新增
5 星
近 3 周倍数
—
距上次推送
491 天
距上次发布
—
许可证
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 日 新增 0 个星标; 2025 年 12 月 25 日 新增 1 个星标; 2025 年 12 月 26 日 新增 0 个星标; 2026 年 1 月 2 日 新增 2 个星标; 2026 年 1 月 4 日 新增 0 个星标; 2026 年 1 月 5 日 新增 0 个星标; 2026 年 1 月 6 日 新增 0 个星标; 2026 年 1 月 8 日 新增 1 个星标; 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 日 新增 0 个星标; 2026 年 1 月 25 日 新增 0 个星标; 2026 年 1 月 26 日 新增 0 个星标; 2026 年 1 月 28 日 新增 0 个星标; 2026 年 1 月 29 日 新增 2 个星标; 2026 年 2 月 1 日 新增 0 个星标; 2026 年 2 月 2 日 新增 0 个星标; 2026 年 2 月 8 日 新增 0 个星标; 2026 年 2 月 9 日 新增 0 个星标; 2026 年 2 月 10 日 新增 0 个星标; 2026 年 2 月 11 日 新增 0 个星标; 2026 年 2 月 13 日 新增 0 个星标; 2026 年 2 月 14 日 新增 0 个星标; 2026 年 2 月 16 日 新增 0 个星标; 2026 年 2 月 17 日 新增 0 个星标; 2026 年 2 月 21 日 新增 0 个星标; 2026 年 3 月 16 日 新增 5 个星标

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

证据时间轴

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

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

CLI MCP Server


一个安全的模型上下文协议(MCP)服务器实现,用于执行受控的命令行操作,并具备全面的安全功能。

License Python Version MCP Protocol smithery badge Python Tests


目录

  1. 概述
  2. 功能
  3. 配置
  4. 可用工具
  5. 与Claude Desktop一起使用
  6. 安全功能
  7. 错误处理
  8. 开发
  9. 许可证

概述

该MCP服务器支持安全命令行执行,具备强大的安全措施,包括命令白名单、路径验证和执行控制。非常适合在保持安全性的同时,为LLM应用程序提供受控的CLI访问。

功能

  • 🔒 安全的命令执行,严格验证
  • ⚙️ 可配置的命令和标志白名单,支持'全部'选项
  • 🛡️ 防止路径遍历和路径验证
  • 🚫 防止Shell操作符注入
  • ⏱️ 执行超时和长度限制
  • 📝 详细错误报告
  • 🔄 支持异步操作
  • 🎯 工作目录限制和验证

配置

使用环境变量配置服务器:

变量描述默认
ALLOWED_DIR命令执行的基目录(必需)无(必需)
ALLOWED_COMMANDS允许的命令列表,用逗号分隔,或'全部'ls,cat,pwd
ALLOWED_FLAGS允许的标志列表,用逗号分隔,或'全部'-l,-a,--help
MAX_COMMAND_LENGTH最大命令字符串长度1024
COMMAND_TIMEOUT命令执行超时(秒)30
ALLOW_SHELL_OPERATORS允许Shell操作符(&&, |, >, 等)false

注意:将ALLOWED_COMMANDS或ALLOWED_FLAGS设置为'全部'将允许任何命令或标志。

安装

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

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

可用工具

run_command

在允许的目录中执行白名单中的CLI命令。

输入模式:

{
  "command": {
    "type": "string",
    "description": "要执行的单一命令(例如,'ls -l'或'cat file.txt')"
  }
}

安全说明:

  • 默认不支持Shell操作符(&&, |, >, >>),但可以通过ALLOW_SHELL_OPERATORS=true启用
  • 命令必须白名单,除非ALLOWED_COMMANDS='all'
  • 标志必须白名单,除非ALLOWED_FLAGS='all'
  • 所有路径都必须验证在ALLOWED_DIR内

show_security_rules

显示当前安全配置和限制,包括:

  • 工作目录
  • 允许的命令
  • 允许的标志
  • 安全限制(最大命令长度和超时)

与Claude Desktop一起使用

添加到你的~/Library/Application\ Support/Claude/claude_desktop_config.json:

开发/未发布服务器配置

{
  "mcpServers": {
    "cli-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "<path/to/the/repo>/cli-mcp-server",
        "run",
        "cli-mcp-server"
      ],
      "env": {
        "ALLOWED_DIR": "</your/desired/dir>",
        "ALLOWED_COMMANDS": "ls,cat,pwd,echo",
        "ALLOWED_FLAGS": "-l,-a,--help,--version",
        "MAX_COMMAND_LENGTH": "1024",
        "COMMAND_TIMEOUT": "30",
        "ALLOW_SHELL_OPERATORS": "false"
      }
    }
  }
}

已发布服务器配置

{
  "mcpServers": {
    "cli-mcp-server": {
      "command": "uvx",
      "args": [
        "cli-mcp-server"
      ],
      "env": {
        "ALLOWED_DIR": "</your/desired/dir>",
        "ALLOWED_COMMANDS": "ls,cat,pwd,echo",
        "ALLOWED_FLAGS": "-l,-a,--help,--version",
        "MAX_COMMAND_LENGTH": "1024",
        "COMMAND_TIMEOUT": "30",
        "ALLOW_SHELL_OPERATORS": "false"
      }
    }
  }
}

如果它无法工作或未在UI中显示,请通过uv clean清除缓存。

安全功能

  • ✅ 命令白名单强制执行,支持'全部'选项
  • ✅ 标志验证,支持'全部'选项
  • ✅ 防止路径遍历和规范化
  • ✅ 阻止Shell操作符(通过ALLOW_SHELL_OPERATORS=true可选支持)
  • ✅ 命令长度限制
  • ✅ 执行超时
  • ✅ 工作目录限制
  • ✅ 符链接解析和验证

错误处理

服务器为以下情况提供详细错误消息:

  • 安全违规(CommandSecurityError)
  • 命令超时(CommandTimeoutError)
  • 无效的命令格式
  • 路径安全违规
  • 执行失败(CommandExecutionError)
  • 一般命令错误(CommandError)

开发

前提条件

  • Python 3.10+
  • MCP协议库

构建和发布

准备用于分发的包:

  1. 同步依赖项并更新锁文件:

    uv sync
    
  2. 构建包分发:

    uv build
    

    这将在dist/目录中创建源和轮分发。

  3. 发布到PyPI:

    uv publish --token {{YOUR_PYPI_API_TOKEN}}
    

调试

由于MCP服务器通过stdio运行,调试可能具有挑战性。为获得最佳调试体验,我们强烈建议使用MCP Inspector。

您可以通过npm使用以下命令启动MCP Inspector:

npx @modelcontextprotocol/inspector uv --directory {{your source code local directory}}/cli-mcp-server run cli-mcp-server

启动后,Inspector将显示一个URL,您可以在浏览器中访问它以开始调试。

许可证

本项目根据MIT许可证授权 - 详细内容请参阅LICENSE文件。


如需更多信息或支持,请在项目仓库中打开问题。

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