Skip to main content
Glama

Lilith Shell

实验性 MCP 服务器,向 AI 助手公开本地 shell 命令执行功能。

当前状态

本仓库应被视为原型,而非安全的 shell 服务器。

当前的实现公开了一个 MCP 工具 execute_command,它通过 subprocess.run(..., shell=True) 运行调用者提供的命令字符串。它具有固定的五分钟超时限制,捕获 stdout 和 stderr,并接受一个可选的工作目录。它目前尚未实现本 README 中先前描述的安全控制。

建议的操作:在安全模型重建并经过测试之前,归档或取消固定此仓库。

Related MCP server: Terminally MCP

安全警告

请勿在包含凭据、生产数据、私有源代码、SSH 密钥、云令牌或其他敏感材料的主机、账户或目录中运行此程序。

当前代码中的已知漏洞:

  • 没有命令允许列表或拒绝列表强制执行

  • 没有严格、宽松或锁定模式

  • 没有工作目录边界强制执行

  • 没有环境过滤

  • 没有输出清理

  • 没有审计日志

  • 没有通过配置选择 shell

  • 没有流式输出

  • 没有 Windows 特定的执行路径

  • shell=True 与不受信任的工具输入一起使用

这些漏洞使得该项目不适合生产环境使用,即使在普通的开发工作站上也存在风险。

当前功能

该 MCP 服务器注册了一个工具:

  • execute_command

    • 输入:command 字符串

    • 可选输入:directory 字符串,默认为 ~

    • 行为:在请求的目录中执行命令并返回退出代码、stdout 和 stderr

已移除的功能

之前的 README 声称支持命令允许列表、危险命令检测、可配置模式、输出清理、审计日志、工作目录限制、跨平台 shell 选择和流式输出。这些功能目前在源代码树中不存在。

重新发布前的最小补丁计划

在将其作为面向安全的 MCP 服务器展示之前,需要完成以下工作:

  1. shell=True 字符串执行替换为基于 argv 的执行。

  2. 默认添加必需的严格模式,并提供明确的命令允许列表。

  3. 在执行每个命令之前,规范化并强制执行配置的工作区根目录。

  4. 为命令解析、被阻止的命令、路径遍历、符号链接逃逸、超时行为和输出限制构建测试。

  5. 从返回的输出中屏蔽常见的密钥模式。

  6. 添加有界输出处理,以防止大型命令耗尽内存或淹没 MCP 响应。

  7. 添加包含时间戳、cwd、退出代码和阻止原因的可审计命令日志。

  8. 准确记录支持哪些 shell、平台和威胁边界。

开发

pip install -e ".[dev]"
pytest

许可证

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    A secure Model Context Protocol server that allows AI assistants to execute terminal commands with controlled directory access and command permissions. It features a robust security architecture including whitelisting, session IDs, and categorized command levels to ensure safe system interaction.
    8
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    A secure MCP server for shell operations, terminal management, and process control, enabling AI assistants to safely execute commands and manage interactive sessions.
    13
    153 npm
    6
    MIT