APS4087/agentlint
GitHub: APS4087/agentlint
AgentLint 是首个基于浏览器的 MCP 配置安全扫描器,通过纯客户端确定性静态分析,为用户提供映射 OWASP Agentic Top 10 的风险报告。
Stars: 0 | Forks: 0
# AgentLint
**一款基于 Web 的 MCP (Model Context Protocol) 服务器配置安全扫描器 —— 完全在您的浏览器中运行。**
粘贴一段 MCP 配置,即可获取映射到 [OWASP Agentic Top 10 (2026)](https://owasp.org/www-project-top-10-for-large-language-model-applications/) 的确定性风险报告。可选择连接您自己的 AI key 以获取简明英文简报。不会上传任何内容 —— 扫描器是纯客户端的静态分析,且 AI 调用将直接从您的浏览器发送至您选择的提供商。
其他所有 MCP 扫描器都是面向从业者的 CLI。AgentLint 是首个公开的、基于浏览器的**教育性**扫描器:无需安装、无需账号、无需服务器。
## 为什么开发它
MCP 允许 agent 调用外部工具,而这如今已成为一个真正的攻击向量 —— 工具投毒 (tool poisoning)、诱导诈骗 (rug pulls)、“致命三要素” (lethal trifecta)、全 schema 注入以及跨工具编排。大多数配置 MCP 服务器的人,在信任一份配置之前,都没有简便的方法来对其进行健全性检查。AgentLint 就是那个快速检查工具,也是一种了解这些风险实际面貌的途径。
## 功能
- **确定性静态分析** —— 包含 10 条规则,核心扫描无需 AI。快速、可重复、离线可用。
- **OWASP Agentic Top 10 映射** —— 每一项发现都会被标记为 ASI01–ASI10。
- **致命三要素检测** —— 标记出结合了私有数据访问 + 不受信任的内容 + 外部通信的配置。
- **多格式解析器** —— 支持 Claude Desktop / Claude Code / Cursor (`mcpServers`)、VS Code (`servers`) 以及 remote/SSE 传输。
- **可选 AI 简报 (BYOK)** —— 自带您的 key 以使用 Anthropic、OpenAI、Google Gemini,或任何兼容 OpenAI 的 endpoint(Ollama、LM Studio、vLLM、OpenRouter)。该 key 仅保存在您的浏览器中。
- **天然的隐私保护** —— 您的配置永远不会被发送到 AgentLint 服务器。检测到的机密值将从任何 AI prompt 中剔除。
## 检查内容
| # | 规则 | OWASP |
|---|------|-------|
| 1 | `env` 中的硬编码 secrets | ASI03 |
| 2 | 危险命令(`curl`、shell pipe、`eval`、`rm`…) | ASI05 |
| 3 | 过于宽泛的文件系统访问权限(`/`、`~`、`/etc`…) | ASI02 |
| 4 | remote/SSE 服务器缺失认证 | ASI03 |
| 5 | 未锁定的软件包版本 | ASI04 |
| 6 | 可疑的工具描述(``、base64、隐藏文本) | ASI01 |
| 7 | 致命三要素(数据 + 不受信任的内容 + 外部通信) | ASI02 |
| 8 | 提权(`--privileged`、`sudo`、root) | ASI03 |
| 9 | 网络暴露(`0.0.0.0`、开放端口) | ASI07 |
| 10 | 无作用域 / 存在供应链风险的软件包 | ASI04 |
## 隐私机制
- **扫描是本地的。** 解析器和规则引擎在您的浏览器中运行。配置永远不会被执行,也永远不会离开当前页面。
- **AI 是可选且直连的。** 如果您连接了提供商,请求将按照 浏览器 → 提供商 的路径传输。AgentLint 没有后端 AI key,也没有代理。
- **Secrets 已被脱敏。** AI prompt 会省略 `evidence` 字段,因此规则检测到的任何 secret 值都不会传达给模型。
- **您的 key 原地不动。** 它保存在 `localStorage` 中,并且仅发送给您选择的提供商。“断开连接”会将其移除。
## 技术栈
Next.js 15 (App Router) · TypeScript · Tailwind CSS 4 · React 19。运行扫描器不需要数据库或认证。
## 快速开始
```
pnpm install
pnpm dev # http://localhost:3000
```
其他脚本:
```
pnpm build # production build
pnpm lint # ESLint
pnpm typecheck # tsc --noEmit
```
不需要环境变量 —— 参见 [`.env.example`](.env.example)。这里故意**没有**提供服务器端的 AI key。
### 使用 AI 简报
1. 运行一次扫描。
2. 在 **Connect an AI** 面板中,选择一个提供商并粘贴您的 key。
- **Gemini** 有免费层级 —— 可在 [aistudio.google.com](https://aistudio.google.com) 获取 key。
- **本地 / 免费:** 运行 [Ollama](https://ollama.com) 并选择 *Custom* 提供商,填入 base URL `http://localhost:11434/v1`。使用 `OLLAMA_ORIGINS=http://localhost:3000` 启动 Ollama,以便浏览器能够访问它。
- **Anthropic / OpenAI** 需要预付费的 API 额度(独立于任何 Claude Pro / ChatGPT Plus 订阅)。
## 支持的配置格式
```
// Claude Desktop / Claude Code / Cursor
{ "mcpServers": { "name": { "command": "npx", "args": ["-y", "@some/server"], "env": {} } } }
// VS Code
{ "servers": { "name": { "command": "npx", "args": ["-y", "@some/server"] } } }
// Remote / SSE
{ "mcpServers": { "name": { "url": "https://example.com/mcp", "headers": { "Authorization": "Bearer …" } } } }
```
## 路线图
- [x] 扫描器:静态规则引擎 + OWASP 映射(阶段 1)
- [x] 通过客户端 BYOK 实现 AI 简报(阶段 2)
- [ ] 学习模式:CTF 风格的挑战(工具投毒、诱导诈骗、致命三要素)
- [ ] 排行榜 + 可选认证
- [ ] 诱导诈骗模拟与致命三要素可视化工具,以及可导出报告
## 贡献
欢迎提交 Issues 和 PR。目前最有价值的贡献是新的检测规则以及可供建模的真实世界攻击模式。请保持规则引擎的确定性 —— 任何规则都不应依赖于网络或 AI 调用。
## 许可证
[MIT](LICENSE) —— 按原样提供,不附带任何担保。AgentLint 仅执行静态分析;它不能替代真正的安全审查。
标签:DLL 劫持, GraphQL安全矩阵, MCP, 前端工具, 大语言模型, 安全扫描器, 插件系统, 自动化攻击, 错误基检测, 静态代码分析