返回 MCP 目录
public公开dns本地运行

secure-command-executor-mcp-server

一个安全的命令执行MCP服务,提供系统命令管理、执行、安全检查和日志记录功能。

article

README

🚀 安全命令执行 MCP 服务器

安全命令执行 MCP 服务器是一个功能强大的服务,可安全地管理和执行系统命令。它具备安全检查机制,能对危险命令发出警告,还支持详细的日志记录,且日志会进行每日轮转。此 README.md 文件由 DeepSeek V3 编写。

🚀 快速开始

安全命令执行 MCP 服务器旨在安全地管理和执行系统命令。以下是快速上手的步骤:

  1. 克隆仓库:
    git clone https://github.com/HappyAny/secure-command-executor-mcp-server.git
    cd secure-command-executor-mcp-server
    
  2. 安装依赖项:
    npm install minimist
    npm install @modelcontextprotocol/sdk
    npm install zod
    
  3. 配置服务:
    • 修改 commands.json 文件以定义可用命令。
    • 设置环境变量(可选)。
  4. 启动服务:
    node index.js --file commands.json --logs logs --port 3000
    

✨ 主要特性

  • 命令执行:执行带有可选参数的系统命令。
  • 安全性检查:对危险命令发出警告并要求确认。
  • 命令管理:添加、更新、删除、启用或禁用命令。
  • 日志记录:每日日志轮转,详细操作跟踪。
  • 查询工具:使用过滤器查询可用命令和日志。

📦 安装指南

克隆仓库

git clone https://github.com/HappyAny/secure-command-executor-mcp-server.git
cd secure-command-executor-mcp-server

安装依赖项

npm install minimist
npm install @modelcontextprotocol/sdk
npm install zod

配置服务

  • 修改 commands.json 文件以定义可用命令。
  • 设置环境变量(可选)。

💻 使用示例

基础用法

启动服务

node index.js --file commands.json --logs logs --port 3000

MCP 设置

{
    "mcpServers": {
        "cmd-exec": {
          "command": "node",
          "args": [
            "path_to_file/index.js",
            "--file",
            "path_to_file/commands.json",
            "--logs",
            "path_to_dict/logs"
          ]
        }
    }
}

命令文件

commands.json 文件定义了可用命令。示例:

[
  {
    "name": "dir",
    "description": "列出目录内容",
    "example": "dir /w",
    "dangerous": false,
    "enabled": true,
    "confirmationPrompt": "",
    "consequences": ""
  },
  {
    "name": "format",
    "description": "格式化磁盘分区",
    "example": "format C:",
    "dangerous": true,
    "enabled": false,
    "confirmationPrompt": "这将永久删除所有数据。确认?",
    "consequences": "永久数据丢失"
  }
]

高级用法

API 端点

执行命令
curl -X POST http://localhost:3000/execute -H "Content-Type: application/json" -d '{"command": "dir", "args": "/w"}'
查询命令
curl -X GET http://localhost:3000/queryCommands?filter=enabled&detailed=true
管理命令
curl -X POST http://localhost:3000/manageCommand -H "Content-Type: application/json" -d '{"action": "add", "name": "ping", "description": "测试网络连接", "example": "ping example.com"}'
查询日志
curl -X GET http://localhost:3000/queryLogs?limit=50&filter=failed

📚 详细文档

配置

环境变量

  • NODE_ENV:设置为 production 以启用生产模式。
  • PORT:覆盖默认端口(3000)。

命令行参数

  • --file:指定命令文件路径(默认:commands.json)。
  • --logs:指定日志目录路径(默认:logs)。
  • --port:指定服务运行的端口(默认:3000)。

日志记录

日志存储在指定目录中,每日轮转。每个日志文件名为 YYYY-MM-DD.json

📄 许可证

本项目采用 MIT 许可证。

贡献

欢迎提交拉取请求。对于重大更改,请先打开问题以讨论您想要更改的内容。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端