crunchtools/mcp-trentina
GitHub: crunchtools/mcp-trentina
一个具备双层 prompt 注入防御的 MCP 服务器,为 LLM 提供隔离式的网页抓取和本地文件读取能力。
Stars: 9 | Forks: 1
# mcp-trentina-crunchtools
安全的 MCP 服务器,用于隔离式 Web 内容提取,具备双层 prompt 注入防御。
## 工具 (6)
| 工具 | 层级 | 描述 |
|------|--------|-------------|
| `safe_fetch` | L1 | 获取 URL,进行清理,返回 markdown。遇到注入则失败。 |
| `safe_read` | L1 | 读取本地文件,进行清理,返回 markdown。遇到注入则失败。 |
| `quarantine_fetch` | L1+L2 | 获取 URL,进行清理,通过 Q-Agent 提取。遇到注入则发出警告。 |
| `quarantine_read` | L1+L2 | 读取本地文件,进行清理,通过 Q-Agent 提取。遇到注入则发出警告。 |
| `quarantine_scan` | L1+L2 | 预检扫描:检测注入向量,不返回内容。 |
| `quarantine_stats` | — | 会话统计、配置和黑名单摘要。 |
## 架构
- **Layer 1(确定性):** 7 阶段清理 pipeline,去除隐藏的 HTML、不可见的 unicode、编码的 payload、数据外泄 URL 以及 LLM 分隔符。
- **Layer 2(Q-Agent):** 隔离的 Gemini Flash-Lite LLM,用于语义内容提取 —— 无工具、无记忆、无 SDK。
## 安装
```
# PyPI
pip install mcp-trentina-crunchtools
# uvx (zero-install)
uvx mcp-trentina-crunchtools
# Container
podman run quay.io/crunchtools/mcp-trentina
```
## 配置
```
# Layer 2 (Q-Agent) 必需
export GEMINI_API_KEY=your-key
# 可选
export QUARANTINE_MODEL=gemini-2.0-flash-lite # default
export QUARANTINE_FALLBACK=layer1 # or "fail"
export QUARANTINE_MAX_CONTENT=100000 # max chars to Q-Agent
export QUARANTINE_DB=/data/trentina.db # SQLite blocklist path
export QUARANTINE_TRUST_CONFIG=~/.config/mcp-env/mcp-trentina-trust.json
```
## Claude Code
```
{
"mcpServers": {
"mcp-trentina-crunchtools": {
"command": "uvx",
"args": ["mcp-trentina-crunchtools"]
}
}
}
```
## License
AGPL-3.0-or-later
标签:AI安全, Chat Copilot, MCP服务器, 内容提取, 提示词注入防御, 逆向工具