🚀 安全命令執行 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 許可證。
貢獻
歡迎提交拉取請求。對於重大更改,請先打開問題以討論您想要更改的內容。