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服务器, 内容提取, 提示词注入防御, 逆向工具