yogami/aegismcp
GitHub: yogami/aegismcp
AegisMCP 通过操作系统级沙箱封装 stdio MCP 服务器,拦截 JSON-RPC 通信并强制执行文件和网络访问策略,防御 prompt 注入导致的数据泄露。
Stars: 0 | Forks: 0
# 🛡️ AegisMCP
**用于 Model Context Protocol 的内核级安全守护进程**
*拦截 stdio JSON-RPC • 执行 OS 级别沙箱化 • 阻断 prompt 注入的数据外泄*
[](https://github.com/yogami/aegismcp/actions/workflows/ci.yml)
[](https://opensource.org/licenses/MIT)
## 问题:stdio 安全危机
Anthropic 的 **Model Context Protocol (MCP)** 已成为将 LLM 连接到本地工具的标准。大多数集成(Cursor、Claude Desktop、CLI 运行时)使用 **stdio 传输** —— 将工具服务器作为子进程启动,并通过 `stdin`/`stdout` 传输 JSON-RPC。
由于 stdio 不经过网络栈,**传统的防火墙和 API 网关对其完全不可见**。遭到 prompt 注入的 agent 可以:
1. 通过文件系统 MCP 服务器读取 `~/.ssh/id_rsa`
2. 通过网络 MCP 服务器将内容 POST 到 `evil-webhook.com`
3. 所有这一切都在子进程管道中无形地发生
## 解决方案
AegisMCP 通过 **OS 级别的沙箱化** 封装任何 stdio MCP 服务器:
```
┌─────────────────┐ stdio ┌──────────────┐ stdio ┌────────────────┐
│ MCP Client │◄──────────►│ AegisMCP │◄──────────►│ MCP Server │
│ (Cursor/Claude) │ │ (Wrapper) │ │ (Subprocess) │
└─────────────────┘ └──────┬───────┘ └───────┬────────┘
│ │
Policy Engine OS Sandbox Enforced
JSON-RPC Intercept ├─ macOS: sandbox-exec
Audit Logging ├─ Linux: Landlock LSM
└─ Linux: seccomp-BPF
```
## 快速开始
```
# 安装
cargo install aegismcp
# 使用对 /workspace 的只读访问权限封装 MCP filesystem server
aegismcp --allow-read '/workspace/*' --deny-net-all -- \
npx @modelcontextprotocol/server-filesystem /workspace
# 使用 policy 文件
aegismcp --policy policies/filesystem.json -- \
npx @modelcontextprotocol/server-filesystem /workspace
```
## 许可证
MIT —— 详见 [许可证](LICENSE)。标签:Docker镜像, MCP, 可视化界面, 沙箱, 系统守护进程, 通知系统