安全终端命令执行服务器
一个安全的终端命令执行服务器,为AI助手提供受控的终端访问功能,具有多层安全防护机制。
- by luiscnext
- TypeScript
- 本地部署
- 更新于
在 GitHub 查看 luiscnext/mcp-safe-terminal-server
一个安全的终端命令执行服务器,为AI助手提供受控的终端访问功能,具有多层安全防护机制。
bash\n# Clone the repository\ngit clone https://github.com/luiscnext/mcp-safe-terminal-server.git\ncd mcp-safe-terminal-server\n\n# Install dependencies\nnpm install\n\n# Build the project\nnpm run build\n\n# Start the server\nnpm start\n\n\n###配置\n\n复制 .env.example 向 .env 并自定义:\n\nbash\ncp .env.example .env\n# Edit .env with your preferred settings\n\n\n##🔌 Claude Desktop Integration \n\n要将此服务器与Claude Desktop一起使用,请将其添加到MCP配置中:\n\njson\n{\n \"mcpServers\": {\n \"safe-terminal\": {\n \"command\": \"node\",\n \"args\": [\"/path/to/mcp-safe-terminal-server/dist/index.js\"],\n \"env\": {\n \"DEFAULT_WORKING_DIR\": \"/path/to/your/workspace\",\n \"ALLOWED_DIRECTORIES\": \"/path/to/your/workspace,/tmp/safe\",\n \"LOG_LEVEL\": \"info\"\n }\n }\n }\n}\n\n\n请参阅 docs/CLAUDE_INTEGRATION.md 有关详细的设置说明。\n\n##🛠️ 可用命令\n\n服务器提供对按类别组织的经过仔细审查的命令的访问:\n\n###系统信息(只读)\n- ls -列出目录内容\n- pwd -显示当前目录\n- whoami -显示当前用户\n- date -显示当前日期/时间\n- uname -系统信息\n- df -磁盘使用情况\n- free -内存使用情况\n- uptime -系统正常运行时间\n\n###文件操作(只读)\n- cat -显示文件内容(仅限安全文件)\n- head -显示文件的第一行\n- tail -显示文件的最后一行\n- wc -计算行数/单词数/字符数\n- find -查找文件(受限路径)\n###Git操作(只读)\n- git status -存储库状态\n- git log -提交历史记录\n- git branch -列出分支\n- git diff -显示差异\n- git show -显示提交详细信息\n- git remote -列出远程操作\n\n###NPM操作(只读)\n- npm list -列出已安装的软件包\n- npm outdated -检查过时的软件包\n- npm view -查看包信息\n- npm config -查看配置\n\n##🔒 安全功能\n\n###多层输入验证\n\n1。 命令白名单:仅明确批准的命令\n2。 论点消毒:删除危险字符和图案\n3。 预防注射:块壳元特征和注射模式\n4。 路径验证:将文件访问限制在允许的目录\n5。 长度限制:防止缓冲区溢出攻击\n\n###执行环境\n\n- 进程隔离:命令在受控环境中运行\n- 资源限制:CPU时间、内存和输出大小限制\n- 清洁环境:山宁泰环境变量\n- 超时保护:长时间运行的命令的自动进程终止\n- 无外壳访问权限:无需shell解释即可直接生成进程\n\n###监视和审核\n\n- 综合录井:记录所有命令和安全事件\n- 安全事件检测:可疑活动监控\n- 速率限制:通过可配置的限制防止滥用\n- 审计跟踪:合规性和事件响应的详细日志\n###已阻止的操作\n\n以下命令类别为 明确阻止 为了安全起见:\n\n-❌ 文件修改(rm, mv, cp, chmod, chownn❌ 系统管理(sudo, su, mount, fdiskn❌ 网络运营(wget, curl, ssh, ncn❌ 过程控制(kill, killall, pkilln❌ 外壳特点(eval, exec, source, bashn❌ 包装安装(apt, yum, pip, npm install)\n\n##📊 MCP工具和资源\n\n###工具\n- execute_safe_command -执行白名单命令\n- list_available_commands -显示可用命令\n- validate_command -测试命令有效性\n- get_server_status -服务器运行状况和统计信息\n\n###资源\n- command_history -最近的命令执行历史记录\n- security_log -安全事件和审计跟踪\n- server_config -当前服务器配置\n###提示\n- explore_project -引导项目结构探索\n- check_git_status -Git存储库状态检查\n- project_health_check -总体项目健康评估\n\n##⚙️ 配置选项\n\n###环境变量\n\n|变量|默认值|描述|\n|-------------|-------||| MAX_REQUESTS_PER_MINUTE | 30 |速率限制|\n| COMMAND_TIMEOUT_MS | 10000 |命令超时|\n| MAX_OUTPUT_SIZE_BYTES | 1048576 |最大输出大小(1MB)|\n| ALLOWED_DIRECTORIES | current dir |逗号分隔的允许路径|\n| DEFAULT_WORKING_DIR | current dir |默认执行目录|\n| LOG_LEVEL | info |日志记录级别|\n| ENABLE_GIT_COMMANDS | true |启用git操作|\n| ENABLE_NPM_COMMANDS | true |启用npm操作|\n| ENABLE_SYSTEM_INFO | true |启用系统信息命令|\n\n###CLI选项\n\nbash\n# Set log level\nnpm start -- --log-level debug\n\n# Change working directory\nnpm start -- --working-dir /path/to/workspace\n\n# Adjust timeout\nnpm start -- --timeout 15000\n\n# Disable features\nnpm start -- --disable-git --disable-npm\n\n\n##🧪 测试\n\nbash\n# Run all tests\nnpm test\n\n# Run security-specific tests\nnpm run test:security\n\n# Run with coverage\nnpm run test:coverage\n\n# Lint code\nnpm run lint\n\n\n##📚 文档\n\n- 安全指南 -详细的安全分析\n- Claude桌面集成 -安装说明\n- api参考 -MCP工具和资源\n- 故障排除 -常见问题\n\n##🚨 安全注意事项\n\n###部署前\n\n1。 查看允许的目录:确保路径适当\n2。 验证命令白名单:仅验证是否启用了必要的命令\n3。 配置速率限制:为您的用例设置适当的限制\n4。 监控日志:设置日志监视和警报\n5。 定期更新:保持依赖关系和安全补丁最新\n\n###生产建议\n\n-使用具有最低权限的专用用户帐户\n-实施日志轮换和监控\n-必要时设置网络分段\n-定期安全审计和渗透测试\n-监控可疑命令模式\n\n##🤝 贡献\n\n1。分叉存储库\n2。创建要素分支(git checkout -b feature/amazing-feature)\n3。提交更改(git commit -m 'Add amazing feature')\n4。推送到分支(git push origin feature/amazing-feature)\n5。打开拉取请求\n###安全贡献\n\n特别欢迎安全改进!请:\n\n-包括安全测试用例\n-记录威胁模型更改\n-遵循对漏洞的负责任披露\n\n##📄 许可证\n\nMIT许可证-请参阅 许可证 文件以获取详细信息。\n\n##🙏 致谢\n\n- 模型上下文协议 通过Anthropic \n- MCP TypeScript SDK\n-OWASP和NIST的安全最佳实践\n\n##📞 支持\n\n- 问题: GitHub问题\n- 安全:参见 安全.md 用于报告漏洞\n- 讨论: GitHub讨论\n\n---\n\n**⚠️ 安全通知**:此服务器专为安全的终端访问而设计,但在部署时应考虑适当的安全因素。在生产使用之前,请查看安全文档。n