使用说明
MCP安全终端服务器
一个全面的、以安全为重点的MCP(模型上下文协议)TypeScript SDK服务器,为Claude Desktop提供安全的终端命令执行功能。此服务器按照所有MCP安全要求实施企业级安全控制。
🚀 npx快速入门
使用此服务器最简单的方法是使用npx,无需安装!
先决条件
- Node.js 18+
- 克劳德桌面
用法
只需使用npx将服务器添加到您的Claude Desktop配置中:
Claude桌面配置: ~/.claude_desktop_config.json (macOS)或 %APPDATA%/Claude/claude_desktop_config.json (Windows)
{
"servers": {
"secure-terminal": {
"command": "npx",
"args": ["@modelcontextprotocol/mcp-terminal-server"]
}
}
}
就是这样!Claude Desktop将在需要时自动下载并运行服务器。
替代方案:全球安装
如果您希望全局安装:
npm install -g @modelcontextprotocol/mcp-terminal-server
然后配置Claude Desktop:
{
"servers": {
"secure-terminal": {
"command": "mcp-terminal-server"
}
}
}
🛡️ 安全功能
该服务器满足MCP安全文档中确定的所有主要安全要求和威胁向量:
✅ 安全要求合规性
- ✓ 强制代码签名 -已准备好进行生产部署
- ✓ 静态工具定义 -运行时无法更改工具
- ✓ 经过安全测试的接口 -全面的验证和消毒
- ✓ 程序包标识 -明确出处和版本控制
- ✓ 特权声明 -明确的能力要求
🔒 威胁向量缓解
- ✓ 交叉快速注射(XPIA) -输入净化和验证
- ✓ 身份验证差距 -速率限制和客户识别
- ✓ 凭证泄漏 -输出净化和凭据过滤
- ✓ 工具中毒 -严格执行白名单命令
- ✓ 缺乏控制 -进程隔离和资源限制
- ✓ 命令注入 -全面的输入验证
- ✓ 有限安全审查 -广泛的安全测试
🛠️ 安全控制
- 命令白名单:只允许预先批准的安全命令
- 输入消毒:所有输入都经过验证和消毒
- 输出滤波:凭据和敏感数据自动编辑
- 速率限制:基于风险的利率限制,采用渐进式阻塞
- 审计日志:全面的安全事件记录
- 路径横向保护:目录访问限制
- 超时强制:命令自动终止
- 进程隔离:命令执行的安全环境
🛠️ 可用工具
核心工具
list_directory
通过安全验证安全地列出目录内容。
Parameters:
- path (optional): Directory path to list
- includeHidden (optional): Include hidden files
- longFormat (optional): Use detailed listing
get_current_directory
获取当前工作目录。
execute_safe_command
执行安全白名单中的命令。
Parameters:
- command: Command to execute (must be whitelisted)
- args (optional): Command arguments
- workingDirectory (optional): Working directory
read_file_safe
安全读取有大小限制的文件内容。
Parameters:
- filePath: Path to file
- maxLines (optional): Maximum lines to read (default: 100)
git_status
获取Git存储库状态。
Parameters:
- workingDirectory (optional): Git repository path
- short (optional): Use short format
count_file_stats
统计文件中的行数、单词数或字符数。
Parameters:
- filePath: Path to file
- countType (optional): 'lines', 'words', or 'characters'
system_info
获取基本系统信息。
Parameters:
- infoType (optional): 'user', 'os', or 'system'
📋 可用资源
available_commands
列出所有白名单命令及其描述和风险级别。
security_status/{clientId}
显示安全状态,包括速率限制和阻止状态。
server_capabilities
显示服务器功能和安全功能。
🔧 命令白名单
服务器只允许执行预先批准的命令:
低风险指令
ls-目录列表pwd-当前目录tree-目录树wc-字数/行数/字符数which-指挥位置uname-系统信息whoami-当前用户
中等风险命令
cat,head,tail-文件读取(有限制)git status,git log,git branch,git diff-Git操作npm list,npm outdated-包裹信息
高风险指令
npm audit-安全漏洞检查(速率有限)
禁止的命令
明确禁止所有危险命令:
- 文件修改:
rm,mv,cp,chmod - 系统管理:
sudo,su,systemctl - 网络操作:
curl,wget,ssh - 脚本执行:
python,node,bash - 还有更多。..
🛡️ 速率限制
服务器实现了复杂的速率限制:
全球限制
- 所有工具每分钟100个命令
- 逐步阻止违规行为
基于风险的限额
- 低风险:50次处决/分钟
- 中等风险:20次处决/分钟
- 高风险:5次处决/分钟
故障处理
- 每5分钟10次失败尝试
- 每小时3次可疑活动
- 自动封锁和记录
📊 监控
日志文件
运行时,服务器会在当前目录中创建日志:
logs/security-audit.log-所有安全事件logs/security-alerts.log-仅限高风险事件logs/combined.log-通用应用程序日志logs/error.log-错误事件
监控命令
# Watch security events
tail -f logs/security-audit.log
# Check for alerts
tail -f logs/security-alerts.log
# Monitor rate limiting
grep "RATE_LIMIT_EXCEEDED" logs/security-audit.log
📚 使用示例
一旦配置了Claude Desktop,您可以要求Claude:
- 列出目录:“显示当前目录中的文件”
- 检查Git状态:“此Git存储库的状态如何?”
- 安全读取文件:“显示package.json的前50行”
- 获取系统信息:“我以什么用户身份运行?”
- 执行安全命令:“运行‘npm list’以显示已安装的软件包”
- 检查安全状态:“显示当前安全状态”
🔨 发展
地方发展
-
克隆和设置
git clone https://github.com/luiscnext/mcp-terminal-server.git cd mcp-terminal-server npm install -
构建和测试
npm run build npm test npm run test:security -
在本地运行
npm run dev
脚本
npm run build-将TypeScript构建为JavaScriptnpm run dev-自动重新加载的开发模式npm test-运行安全测试npm run lint-代码lintingnpm run format-代码格式
📦 出版
要将此包发布到npm:
-
构建和测试
npm run build npm test -
登录到npm
npm login -
发布
npm publish
该软件包配置了正确的 publishConfig 对于npm注册表。
🚨 安全最佳实践
对于用户
- 监控日志 -定期检查安全审计日志
- 经常更新 -保持软件包更新
- 查看命令 -了解可用的命令
- 报告问题 -立即提交安全问题
对于开发者
- 切勿绕过安全检查 -所有验证都是强制性的
- 查看命令添加 -新命令需要安全分析
- 监控审核日志 -注意可疑模式
- 彻底测试 -部署前运行安全测试
📄 许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
🆘 支持
⚡ 演出
- 命令执行:<30秒超时
- 内存使用:每个会话<100MB
- 输出限制:每个命令最大1MB
- 并发用户:支持多个Claude Desktop客户端
⚠️ 安全通知:此服务器实施了全面的安全控制,但应负责任地使用。在执行命令之前,始终检查命令,并监控审计日志中的可疑活动。
🎯 快速开始:只需添加 "npx @modelcontextprotocol/mcp-terminal-server" 转到您的Claude Desktop配置,并立即开始使用安全终端命令!