mbilalnasir751/SentinelMCP

GitHub: mbilalnasir751/SentinelMCP

SentinelMCP 是一款运行在本地的异步安全代理中间件,用于在 AI agent 调用 LLM API 前自动脱敏机密信息并检测终止失控循环,保护数据安全并控制 API 成本。

Stars: 0 | Forks: 0

# SentinelMCP SentinelMCP 位于您的 AI agent 和 LLM API 之间。它会在出站请求中静默脱敏机密信息,并在失控的循环耗尽您的 token 预算之前将其终止——所有操作均在 localhost 上运行,零云依赖。 ## 它解决的问题 像 Claude Code 和 Cursor 这样的 AI 编程 agent 会读取您的项目文件。当它们陷入 bug 循环时,会: 1. 意外地将您的 `.env` 机密信息、AWS 密钥和 JWT token 发送到外部 LLM API 2. 卡在递归重试循环中,并在几分钟内消耗掉价值数百美元的 API 额度 SentinelMCP 会在这些问题发生之前将其拦截。 ## 工作原理 ``` [ Your AI Agent ] │ ▼ [ SentinelMCP Proxy :8000 ] ├── Scrubber → redacts secrets before network egress ├── Circuit Breaker → kills loops, returns 429 └── Audit Log → SQLite record of every request │ ▼ [ LLM API — clean request only ] ``` ## 功能 - **机密信息脱敏** — 通过 Shannon 熵分析捕获 AWS 密钥、JWT、GitHub token、SSH 私钥、Stripe 密钥和高熵字符串 - **循环检测** — SHA-256 状态哈希,配合可配置的滑动窗口断路器 - **审计日志** — 每个请求都记录到启用 WAL 模式的本地 SQLite 中,以支持并发写入 - **实时仪表盘** — Rich 终端 UI,实时显示请求、发现的机密信息和拦截状态 - **零云依赖** — 完全在 localhost 上运行,任何未经过滤的数据都不会离开您的机器 ## 快速开始 **前置条件:** Python 3.12+, Poetry ``` git clone https://github.com/YOUR_USERNAME/sentinelmcp cd sentinelmcp poetry install cp .env.example .env poetry run uvicorn sentinelmcp.main:app --host 127.0.0.1 --port 8000 ``` 将您的 AI agent 指向 `http://127.0.0.1:8000`,而不是直接连接 LLM API。 ## 实时仪表盘 ``` poetry run python -m sentinelmcp.dashboard ``` ## 运行测试 ``` poetry run pytest tests/ -v ``` 26 个测试 —— 全部通过。 ## 配置 编辑 `.env` 进行配置: ``` TARGET_LLM_URL=https://api.anthropic.com LOOP_WINDOW_SIZE=5 LOOP_THRESHOLD=3 LOG_DB_PATH=audit.db ``` | 变量 | 默认值 | 描述 | |---|---|---| | `TARGET_LLM_URL` | `https://api.anthropic.com` | 上游 LLM endpoint | | `LOOP_WINDOW_SIZE` | `5` | 用于循环检测的滑动窗口 | | `LOOP_THRESHOLD` | `3` | 触发断路器前的相同请求数 | | `LOG_DB_PATH` | `audit.db` | 本地 SQLite 审计日志路径 | ## API 参考 | Endpoint | Method | 描述 | |---|---|---| | `/_sentinel/health` | GET | 健康检查 | | `/_sentinel/logs` | GET | 最后 50 条审计日志记录 | | `/_sentinel/reset/{session_id}` | DELETE | 重置已触发的断路器 | | `/{path}` | ANY | 代理到上游 LLM | ## 检测到的机密模式 | 模式 | 示例 | |---|---| | AWS Access Key | `AKIA...` | | JWT Token | `eyJ...` | | GitHub Token | `ghp_...` | | Stripe Secret Key | `sk_live_...` | | SSH Private Key Header | `-----BEGIN RSA PRIVATE KEY-----` | | Generic API Key | `api_key=...` | | 高熵字符串 | Shannon 熵 > 4.2 bits | ## 生产路线图 这是一个轻量级的作品集版本。生产环境的强化将包括: - 使用 PostgreSQL 和连接池替换 SQLite - JWT 认证和按用户划分的审计跟踪 - 通过规则引擎配置自定义机密模式 - Prometheus metrics endpoint - Docker 镜像和 Kubernetes helm chart - SOC 2 合规性审计 ## 技术栈 | 层级 | 技术 | |---|---| | Framework | FastAPI + asyncio | | HTTP client | httpx (异步流式传输) | | Database | SQLite + WAL 模式 (通过 aiosqlite) | | ORM | SQLAlchemy 2.0 async | | Dashboard | Rich | | Package manager | Poetry | | Tests | pytest — 26 个通过 | ## 作者 由 Muhammad Bilal Nasir 构建。
标签:API代理, DLL 劫持, Python, StruQ, 人工智能, 大语言模型, 安全中间件, 安全规则引擎, 数据脱敏, 无后门, 用户模式Hook绕过, 计算机取证, 运行时操纵, 逆向工具