莉莉丝贝壳

MCP服务器使AI助手能够安全地执行终端命令。
安全警告
此工具允许AI代理shell访问您的系统。 仅在受控环境中使用。部署前检查所有安全设置。了解风险。
为什么存在
您希望Claude运行shell命令,但需要安全防护。直接接触外壳是危险的。没有访问限制。此服务器提供中间地带:具有超时保护、错误处理和安全验证的受控命令执行。
它做什么
为Claude Desktop提供安全的shell命令执行:
- 命令执行 -通过MCP协议运行终端命令
- 超时保护 -命令在可配置的持续时间后自动终止
- 安全验证 -执行前命令分析和过滤
- 错误处理 -带上下文的结构化错误响应
- 交叉平台的 -适用于macOS和Windows(PowerShell+cmd)
技术栈
- Python 3.10+
- FastMCP用于模型上下文协议集成
- 跨平台子流程管理
- 安全第一架构
主要特点
安全控制
- 命令允许列表 -允许命令的可选白名单
- 危险指令检测 -阻止破坏性操作(rm-rf、格式化等)
- 超时强制 -杀死失控的进程
- 工作目录控制 -限制命令执行路径
- 输出消毒 -从响应中过滤敏感数据
执行功能
- 异步操作 -非阻塞命令执行
- 流输出 -实时命令输出流
- 退出代码处理 -正确的成功/失败检测
- 环境变量 -受控环境传递
- 外壳选择 -选择bash、zsh、PowerShell或cmd
快速开始
安装-macOS
pip install lilith-shell添加到Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"lilith-shell": {
"command": "python",
"args": ["-m", "lilith_shell"],
"env": {
"LILITH_TIMEOUT": "30",
"LILITH_SHELL": "bash"
}
}
}
}安装-Windows
pip install lilith-shell添加到Claude桌面配置(%APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"lilith-shell": {
"command": "python",
"args": ["-m", "lilith_shell"],
"env": {
"LILITH_TIMEOUT": "30",
"LILITH_SHELL": "powershell"
}
}
}
}重新启动克劳德桌面。
配置
环境变量
LILITH_TIMEOUT-命令超时(秒)(默认值:30)LILITH_SHELL-要使用的Shell(bash/zsh/powershell/cmd)LILITH_ALLOW_LIST-逗号分隔的允许命令列表LILITH_WORK_DIR-将执行限制在特定目录LILITH_MAX_OUTPUT-最大输出大小(字节)(默认值:1MB)
安全模式
允许模式 (默认)-阻止明显的危险命令:
{
"env": {
"LILITH_MODE": "permissive"
}
}严格模式 -仅执行分配的命令:
{
"env": {
"LILITH_MODE": "strict",
"LILITH_ALLOW_LIST": "git,npm,pip,ls,cat,grep"
}
}锁定模式 -只读操作:
{
"env": {
"LILITH_MODE": "lockdown"
}
}建筑
lilith-shell/
├── core/
│ ├── executor.py # Command execution engine
│ ├── security.py # Security validation
│ └── timeout.py # Timeout management
├── platform/
│ ├── unix.py # macOS/Linux implementation
│ ├── windows.py # Windows implementation
│ └── base.py # Platform interface
├── utils/
│ ├── config.py # Configuration management
│ ├── logger.py # Audit logging
│ └── sanitizer.py # Output sanitization
└── server.py # MCP server entry point设计原则
- 安全第一 -每个命令在执行前都经过验证
- 故障安全 -严格模式下默认拒绝未知命令
- 可审计性 -所有记录有时间戳和结果的命令
- 隔离 -无法访问shell历史记录或持久状态
- MCP本地 -与模型上下文协议的干净集成
用法
当需要执行命令时,Claude Desktop会自动使用shell服务器。交互示例:
User: "List files in the current directory"
Claude: *executes `ls -la` via Lilith Shell*
User: "Install dependencies"
Claude: *executes `npm install` via Lilith Shell*阻止命令(许可模式)
为了安全起见,默认情况下会阻止这些命令:
rm -rf,rm -fr-递归删除format,mkfs-文件系统格式化dd-低级磁盘操作chmod 777-危险的权限更改curl | sh,wget | sh-管道到外壳的执行sudo没有特定的同种异体条目- PowerShell
Remove-Item -Recurse
未来想法
- 命令允许列表UI -用于管理允许命令的Web界面
- 审计日志 -具有回放功能的全面命令历史记录
- Linux支持 -Linux发行版的全面测试和优化
- 沙盒模式 -在隔离容器中执行命令
- 命令模板 -预先批准的带参数的命令模式
- 速率限制 -防止命令垃圾邮件/滥用
- 多用户支持 -每个用户的安全配置文件
- 输出流UI -实时命令输出可视化
安全最佳实践
- 在生产中使用严格模式 -允许列表特定命令
- 设置保守超时 -防止资源枯竭
- 监控审核日志 -定期查看命令历史记录
- 限制工作目录 -限制文件系统访问范围
- 审查AI请求 -批准前了解命令
- 使用环境隔离 -在专用开发环境中运行
- 保持更新 -及时应用安全补丁
故障排除
命令超时
增加超时时间: "LILITH_TIMEOUT": "60"
权限被拒绝错误
检查工作目录权限和命令列表。
命令未执行
- 验证MCP服务器是否正在运行:检查Claude Desktop日志
- 检查安全模式:可能在严格/锁定模式下被阻止
- 查看审核日志:
~/.config/lilith-shell/logs/audit.log
发展
# Clone repository
git clone https://github.com/charles-adedotun/Lilith-Shell.git
cd lilith-shell
# Install dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Security audit
bandit -r src/
# Type checking
mypy src/贡献
安全问题得到优先考虑。针对漏洞打开私人安全咨询。对于功能,先打开一个问题来讨论方法。严格进行安全验证。
许可证
麻省理工学院
致谢
专为需要在没有混乱的情况下访问AI shell的开发人员而设计。负责任地使用。
