🚀 安全命令执行 MCP 服务器
安全命令执行 MCP 服务器是一个功能强大的服务,可安全地管理和执行系统命令。它具备安全检查机制,能对危险命令发出警告,还支持详细的日志记录,且日志会进行每日轮转。此 README.md 文件由 DeepSeek V3 编写。
🚀 快速开始
安全命令执行 MCP 服务器旨在安全地管理和执行系统命令。以下是快速上手的步骤:
- 克隆仓库:
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
✨ 主要特性
- 命令执行:执行带有可选参数的系统命令。
- 安全性检查:对危险命令发出警告并要求确认。
- 命令管理:添加、更新、删除、启用或禁用命令。
- 日志记录:每日日志轮转,详细操作跟踪。
- 查询工具:使用过滤器查询可用命令和日志。
📦 安装指南
克隆仓库
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 许可证。
贡献
欢迎提交拉取请求。对于重大更改,请先打开问题以讨论您想要更改的内容。