crunchtools/mcp-airlock
GitHub: crunchtools/mcp-airlock
面向 MCP 生态的双层防御内容提取服务,通过确定性清理与隔离 LLM 双重机制抵御 prompt 注入攻击。
Stars: 0 | Forks: 0
# mcp-airlock-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 阶段清理流水线,剥离隐藏 HTML、不可见 unicode、编码 payload、数据窃取 URL 和 LLM 分隔符。
- **Layer 2 (Q-Agent):** 隔离的 Gemini Flash-Lite LLM,用于语义内容提取 — 无工具、无记忆、无 SDK。
## 安装
```
# PyPI
pip install mcp-airlock-crunchtools
# uvx (zero-install)
uvx mcp-airlock-crunchtools
# 容器
podman run quay.io/crunchtools/mcp-airlock
```
## 配置
```
# 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/airlock.db # SQLite blocklist path
export QUARANTINE_TRUST_CONFIG=~/.config/mcp-env/mcp-airlock-trust.json
```
## Claude Code
```
{
"mcpServers": {
"mcp-airlock-crunchtools": {
"command": "uvx",
"args": ["mcp-airlock-crunchtools"]
}
}
}
```
## 许可证
AGPL-3.0-or-later
标签:Claude Desktop, Crunchtools, DNS 反向解析, Gemini API, IP 地址批量处理, MCP, MCP Server, Naabu, Python, Quarantine, RAG安全, Red Canary, sanitize, 内容安全, 安全中间件, 恶意输入检测, 提示词注入防御, 数据清洗, 无后门, 模型上下文协议, 网络内容提取, 逆向工具, 隔离沙箱