这是一个模型上下文协议(MCP)服务器,它能在保障安全的情况下执行任意shell命令。借助动态审批系统,服务器可在允许运行任意命令的同时,通过用户批准和审计日志维护安全性。
本服务器支持独立运行模式和与Claude桌面集成两种使用方式,下面为您详细介绍。
git clone
cd dynamic-shell-server
python -m venv venv
source venv/bin/activate # 在Windows系统中使用:venv\Scripts\activate
pip install -r requirements.txt
python dynamic_shell_server.py
~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"shell": {
"command": "/absolute/path/to/.venv/bin/python",
"args": ["/absolute/path/to/dynamic_shell_server.py"]
}
}
}
以下是使用 execute_command
工具执行shell命令的示例:
# 假设我们要执行ls命令列出当前目录下的文件
from some_module import execute_command
result = execute_command(command='ls', args=[])
print(result)
使用 revoke_command_approval
工具撤销之前批准的某个命令的权限:
# 假设我们要撤销之前批准的ls命令
from some_module import revoke_command_approval
revoke_command_approval(command='ls')
首次运行某个命令时,将会出现如下提示:
命令执行审批要求
命令:
参数:
此命令尚未被批准。您希望进行以下操作:
1. 允许本次执行
2. 批准并记住该命令以备将来使用
3. 拒绝执行
请选择选项(1-3):
execute_command
:执行shell命令
command
: 要执行的命令args
: 可选的命令参数列表revoke_command_approval
:撤销之前批准的某个命令的权限
command
: 要撤销的命令commands://approved
:列出所有已批准的命令及其批准日期服务器的数据存储在 ~/.config/mcp-shell-server/
目录下:
approved_commands.json
:记录所有已批准的命令及其批准时间audit.log
:详细记录所有执行过的命令的历史日志