Cross-session semantic memory for AI coding agents. Provides tools for storing, recalling, and managing AI agent knowledge across sessions using vector embeddings and Qdrant vector store.
Engram MCP server presents well-structured tool definitions with strong naming conventions and parameter schemas, but suffers from inconsistent description quality and missing output schema documentation. All 6 tools follow verb_noun naming patterns (engram_pull, engram_push, engram_status, engram_flag, engram_ls, engram_watch), which is excellent. However, descriptions vary widely in quality and informativeness. Input schemas are comprehensive with proper type definitions, enums, and constraints (e.g., limit bounds 1-30, confidence 0-1, enum status values). The critical weakness is lack of documented output schemas, tool descriptions state what they return in natural language but provide no structured schema documentation that LLMs can parse. Error handling guidance is minimal. Some parameter descriptions are domain-specific and dense (e.g., engram_push summary field includes highly technical dedup threshold language), which may confuse LLMs unfamiliar with the engram domain model.
Negative weight signal: mark a node as unhelpful (weight -= 0.5), contradicted (weight = 0), or delete it. Throttled to once per node per hour.
Lightweight listing. Browse by tag or status, sorted by weight or recency. Returns compact format (id, summary, tags, weight).
Search stored knowledge. Semantic query or fetch by ID. Project-scoped by default.
Submit 1-8 knowledge seeds. 1 seed = 1 topic. Summary and content are ENGLISH ONLY (the dedup threshold is language-dependent — see the summary field). DCP native format expected (include native + schema fields). Primary schema: knowledge:v1 → [action:string(add|replace|remove|fix|discover|configure|gotcha), domain:string, detail:string|object, confidence:number(0-1)]. Example: native:["fix","docker","port 3100 conflict",0.9], schema:"knowledge:v1". Other schemas available via gateway GET /schemas.
Statistics: project list, node counts by status, memory usage, recent metabolism (promotions/demotions/deaths).
Missing output schema documentation for all tools. Descriptions state return types in prose ('project list, node counts', 'compact format', 'adaptive event monitor') but provide no structured JSON Schema definitions that LLMs can parse for response field names, types, and required fields.
engram_push description embeds implementation details (0.92 dedup threshold, language-dependent scoring 0.7958 in English vs 0.9221 in Japanese) that are domain-specific jargon, not user-facing guidance. LLMs unfamiliar with engram semantics will struggle to understand when/why to call this tool.
engram_watch description ('Receptor is an adaptive event monitor...') is vague about what 'receptor' does and when an agent should invoke start vs stop vs status. The 'options' parameter (learn, persona, priorBlock) lacks concrete examples of how they affect behavior.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | 2026-07-28+ | v2 |
| 2026-03-09 | C | 61 | - | v1 |
Receptor control: start/stop/status. Receptor is an adaptive event monitor that runs continuously in the background, observing agent behavior and triggering autonomous engram ingestion.
No error recovery guidance. Tools describe what they do but do not tell LLMs what to do on failure (e.g., 'If limit exceeded, try with limit=1 and paginate'). engram_flag throttle ('once per node per hour') is documented but no guidance on what happens if throttled.
engram_pull parameter 'queryType' description references 'DCP: agent returns native payload only' but DCP is undefined in user-facing docs. Acronyms without definition harm clarity for LLMs and users.
engram_push 'native' and 'schema' parameters are tightly coupled (native requires schema, schema requires format like 'knowledge:v1'), but parameter descriptions do not explicitly state this dependency.
engram_ls 'sort' parameter accepts 'recent' and 'weight' but no default specified despite being a key sorting control. Ambiguity in default behavior invites misuse.