by spectra-g
engram — Blast Radius detector for AI agents. Prevent regressions using Git history and organizational memory for precis
Uses Git history and organizational memory to help AI agents avoid breaking changes by identifying hidden dependencies and co-committed files.
engram is a community-built MCP server published by spectra-g that provides AI assistants with tools and capabilities via the Model Context Protocol. engram — Blast Radius detector for AI agents. Prevent regressions using Git history and organizational memory for precis It is categorized under ai ml, developer tools. This server exposes 4 tools that AI clients can invoke during conversations and coding sessions.
You can install engram in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
NOASSERTION
engram is released under the NOASSERTION license.
Add new capabilities to Claude beyond text generation
Example
Access external data sources, execute code, interact with tools and services
Transform Claude from chatbot to action-taking agent
Provide Claude with access to relevant context and data
Example
Load project documentation, access knowledge bases, query databases
Get more accurate, context-aware responses
Automate multi-step workflows combining AI and external tools
Example
Research → Summarize → Create document → Send notification
Complete complex tasks end-to-end without manual steps
Share your MCP server with the developer community
I recommend engram for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
We evaluated engram against two servers with overlapping tools; this profile had the clearer scope statement.
According to our notes, engram benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.
Useful MCP listing: engram is the kind of server we cite when onboarding engineers to host + tool permissions.
We wired engram into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
engram is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
engram has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
engram reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
engram is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.
We evaluated engram against two servers with overlapping tools; this profile had the clearer scope statement.
showing 1-10 of 28
The "Missing Context" Engine for AI Agents.
Engram gives your AI agent the context it can’t see in the code alone.
While LLMs are excellent at analyzing the specific files you give them, they lack the broader context of your repository's history and guardrails. Engram bridges this gap by surfacing hidden dependencies (via git history) and required behaviours (via test intents) that the AI would otherwise not have access to, miss or ignore.
A TypeScript service (TransactionExportService) writes pipe-delimited lines like TXN-001|2024-11-15|250.00|COMPLETED.
A legacy JavaScript cron job (legacy-mainframe-sync.js) parses them using hardcoded array indices - parts[2] for amount, parts[3] for status.
There are zero imports between them. No shared types. Nothing in the code connects them.
The task: "Add a currency field next to the amount."
The AI agent updates the TypeScript service and tests. The export format becomes ID|DATE|AMOUNT|CURRENCY|STATUS. All tests pass. The PR ships.
The problem: The legacy script still reads parts[3] expecting a status like COMPLETED - but now gets USD. parseFloat("USD") returns NaN. The mainframe receives corrupted data. Nothing failed. Nothing warned. Silent breakage in production.
Before writing any code, the agent calls get_impact_analysis. Engram checks git history and returns:
Critical Risk (0.99):
bin/legacy-mainframe-sync.js— Changed together in 21 of 21 commits (100%)
The agent reads the flagged file, finds the positional parser, and updates both files together. Same feature, zero breakage.
After the fix, the agent calls save_project_note:
"The export line format is consumed by bin/legacy-mainframe-sync.js using hardcoded positional indices. Any change to field order MUST be mirrored there. Current format: ID|DATE|AMOUNT|CURRENCY|STATUS (indices 0-4)."
Now every future agent gets this warning automatically - before it writes a single line of code.
1. Temporal Graph
A.ts and B.ts changed together 40 times in the last year, your AI needs to know about B.ts before editing A.ts.2. Validation Graph
it("should validate JWT expiration")).it, test, describe)#[test]def test_...)func Test...3. Knowledge Graph
get_impact_analysis - Blast radius calculation for a target fileFor a given file, return the impacted files, their test intents and any stored notes.
Example:
{
"file_path": "src/Auth.ts",
"repo_root": "/path/to/repo"
}
Returns:
{
"summary": "Changing src/Auth.ts may affect 2 files. 1 critical risk, 1 medium risk.
⚠️ Critical Risk (0.89): src/Session.ts
Changed together in 48 of 50 commits (96%)
Notes: Session requires Redis connection
⚠ High Risk (0.72): src/Auth.test.ts
Changed together in 31 of 50 commits (62%)
Current test behaviour (may need updating):
- should login with valid credentials
- should reject invalid password
- should handle OAuth callback",
"formatted_files": [
{
"path": "src/Session.ts",
"risk_level": "Critical",
"risk_score": 0.89,
"description": "Changed together in 48 of 50 commits (96%)",
"memories": ["Session requires Redis connection"]
},
{
"path": "src/Auth.test.ts",
"risk_level": "High",
"risk_score": 0.72,
"description": "Changed together in 31 of 50 commits (62%)",
"test_intents": [
"should login with valid credentials",
"should reject invalid password",
"should handle OAuth callback"
]
}
],
"coupled_files": [...],
"commit_count": 50
}
save_project_note - Remember context about filesStore persistent notes that automatically appear in future impact analyses.
Example:
{
"file_path": "src/Auth.ts",
"note": "Uses JWT tokens, must validate expiry timestamp",
"repo_root": "/path/to/repo"
}
read_project_notes - Retrieve saved contextSearch notes by content or file path, or list all project knowledge.
Example:
{
"query": "Redis",
"repo_root": "/path/to/repo"
}
Engram is built to be invisible until you need it. It uses an Adaptive Indexing Strategy that respects your CPU and scales from side-projects to massive monorepos.
We take performance seriously. Engram is benchmarked against the Linux Kernel repository (1.2 million+ commits).
Standard Repos (Most Projects)
Massive Repos (e.g., Linux Kernel)
┌─────────────┐
│ AI Agent │ ← MCP protocol over stdio
└──────┬──────┘
│
┌──────▼──────────────┐
│ Node.js Adapter │ ← TypeScript MCP server
│ (adapter/) │
└──────┬──────────────┘
│ spawns & communicates via JSON
┌──────▼──────────────┐
│ Rust Core Binary │ ← Fast git indexing + SQLite
│ (core/) │
└──────┬──────────────┘
│ reads
┌──────▼──────────────┐
│ .engram/engram.db │ ← Persistent SQLite database
└─────────────────────┘
rusqlite and WAL mode for high-throughput concurrency.Engram is an MCP server and works with any MCP-compatible client.
claude mcp add --scope user --transport stdio engram -- npx -y @spectra-g/engram-adapter
Settings > General > MCP Servers > Add New MCP Server:
engramcommandnpx -y @spectra-g/engram-adapterTo ensure your AI uses Engram effectively, add this to your project rules (.cursorrules or CLAUDE.md).
## Engram Workflow Policy
You have access to a tool called `engram` (specifically `get_impact_analysis` and `save_project_note`).
You MUST follow this strictly sequential workflow for EVERY code modification request:
### Phase 1: Analysis (MANDATORY START)
1. **Blast Radius Check**: Before reading code or proposing changes, you MUST call `get_impact_analysis` on the target file(s).
2. **Context Loading**:
* **Coupling**: If "High" or "Critical" risk files are returned, evaluate if they are *functionally related*.
* *Action:* Read the file (`read_file`) if it poses a logical regression risk.
* *Ignore:* Skip files that appear coincidental (e.g., lockfiles, gitignore, bulk formatting updates).
* **Memories**: Pay close attention to any "Memories" returned in the analysis summary.
* **Tests**: If `test_intents` are present, treat them as strict behavioural constraints. If absent, proceed with standard code analysis.
### Phase 2: Execution
3. **Fix/Refactor**: Proceed with the code changes. Update tests if the behaviour is intentionally changing.
### Phase 3: Knowledge Capture (MANDATORY END)
4. **Save Learnings**: Before finishing, ask: *"Would a future developer be **surprised** by something I discovered?"*
* **IF YES** (Hidden dependencies, non-obvious bugs, env quirks): You MUST use `save_project_note`.
* **IF NO** (Typos, standard refactors, documented behaviour): Do NOT save a note.
Requires Rust (1.70+) and Node.js (18+).
npm run build:all # Build Rust core + TypeScript adapter
npm run test:all # Run
---
Prerequisites
Time Estimate
15-60 minutes depending on server complexity
Steps
Troubleshooting
✓ Do
✗ Don't
💡 Pro Tips
Architecture
Model Context Protocol standardizes how AI hosts (Claude, Cursor) communicate with external tools and data sources through server implementations.
Protocols
Compatibility
✓ Use when
Use when you need Claude to access external data, execute actions, or integrate with tools. Best for extending AI capabilities beyond conversation.
✗ Avoid when
Avoid when native integrations exist (use official APIs directly), for real-time critical systems, or when security/compliance requires zero external dependencies.