Emfirge

io.github.theanshsonkar由 GitHub 账号 theanshsonkar 发布v0.2.1更新于 Nov 3, 2026

Git branch for your cloud. Understand AWS risk, prove fixes, and ship safer changes.

概览

AI 生成的概览

Emfirge 让 AI 助手在实时 AWS 的只读分支上先试运行基础设施变更,并在实际应用前给出通过、警告或阻止的判定。

可以做什么
  • 对实时 AWS 的建模副本创建分支,并进行回滚、比较和丢弃
  • 以类型化变更、Terraform 计划、CloudFormation 变更集、AWS API 调用或 CLI 命令输入变更
  • 通过安全、依赖、合规、成本和配额等视角评估分支,得出单一的通过、警告或阻止判定
  • 查看双向差异:新增与移除、是否变为可从互联网访问、变更前后的成本
  • 通过只读角色扫描账户,并返回已批准变更对应的确切 API 调用
适用场景
当助手提出删除数据库、修改安全组或 IAM 角色等高风险 AWS 变更,而你希望在有人执行前看到影响证据时适用。也适合用安全、合规和成本检查来审查 Terraform 或 CloudFormation 变更。
运行要求
以本地 stdio 进程运行,从 npm 包安装,安装器可为 Claude Desktop、Claude Code、Cursor、Kiro、Cline、Continue 和 Codex 等客户端配置。需要一个 AWS 账户,并按提供的 CloudFormation 模板创建只读角色,同时需要访问 Emfirge 后端的网络。EMFIRGE_BASE_URL 可指向自托管后端;EMFIRGE_PRIVACY 设置令牌化模式(strict、balanced 或 off)。
安装前请注意
它会通过只读角色读取你的 AWS 账户,因此只授予该角色,并可删除堆栈以撤销访问。默认在你的机器上对 AWS 标识符做令牌化;将 EMFIRGE_PRIVACY 设为 off 或 balanced 会改变 LLM 能看到的内容。通过只是模型给出的证据,并非保证,也不是阻止实际应用的关卡。未建模的资源类型会降低判定质量,而不会被判为通过。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Emfirge,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

🛡️ Emfirge

Give your agent a branch of your cloud.

AI agents are starting to change real infrastructure.
Emfirge is the harness that lets them try first, on a branch of your live AWS,
judged by lenses that show what the change would actually do.

Get started · Docs · npm

Built by Ansh Sonkar


Your agent wants to "clean up unused databases"

Without Emfirge, it calls DeleteDBInstance and you learn from your on-call channel what that database was for.

With Emfirge, the agent does it on a branch first:

text
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?

Nothing touched production. The agent changed its plan, and the hand-back it gives you is bound by hash to the verdict it passed.

Simplified output. The reason codes and messages are the engine's real ones.


Three layers

🧰 The harness: the product

Where the agent works, what it may see, what it gets back, and what it can't skip.

  • Read-only, always. Emfirge never writes to your cloud. You or your pipeline apply the approved change.
  • Private by default. AWS identifiers are tokenized on your machine before the LLM sees them.
  • No silent passes. A change Emfirge can't model can't pass. A missing check is reported, not hidden.

🌿 The branch: the engine

A Git-style copy of a model of your live AWS: a base snapshot plus an ordered list of changes.

  • Git-style operations. Fork, roll back, compare and discard, like you would with code.
  • Many ways in. Feed it typed changes, a Terraform plan, a CloudFormation change set, AWS API calls or AWS CLI commands. The same change gives the same answer whichever way it comes in.
  • A two-sided diff. See what was added and removed, what became reachable from the internet, and the cost before and after.

🔍 Lenses: what gets measured

Each lens judges the branch from one angle, and together they produce a single pass / warn / block.

LensAsks
✅SecurityDoes this expose something, or open a privilege-escalation path?
✅DependenciesWhat breaks if this is removed? Is it still in use? Can it be recovered?
✅ComplianceWhich CIS 1.5 and SOC 2 controls flip? (control lists from Prowler's published data; uncovered controls are never pass)
🟡CostWhat does it cost before and after? (AWS's published Price List, us-east-1 only; no LCUs)
🟡LimitsWill it hit an AWS quota? (early: AWS default quotas)
🔜YoursBring your own evaluator, run against the same branch contract.

Try it

bash
npx @emfirge/mcp install

Then tell your assistant:

text
Help me set up Emfirge, then scan arn:aws:iam::123456789012:role/EmfirgeReadOnly in us-east-1

The account ID is a placeholder. Setup gives you a one-click CloudFormation link for a read-only role, and you can delete the stack any time to revoke access.

The installer sets up Claude Desktop, Claude Code, Cursor, Kiro, Cline, Continue and Codex, and you can configure any other MCP client by hand. You can also use the API or the branch CLI. See all the tools in the MCP README.


Built to be trusted

Every behaviour of the engine is pinned by a numbered law, a property test that must always hold. There are 48 so far, for example:

L1: an empty branch scores exactly like the live scan.
L7: the same snapshot and changes always give the same verdict.
L9: your identifiers never appear in free-text output.
L12: evidence can make a verdict stricter, never looser.
L21: a Terraform security-group rule and the equivalent AWS API call get the same verdict.

The checks come from public sources rather than hand-written lists: pathfinding.cloud escalation paths, policy_sentry IAM data, AWS schemas, Prowler's compliance data, and the AWS Price List. Checkov runs on each branch verdict as an advisory scanner (it warns, it does not block on its own); Trivy is off. Every CI run publishes a scorecard.

What Emfirge does not claim: a branch is a model of your cloud, so a pass is evidence, not a guarantee. If any part of the check was skipped, the verdict says so. Today Emfirge is a safe workspace, not a gate that blocks a live apply.


What changes can a branch model today?
Resource typeAddModifyDelete
EC2 instance, security group, RDS instance, S3 bucket, Lambda function, network ACL✅✅✅
IAM role (including trust policy)✅✅✅
IAM user, NAT gateway✅
RDS snapshot✅✅
EBS volume✅✅
EBS snapshot✅
Route table✅✅
IAM role policy✅

The live GET /branches/capabilities endpoint is the authoritative list, and GET /branches/field-catalog lists every settable field with the AWS API member it stands for. Most resource types also carry tags; a tag change replaces the complete user tag set. Anything not modeled degrades the verdict rather than passing.

Repository layout and licenses
PathWhat it isLicense
backend/The engine: collector, graph, branches, input adapters, lenses, verdict, hand-backAGPL-3.0
mcp/@emfirge/mcp, the MCP server and CLIApache-2.0
site/Docs at emfirge.cloud/docsAGPL-3.0
iam-role.yamlThe read-only customer roleAGPL-3.0

Built by

Emfirge is designed and built by Ansh Sonkar (@theanshsonkar): the engine, the branch model, the lenses and the MCP.

Building with AI agents on AWS, or want to talk about Emfirge? Email [email protected].


Contributing · Security · Privacy

来源:README.md,提交 80878ea

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.2.1最新Sep 16, 2026

评分

已满足适用检查项的 40%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。