mcpField
D
Dynamic Shell Server

Dynamic Shell Server

本地服务
github.com/codelion开发工具4287 周前更新

关于 Dynamic Shell Server

Dynamic Shell Server 是一个 MCP 服务,用于执行 shell 命令,并通过动态审批机制控制执行权限。它适合希望在安全审计与用户确认下让 AI 运行命令的开发者。

主要功能

  1. 01首次执行命令时需要用户审批
  2. 02已批准命令持久化存储
  3. 03记录完整审计日志
  4. 04命令执行超时保护
  5. 05支持撤销已批准的命令

适用场景

  1. 01在项目目录中让 AI 执行 npm install 等命令
  2. 02审查 AI 执行过的命令历史
  3. 03撤销不再需要的命令批准

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端提供 execute_command 与 revoke_command_approval 两个工具,并提供 commands://approved 资源列出已批准的命令。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

动态 Shell 命令 MCP 服务

一种模型上下文协议(MCP)服务,可通过动态审批系统安全地执行 Shell 命令。该服务允许运行任意命令,同时通过用户审批和审计日志确保安全。

功能

  • 🔐 动态命令审批系统
  • 📝 持久化存储已批准的命令
  • 📊 全面的审计日志
  • ⏱️ 命令超时保护
  • 🔄 撤销命令审批的功能

安装

  1. 克隆此代码库:
git clone <repository-url>
cd dynamic-shell-server
  1. 创建并激活虚拟环境:
python -m venv venv
source venv/bin/activate  # On Windows use: venv\Scripts\activate
  1. 安装依赖项:
pip install -r requirements.txt

用法

独立模式

直接运行服务:

python dynamic_shell_server.py
Claude Desktop 集成
  1. 打开 Claude Desktop 配置文件:

    • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows:%APPDATA%\Claude\claude_desktop_config.json
  2. 添加服务配置:

{
    "mcpServers": {
        "shell": {
            "command": "/absolute/path/to/.venv/bin/python",
            "args": ["/absolute/path/to/dynamic_shell_server.py"]
        }
    }
}
  1. 重启 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):
可用工具
  1. execute_command:执行 Shell 命令

    • 参数:
      • command:要执行的命令
      • args:可选的命令参数列表
  2. revoke_command_approval:撤销先前已批准命令的审批

    • 参数:
      • command:要撤销审批的命令
可用资源
  1. 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

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。