关于 Emfirge
Emfirge 是只读工具,可在模拟的 AWS 云分支上测试基础设施变更,再决定是否应用。它评估安全、依赖、合规、成本和配额,并在 LLM 看到 AWS 标识符前于本机进行令牌化。
主要功能
- 01在临时分支上模拟 AWS 变更
- 02接收 Terraform、CloudFormation、API 和 CLI 输入
- 03评估安全、依赖与合规
- 04比较网络暴露和估算成本
- 05返回通过、警告或阻止结论
适用场景
- 01检查移除 AWS 资源的影响
- 02在应用到生产环境前审查基础设施变更
- 03识别变更影响的合规控制项
- 04比较变更前后的成本与公网暴露
MCP 相关
Emfirge 提供 MCP 服务和命令行工具,供 MCP 客户端扫描 AWS 并操作模拟分支。服务只进行只读评估,不会将已批准的变更应用到云端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
7收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
🛡️ Emfirge
为你的 Agent 提供云环境分支。
AI Agent 正开始改变真实基础设施。
Emfirge 是一套安全护栏,让它们先在你实时 AWS 环境的一个分支上尝试,
再由评估视角判断变更实际会产生什么影响。
由 Ansh Sonkar 构建
你的 Agent 想要“清理未使用的数据库”
如果没有 Emfirge,它会调用 DeleteDBInstance,然后你只能从值班频道得知那个数据库的用途。
有了 Emfirge,Agent 会先在分支上操作:
you ▸ Clean up the unused databases in us-east-1.
agent ▸ I tried it on a branch first. Verdict: BLOCK
✗ recently_used
CloudWatch metrics show a deleted resource was used in the last 90 days
→ orders-db
✗ data_store_deleted_no_recovery_point
Deleted data store has no recovery point
→ orders-db
Branch #2, deleting only legacy-reports-db, passes.
Want the exact API call for that one?
生产环境没有受到任何影响。Agent 修改了计划,而它交给你的结果通过哈希与它通过评估的结论绑定。
简化后的输出。原因代码和消息均为引擎的实际内容。
三个层次
🧰 安全护栏:产品
Agent 在哪里工作、可以看到什么、会得到什么,以及哪些步骤不能跳过。
- 始终只读。 Emfirge 绝不会写入你的云环境。由你或你的流水线应用已批准的变更。
- 默认保护隐私。 在 LLM 看到 AWS 标识符之前,Emfirge 会先在你的机器上将其令牌化。
- 不会悄悄放行。 Emfirge 无法建模的变更不能通过评估。缺少的检查会被报告,而不会被隐藏。
🌿 分支:引擎
以 Git 风格复制你的实时 AWS 模型:由一个基础快照和一份有序变更列表组成。
- Git 风格的操作。 可以像处理代码一样创建分支、回滚、比较和丢弃。
- 多种输入方式。 可以输入类型化变更、Terraform 计划、CloudFormation 变更集、AWS API 调用或 AWS CLI 命令。无论通过哪种方式输入,同一项变更都会得到相同结果。
- 双向差异。 查看新增和移除的内容、哪些资源变得可以从互联网访问,以及变更前后的成本。
🔍 评估视角:衡量内容
每种评估视角都会从一个角度评判分支,并共同给出一个 pass / warn / block 结论。
| 评估视角 | 要回答的问题 | |
|---|---|---|
| ✅ | 安全性 | 是否暴露了某些内容,或打开了权限提升路径? |
| ✅ | 依赖关系 | 移除它会导致什么故障?它仍在使用吗?能否恢复? |
| ✅ | 合规性 | 哪些 CIS 1.5 和 SOC 2 控制项会发生变化?(控制项列表来自 Prowler 发布的数据;未覆盖的控制项绝不会判为 pass) |
| 🟡 | 成本 | 变更前后成本是多少?(使用 AWS 发布的价格表,仅限 us-east-1;不含 LCU) |
| 🟡 | 配额 | 是否会触及 AWS 配额?(早期版本:AWS 默认配额) |
| 🔜 | 自定义 | 使用你自己的评估器,按照相同的分支约定运行。 |
试试看
npx @emfirge/mcp install
然后告诉你的助手:
Help me set up Emfirge, then scan arn:aws:iam::123456789012:role/EmfirgeReadOnly in us-east-1
账户 ID 是占位符。设置流程会提供一个一键式 CloudFormation 链接,用于创建只读角色;你也可以随时删除堆栈以撤销访问权限。
安装程序会配置 Claude Desktop、Claude Code、Cursor、Kiro、Cline、Continue 和 Codex;你也可以手动配置其他 MCP 客户端。你还可以使用 API 或 分支 CLI。请参阅 MCP README,查看所有工具。
值得信赖
引擎的每种行为都由一条编号的定律约束,这是一项必须始终成立的属性测试。目前共有 48 条,例如:
**L1:**空分支的评分与实时扫描完全相同。
**L7:**相同的快照和变更总会得到相同的判定。
**L9:**你的标识符绝不会出现在自由文本输出中。
**L12:**证据可以让判定更严格,但绝不会更宽松。
**L21:**Terraform 安全组规则与等效的 AWS API 调用会得到相同的判定。
这些检查来自公开数据源,而非手写列表: pathfinding.cloud 的权限提升路径、policy_sentry IAM 数据、AWS 架构、Prowler 的合规数据,以及 AWS Price List。每次分支判定都会运行 Checkov,作为建议性扫描器(它会发出警告,但不会单独阻止操作);Trivy 已关闭。每次 CI 运行都会发布一份评分卡。
**Emfirge 不会声称:**分支只是云环境的模型,因此 pass 是证据,而非保证。如果检查的任何部分被跳过,判定结果会明确说明。目前,Emfirge 是一个安全工作区,而不是一个会阻止实时 apply 的门禁。
目前分支可以建模哪些变更?
| 资源类型 | 添加 | 修改 | 删除 |
|---|---|---|---|
| EC2 实例、安全组、RDS 实例、S3 存储桶、Lambda 函数、网络 ACL | ✅ | ✅ | ✅ |
| IAM 角色(包括信任策略) | ✅ | ✅ | ✅ |
| IAM 用户、NAT 网关 | ✅ | ||
| RDS 快照 | ✅ | ✅ | |
| EBS 卷 | ✅ | ✅ | |
| EBS 快照 | ✅ | ||
| 路由表 | ✅ | ✅ | |
| IAM 角色策略 | ✅ |
实时 GET /branches/capabilities 端点是权威列表,GET /branches/field-catalog 则列出每个可设置字段及其对应的 AWS API 成员。大多数资源类型还包含 tags;更改标签会替换完整的用户标签集。任何未建模的内容都会降低判定结果,而不会被直接放行。
仓库布局与许可证
| 路径 | 内容 | 许可证 |
|---|---|---|
backend/ | 引擎:采集器、图、分支、输入适配器、透镜、判定、回传 | AGPL-3.0 |
mcp/ | @emfirge/mcp,MCP 服务和 CLI | Apache-2.0 |
site/ | emfirge.cloud/docs 上的文档 | AGPL-3.0 |
iam-role.yaml | 只读客户角色 | AGPL-3.0 |
构建者
Emfirge 由 Ansh Sonkar(@theanshsonkar)设计并构建:包括引擎、分支模型、透镜和 MCP。
正在 AWS 上使用 AI Agent 构建项目,或想聊聊 Emfirge?请发送邮件至 [email protected]。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。