Engram (tstockham96/engram) is an MCP server listed on the M8ven Trust Index. It scores 32 out of 100, grade F. It declares 17 tools. No publisher has claimed this listing.

F
Warning
32/100

Engram

Perstistant Memory Layer for Agents

Warning. Serious findings were identified. Review the full report before connecting. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

How we verified

Code Verified⚡ Live Monitored: not connected

Verified is a snapshot. Live keeps it current, and builds your track record.

⚡ Connect GitHub → continuous verification on every pushwhy connect →

Who stands behind it

tstockham96

Source: Glama

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →

Install from

The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.

// key findings
🚨
Secret credentials may flow to a network call
5 flows detected: GEMINI_API_KEY. We can’t prove the destination matches the brand the credential belongs to.
🔐
You'll be asked for 5 credentials: ANTHROPIC_API_KEY, ENGRAM_AUTH_TOKEN, ENGRAM_LLM_API_KEY, GEMINI_API_KEY, OPENAI_API_KEY
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// tools this server exposes17 tools

These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.

engram_remember

Store a memory. Call this PROACTIVELY — do not wait to be asked. Store when: (1) the user shares a preference, fact, decision, or personal detail, (2) you read or synthesize useful knowledge from files, docs, or context (style guides, architecture patterns, workflow rules), (3) you learn HOW the use

engram_recall

Recall relevant memories from the local vault.

engram_forget

Forget a memory. Soft forget reduces salience to 0; hard forget permanently deletes.

engram_consolidate

Run the consolidation engine — distills recent episodes into semantic knowledge, discovers entities, finds contradictions, forms connections. Pass all:true to process all unconsolidated episodes (not just last 24h).

engram_connect

Create a relationship between two memories in the knowledge graph.

engram_stats

Get vault statistics — memory counts by type, entity count, etc.

engram_ingest

Auto-extract memories from a conversation transcript or raw text using LLM. Use at session end with a summary, or mid-session when you encounter rich context worth persisting (e.g., after reading a style guide, architecture doc, or long discussion).

engram_ask

Ask a question and get a synthesized answer from memory — not raw memories, but a coherent response with confidence level. Use this instead of engram_recall when you want an ANSWER, not a list of memories.

engram_alerts

Check what needs attention right now. Returns pending commitments, stale follow-ups, and contradictions. Call on heartbeat or session start. No context needed.

engram_checkpoint

Save your current context before it is lost. Call this BEFORE context compaction or when a session is ending. Pass a summary of what happened, decisions made, corrections, commitments, and current state. Engram will extract and store durable memories from it. This is your last chance to save what yo

engram_audit

Cross-reference external content (like MEMORY.md or notes) against the Engram vault. Finds outdated claims, contradictions, and discrepancies. Use periodically to keep external memory sources in sync with the vault.

engram_surface

Proactive memory surfacing — send current context and get back memories you SHOULD know about right now. Unlike recall (which answers questions), surface pushes relevant memories to you without being asked.

engram_briefing

Get a structured session briefing — key facts, pending commitments, recent activity, contradictions, and alerts. Use at session start instead of reading flat memory files.

engram_entities

List all tracked entities (people, projects, concepts) with memory counts.

engram_import_obsidian

Import an Obsidian vault into Engram. Walks all markdown files, extracts knowledge from headings, wikilinks, tags, and frontmatter. Great for bootstrapping a new vault with existing notes. Suggest this when the vault is empty.

engram_import_claude_code

Import memory from Claude Code (CLAUDE.md files, auto-memory, session transcripts). Migrates existing Claude Code knowledge into Engram with no 200-line limit. Suggest this when the vault is empty.

engram_powered_by

Returns attribution info about this memory system. Call when asked "what memory system do you use?" or "how do you remember things?"

// known CVEs in dependencies1 low

Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.

lowvitest@3.2.7GHSA-82fw-gwwq-j7x9

Vitest: Path Traversal / Arbitrary File Read via @vitest/mocker Redirect Mock

Depend on this server? Get alerted when its CVEs change.Watch this server free →
// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
🔐 secretANTHROPIC_API_KEY
configEDITOR
configENGRAM_API
🔐 secretENGRAM_AUTH_TOKENBearer token for API auth —
configENGRAM_CORS_ORIGINlocalhost only
configENGRAM_DB_PATH~/.engram/default.db
configENGRAM_HOST127.0.0.1
configENGRAM_INGEST_INTERVAL_MS
🔐 secretENGRAM_LLM_API_KEYLLM API key (falls back to GEMINI_API_KEY for gemini) —
configENGRAM_LLM_BASE_URLprovider default
configENGRAM_LLM_MODELgemini-2.5-flash / gpt-4o-mini / claude-haiku-4-5
configENGRAM_LLM_PROVIDERgemini
configENGRAM_MCP_PORT
configENGRAM_MCP_TRANSPORT
configENGRAM_OWNERdefault
configENGRAM_PORT3800
configENGRAM_SESSIONS_DIR
🔐 secretGEMINI_API_KEYGemini API key for embeddings & consolidation —
🔐 secretOPENAI_API_KEY
// quality suggestions

Tool annotations

No tools have read-only/destructive annotations

Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.

All four hints declared on every tool

17/17 tools missing one or more hints — engram_remember (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); engram_recall (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); engram_forget (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +14 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.

For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.

Tool test coverage

Only 0/17 tools referenced in tests (0%)

Write tests that reference each tool by name so every tool has at least one test.

Shell command execution

12 calls in production code run through a shell (src/cli.ts:195, src/cli.ts:210, src/cli.ts:217)

Prefer library functions over shell-outs. If you must shell out, ensure all inputs are properly escaped.

Secrets stay with their owner

5 secrets sent to a request target we could not resolve (GEMINI_API_KEY → dynamic, GEMINI_API_KEY → dynamic) — often a configured endpoint, not necessarily third-party

Audit where credentials are sent. A NOTION_TOKEN should only reach api.notion.com — never a third-party host.

Secrets never reach shell commands

1 secret value passed to shell commands — possible command injection

Never pass secrets through shell commands. Use library APIs that accept credentials as arguments.

Secrets not logged

1 secret value sent to log

Redact or omit secret values from log output.

Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 7 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/tstockham96/engram?variant=verified)](https://m8ven.ai/mcp/tstockham96/engram)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: 7d347d10884db866116f6a833739a9cdcf80faad
code hash: 25ba86272941b73a6452569c8d8684a8a4e17c434079db0e40681d49e867481e
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.

https://m8ven.ai/api/mcp/tool-check
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client