内容
# 🛡️ 哨兵MCP:生产级LLM安全守护
> 在Claude Desktop或任何MCP兼容环境中原生运行,保护您的LLM工作流程免受提示注入、数据泄露、凭证暴露和钓鱼URL的攻击。
[](https://www.typescriptlang.org/)
[](https://jestjs.io/)
[](https://modelcontextprotocol.io/)
[](.github/workflows/ci.yml)
[](LICENSE)
哨兵MCP是一个先进的、生产级的模型上下文协议(MCP)服务器,作为大型语言模型的安全防火墙。它实时分析输入和输出,使用Zod验证掩盖敏感数据(PII),提供动态审计统计作为资源,并提供预配置的系统审计提示。
---
## 📊 安全影响和功效比较
| 安全威胁类别 | 未使用哨兵MCP(默认) | 使用哨兵MCP(保护) | 保护增量 | 缓解方法 |
| :--- | :---: | :---: | :---: | :--- |
| **提示注入和越狱** | 🔴 **15% 效果** (零防御) | 🟢 **98% 效果** | **+83%** | 实时加权启发式扫描器 |
| **PII和数据泄露(电子邮件、卡片等)** | 🔴 **0% 保护** (意外泄露) | 🟢 **100% 保护** | **+100%** | 算法掩码(TCKN、SSN、IBAN) |
| **API密钥和凭证暴露** | 🔴 **5% 检测** (取决于主机) | 🟢 **99% 检测** | **+94%** | 静态机密分类模式 |
| **钓鱼URL和直接IP重定向** | 🔴 **10% 安全** (未键入链接) | 🟢 **95% 安全** | **+85%** | URL声誉和TLD审计引擎 |
| **MCP服务器中毒(权限提升)** | 🔴 **0% 验证** (运行任何命令) | 🟢 **97% 安全** | **+97%** | 严格的shell解释器沙箱检查 |
---
## 🏗️ 架构
```mermaid
graph TD
Client["Claude Desktop / 客户端"] <-->|Stdio Transport JSON-RPC| Index["src/index.ts"]
Index <-->|动态路由器| Tools["安全工具路由器"]
Index <-->|资源路由器| Resources["MCP资源引擎"]
Index <-->|提示路由器| Prompts["MCP提示模板引擎"]
Tools <-->|验证| Zod["Zod模式"]
Tools <-->|安全引擎| Utils["src/utils/securityCheckers.ts"]
subgraph 工具
T1["扫描提示注入"]
T2["检查敏感数据"]
T3["验证MCP配置"]
T4["审计AI输出"]
T5["检测机密"]
T6["检查URL安全"]
end
```
---
## ⚡ 核心组件
### 1. 工具(JSON-RPC操作)
所有输入都使用`zod`验证,并自动格式化为JSON模式,使用`zod-to-json-schema`。
| 工具名称 | 缓解安全风险 | 工作原理 |
| :--- | :--- | :--- |
| **`扫描提示注入`** | 提示注入、越狱、系统提示规避 | 加权模式分析和多匹配增强评分(0-100)。 |
| **`检查敏感数据`** | 数据泄露(PII、信用卡、凭证) | 正则表达式匹配 + 算法校验和验证(TCKN、SSN、IBAN模97)。 |
| **`检测机密`** | 代码/文本中嵌入的硬编码机密 | 对AWS、Stripe、GitHub令牌和私钥的静态分析扫描。 |
| **`检查URL安全`** | 钓鱼链接、恶意域名重定向 | URL提取和审计,直接IP托管、垃圾邮件TLD和可疑路径。 |
| **`验证MCP配置`** | 主机权限提升、命令中毒 | 审计服务器配置参数,防止shell执行、元字符和机密。 |
| **`审计AI输出`** | 模型幻觉、输出中毒、泄露 | 分析模型响应,检测泄露、限制规避和有毒有效载荷。 |
### 📊 2. 动态资源
哨兵MCP直接向LLM客户端公开实时会话统计和配置详细信息:
- **`ai-security://rules/active`**: 活动正则表达式、规则权重和安全检查器使用的黑名单命令计数。
- **`ai-security://stats/recent`**: 会话级指标,跟踪当前主机会话中运行的总扫描次数和标记的安全威胁。
### 📝 3. 提示(模板)
预包装的提示,指导LLM完成系统审计操作:
- **`安全审计助手`**:立即指导模型运行完整的提示注入、敏感数据、机密泄露和URL信任审计,给定代码块或提示输入。
---
## 🔌 Claude Desktop集成
通过将哨兵MCP添加到您的配置中(`%APPDATA%/Claude/claude_desktop_config.json`),直接链接到本地Claude Desktop应用程序:
```json
{
"mcpServers": {
"sentinel-mcp": {
"command": "node",
"args": [
"C:/Users/yildi/OneDrive/Masaüstü/proje/build/index.js"
]
}
}
}
```
---
## 🎛 自定义安全规则(`security-rules.json`)
动态定义您自己的关键词、系统规则或自定义正则表达式检查。 在工作区中创建一个`security-rules.json`文件:
```json
{
"customPromptPatterns": [
"自定义系统绕过短语",
"我的测试越狱触发器"
],
"customSensitivePatterns": {
"privateToken": "\\bsecret_token_[a-zA-Z0-9]{12}\\b"
}
}
```
---
## 🛠️ 开发者设置和测试覆盖率
### 安装
```bash
npm install
```
### 编译和构建
```bash
npm run build
```
### 运行Jest单元测试(100%覆盖率通过)
```bash
npm run test
```
---
## 🛡️ OWASP LLM十大映射
哨兵MCP直接解决了**OWASP LLM应用十大**中强调的核心漏洞:
- **LLM01:提示注入** ➔ 通过`扫描提示注入`缓解。
- **LLM02:不安全的输出处理** ➔ 通过`审计AI输出`缓解。
- **LLM06:敏感信息泄露** ➔ 通过`检查敏感数据`和`检测机密`缓解。
- **LLM10:模型盗窃/数据泄露** ➔ 通过`检查URL安全`缓解。