You are an AI agent.
This is your memory API.
Engram gives you persistent memory via 11 MCP tools. Store what you learn, load smart context, cross-pollinate across repos, prove usage, and close the loop with reflection.
# 1. Run this once in terminal with your API key npx -y engram-tools@latest --setup engram_... # 2. Restart Claude, Codex, Cursor, Gemini or Antigravity, Windsurf, or VS Code # 3. Paste these as agent instructions, not shell commands Call engram_start with project, repo, role, market, stack, and task. Before choosing an approach, call engram_recall. If another repo may have solved it, use engram_cross_pollinate. Use engram_reflect as a milestone checkpoint after meaningful phases, task switches, several used memories, or before handoff.
Setup for your tool
// ~/.claude/mcp.json{"mcpServers": {"engram": {"command": "npx","args": ["-y", "engram-tools", "mcp"],"env": {"ENGRAM_API_KEY": "engram_..."}}}}
Can an agent buy Engram?
Yes, if the agent can operate email and payment. It follows the same checkout flow, creates a workspace, then uses its API key. Otherwise a human owner signs up, invites teammates, and gives each agent a scoped member key.
// When to use each tool
Cross-Session Learning
You fix a tricky bug in session 1. Session 2, the same bug pattern appears in a different file. You recall the fix instantly.
Team Knowledge Transfer
A Cursor agent on the frontend discovers that the API expects snake_case. A Claude Code agent on the backend learns this without anyone telling it.
Convention Enforcement
Before writing code, you recall project conventions. "Use Zod for validation, not Joi." You follow the team standard automatically.
Your first session with Engram
Here is what happens when you connect for the first time.
Your human adds Engram to your MCP config.
You get one start tool plus memory tools: engram_start, engram_smarter, engram_cross_pollinate, engram_store, engram_recall, engram_skill, engram_report_outcome, engram_reflect, engram_proof, engram_get_context, engram_setup.
Call engram_start first with your project, repo, role, market, stack, and task.
Engram loads the most relevant team knowledge and skill guides in one call.
Work normally, but call engram_recall before choosing an approach. If another repo may have solved it, call engram_cross_pollinate.
Use engram_reflect as a milestone checkpoint after meaningful phases, task switches, several used memories, or before handoff. It is not a timer.
API Reference
Complete documentation for all 11 MCP tools.
engram_startStart every session in one call. Loads setup guidance, relevant memories, and matching skill guides.
{"agent_tool": "codex","project": "HouseCompass","repo": "housecompass.uk","role": "frontend product engineer","market": "UK property","task": "build listing detail page","stack": ["Next.js", "TypeScript", "PostgreSQL"]}
engram_smarterLoad task-specific memories and matching skill guides when switching tasks.
{"context": "Next.js 16 mobile Safari chat widget overflows when keyboard opens","repo": "engram","file": "web/src/components/ChatWidget.tsx","include_skills": true}
engram_cross_pollinateFind reusable lessons from other repos in your workspace.
{"target_repo": "skillbridge-monorepo","context": "Add team invite flow with owner/admin permissions and email delivery","source_repos": ["engram", "evimibul"],"include_public": true,"limit": 5}
engram_storeStore a learned convention, pattern, gotcha, or solution.
{"type": "SOLUTION","content": "Mobile Safari chat panels should not autofocus inputs. Size the fixed panel from visualViewport, use 16px input text, and assert bounds after typing.","tags": ["ios", "safari", "mobile", "chat-widget"],"repo": "engram","agent_tool": "codex","context": {"file": "web/src/components/ChatWidget.tsx","platform": "ios-safari"}}
engram_recallRecall relevant memories by semantic query, filtered by repo, type, or tags.
{"query": "Stripe checkout succeeded but workspace plan still free after webhook","repo": "engram","type": "SOLUTION","limit": 3}
engram_report_outcomeReport whether a recalled memory led to success or failure. Improves future ranking.
{"memory_id": "cmqstripeplan123","success": true,"detail": "The recalled webhook transaction pattern fixed the dashboard plan mismatch in production."}
engram_reflectClose the loop at session end: report used memories and store durable learnings in one call.
{"repo": "engram","task": "Fix mobile Safari chat overflow and close behavior","summary": "Chat panel now sizes from visualViewport, avoids mobile autofocus, uses 16px input text, and close restores the launcher.","used_memories": [{"memory_id": "cmqioschat123","success": true,"detail": "The iOS visualViewport gotcha pointed to the correct fix."}],"learnings": [{"type": "SOLUTION","content": "For mobile fixed panels, compute bounds from visualViewport and verify after focusing an input; CSS dvh alone may not catch layout viewport offset.","tags": ["mobile", "safari", "visualViewport"]}]}
engram_get_contextGet relevant memories for a repository in one call. Use when switching repos or when you need a focused repo dump.
{"repo": "engram","task": "Polish localized documentation without breaking rendered pages"}
engram_skillLoad a complete skill guide for complex tasks like migrations, reviews, deployment, and debugging.
{"skill": "security-audit"}
engram_proofReturn product proof: memory-bank size, learning loop, usage, activation, and benchmark recipe.
engram_proof()
engram_setupReturn workspace info, available tools, and best-practice guidance.
{"agent_tool": "claude-code"}
Memory Types
CONVENTIONCoding standards and team rules
"Always use Prisma migrations"
PATTERNRecurring approaches and templates
"API routes use cached() wrapper"
GOTCHAThings that break or surprise
"Neon requires SSL in production"
SOLUTIONFixes that worked
"Fix: add pooler to connection string"
ARCHITECTURESystem design decisions
"Search uses Haversine + bbox"
DEPENDENCYLibrary info and versions
"Prisma 7 needs adapter pattern"
// Machine-readable endpoint
GET https://engram.tools/api/v1/capabilitiesReturns JSON with supported tools, memory types, rate limits, and pricing - designed for programmatic consumption.