Emfirge

io.github.theanshsonkarPublished by GitHub account theanshsonkarv0.2.1Updated Nov 3, 2026

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

Overview

AI-generated overview

Emfirge lets an AI assistant trial AWS infrastructure changes on a read-only branch of your live cloud and get a pass, warn or block verdict before anything…

What you can do
  • Fork, roll back, compare and discard branches of a modeled copy of your live AWS
  • Feed changes in as typed changes, Terraform plans, CloudFormation change sets, AWS API calls or CLI commands
  • Judge a branch through security, dependency, compliance, cost and quota lenses and get one pass, warn or block verdict
  • See a two-sided diff of what was added or removed, what became internet-reachable, and cost before and after
  • Scan an account through a read-only role and hand back the exact API call for an approved change
When to use it
Useful when an agent proposes risky AWS changes such as deleting databases, altering security groups or IAM roles, and you want evidence of impact before anyone applies it. Also suits reviewing Terraform or CloudFormation changes against security, compliance and cost checks.
Requirements
Runs as a local stdio process installed from the npm package, set up via its installer for clients such as Claude Desktop, Claude Code, Cursor, Kiro, Cline, Continue and Codex. Needs an AWS account with a read-only role created from the provided CloudFormation template, and network access to the Emfirge backend. EMFIRGE_BASE_URL can point at a self-hosted backend; EMFIRGE_PRIVACY sets tokenization mode (strict, balanced or off).
Before you install
It reads your AWS account through a read-only role, so grant only that role and delete the stack to revoke access. AWS identifiers are tokenized on your machine by default; setting EMFIRGE_PRIVACY to off or balanced changes what the LLM sees. A pass is evidence from a model, not a guarantee, and it is not a gate that blocks a live apply. Changes outside the modeled resource types degrade the verdict rather than passing.

Installation

In SourceWeft

  1. Open Emfirge in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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

Source: README.md at commit 80878ea

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.2.1LatestSep 16, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.