themayursinha/mcp-llm-security-evaluator
GitHub: themayursinha/mcp-llm-security-evaluator
一款 LLM 安全评估工具,用于测试模型在接触敏感数据与 MCP 工具时的安全行为,并生成结构化评估报告。
Stars: 0 | Forks: 0
# MCP LLM 安全 Evaluator
安全测试工具,用于测试 LLM 在接触敏感文本、代码库内容以及 MCP 风格工具访问时的行为。该项目可以通过确定性的 mock provider 运行本地冒烟测试,也可以连接到真实的 provider 进行深度评估。
## 目前已实现的功能
- 包含 JSON 和 HTML 报告的 CLI 评估流程。
- 针对合成机密和 PII 的脱敏测试。
- 代码库 fixture 扫描,用于检测泄漏型响应。
- MCP 工具风险和权限提升测试。
- 基于 profile 或 MCP 客户端配置风格声明的 MCP server 资产清单审查。
- MCP 工具目录快照和基线差异对比,用于检测元数据偏移。
- MCP 策略检查,涵盖单工具授权、审批元数据、token 直通,
以及敏感信息到出站工具的链路。
- 经过脱敏处理的 MCP 审计事件,保留工具调用证据供事件审查使用。
- 用于远程执行和报告历史记录的 FastAPI 服务。
- 基于 SQLite 的报告历史记录和响应缓存。
- 包含分数趋势的历史报告浏览器。
- Provider 对比模式,支持跨多个后端运行单个 profile。
## 项目定位
- 用于 LLM 安全实验的实用评估工具包。
- MCP 供应链和控制平面审查的配套实现。
- 非常适合用于演示、CI 冒烟测试、provider 对比工作以及早期的 MCP
治理实验。
## 项目不包含的内容
- 完整的渗透测试框架。
- 托管服务或打包好的 SDK 发行版。
- 对模型或 MCP server 生产环境安全的担保。
## 快速开始
```
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python -m pytest -q
python -m app.main --quick --provider mock --format html
```
mock provider 旨在对流水线进行冒烟测试。它会返回安全的确定性响应,以便您在没有外部 API key 的情况下验证评估器。
## 运行真实 Provider
从 `.env.example` 创建一个 `.env` 文件,然后配置您要使用的 provider。
```
cp .env.example .env
python -m app.main --provider openai --model gpt-4o-mini --format both
```
受支持的 provider:
- `mock`
- `openai`
- `anthropic`
- `ollama`
- `auto`(优先使用已配置的真实 provider,否则回退到 `mock`)
## CLI 用法
```
python -m app.main [OPTIONS]
```
常用选项:
- `--quick` 使用 `quick` profile 并跳过代码库扫描。
- `--format {json,html,both}` 控制报告输出。
- `--provider {auto,openai,anthropic,ollama,mock}` 选择 LLM 后端。
- `--compare-providers mock,ollama` 针对多个 provider 运行选定的 profile。
- `--server` 启动 REST API 而不是运行 CLI 评估。
- `--no-cache` 禁用持久化的 LLM 响应缓存。
`quick` profile 旨在保持对 CI 的友好。更广泛的 `default` profile
包含具有对抗性的 MCP 控制平面场景,包括一个
有状态的渗透链路。
## API 用法
启动 API server:
```
python -m app.main --server --host 127.0.0.1 --port 8000
```
触发评估:
```
curl \
-X POST http://127.0.0.1:8000/evaluate \
-H 'Content-Type: application/json' \
-d '{"profile":"default","provider":"mock"}'
```
可以通过设置 `API_AUTH_REQUIRED=true` 和 `API_KEY=...` 来启用可选的 API 身份验证。
## 报告
- CLI 运行会将带有时间戳的 JSON 和/或 HTML 报告写入 `reports/`。
- API 运行会将报告持久化存储在 `data/evaluator_history.db` 中。
- HTML 报告设计用于与非开发人员分享结果。
- API 包含一个报告历史 UI,地址为 `/ui/reports`。
- MCP 报告部分包含资产清单、目录偏移、策略发现、有状态
工具链发现以及脱敏后的审计事件。
## Provider 对比
使用对比模式来评估跨 provider 的同一 profile,并生成
排名形式的 JSON/HTML 对比报告。
```
python -m app.main --quick --compare-providers mock,ollama --format both
```
## 项目布局
```
app/ CLI, API, templates, config, persistence
evaluator/ Core evaluator, metrics, provider clients, MCP testing
data/ Sample fixtures and SQLite database
docs/ User and operator documentation
tests/ Pytest suite
```
## 开发检查
```
python -m black --check app evaluator tests
python -m flake8 app evaluator tests
python -m mypy
python -m pytest --cov=app --cov=evaluator
```
## 文档
- [架构](Architecture.md)
- [API 指南](docs/api.md)
- [配置指南](docs/configuration.md)
- [故障排除](docs/troubleshooting.md)
- [贡献指南](CONTRIBUTING.md)
- [安全政策](SECURITY.md)
- [发布检查清单](RELEASE_CHECKLIST.md)
## 状态
本仓库定位为一个可共享的公开项目,具备可用的 mock/演示路径以及实验性的真实 provider 集成。历史规划记录保留在 [`prd.md`](prd.md) 中,但 README 和 `docs/` 是当前行为的唯一事实来源。
## 许可证
基于 MIT 许可证发布。详见 [LICENSE](LICENSE)。
标签:AI安全, Chat Copilot, DLL 劫持, MCP, Python, 反取证, 大语言模型, 安全测试, 安全评估, 攻击性安全, 无后门, 逆向工具