关于 Dynamic Shell Server
Dynamic Shell Server 是一个 MCP 服务,用于执行 shell 命令,并通过动态审批机制控制执行权限。它适合希望在安全审计与用户确认下让 AI 运行命令的开发者。
主要功能
- 01首次执行命令时需要用户审批
- 02已批准命令持久化存储
- 03记录完整审计日志
- 04命令执行超时保护
- 05支持撤销已批准的命令
适用场景
- 01在项目目录中让 AI 执行 npm install 等命令
- 02审查 AI 执行过的命令历史
- 03撤销不再需要的命令批准
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端提供 execute_command 与 revoke_command_approval 两个工具,并提供 commands://approved 资源列出已批准的命令。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
动态 Shell 命令 MCP 服务
一种模型上下文协议(MCP)服务,可通过动态审批系统安全地执行 Shell 命令。该服务允许运行任意命令,同时通过用户审批和审计日志确保安全。
功能
- 🔐 动态命令审批系统
- 📝 持久化存储已批准的命令
- 📊 全面的审计日志
- ⏱️ 命令超时保护
- 🔄 撤销命令审批的功能
安装
- 克隆此代码库:
git clone <repository-url>
cd dynamic-shell-server
- 创建并激活虚拟环境:
python -m venv venv
source venv/bin/activate # On Windows use: venv\Scripts\activate
- 安装依赖项:
pip install -r requirements.txt
用法
独立模式
直接运行服务:
python dynamic_shell_server.py
Claude Desktop 集成
-
打开 Claude Desktop 配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
添加服务配置:
{
"mcpServers": {
"shell": {
"command": "/absolute/path/to/.venv/bin/python",
"args": ["/absolute/path/to/dynamic_shell_server.py"]
}
}
}
- 重启 Claude Desktop
命令审批流程
首次运行某条命令时,系统会提示:
Command Approval Required
Command: <command>
Arguments: <args>
This command has not been previously approved. Do you want to:
1. Allow this command once
2. Allow this command and remember for future use
3. Deny execution
Please choose an option (1-3):
可用工具
-
execute_command:执行 Shell 命令- 参数:
command:要执行的命令args:可选的命令参数列表
- 参数:
-
revoke_command_approval:撤销先前已批准命令的审批- 参数:
command:要撤销审批的命令
- 参数:
可用资源
commands://approved:列出所有已批准的命令及其审批日期
数据存储
服务将数据存储在 ~/.config/mcp-shell-server/:
approved_commands.json:已批准命令及其审批日期的列表audit.log:所有命令的详细执行历史记录
安全功能
- 首次执行命令时需要用户审批
- 持久化存储已批准的命令
- 全面的审计日志
- 5 分钟命令超时
- 不执行 Shell(防止注入攻击)
- 撤销命令审批的功能
使用示例
通过 Claude Desktop:
Human: Run 'npm install' in my project directory
Assistant: I'll help you run that command. Since this is the first time running 'npm install', you'll need to approve it.
[Command approval prompt appears]
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。