Lightweight AI Agent Semantic Memory Engine with MCP (Model Context Protocol) server implementation. Provides JSON-RPC 2.0 based MCP server communicating over stdin/stdout, exposing memory operations as standard MCP tools.
CogniVault defines 7 tools with complete input schemas and descriptions. Naming follows verb_noun convention (memory_search, memory_add, etc.), which is good. However, descriptions are generic and lack LLM-optimized guidance on WHEN to use each tool vs. alternatives. Parameter descriptions exist but are minimal (avg ~40 chars vs. baseline 72). Output schemas are not documented, LLMs cannot predict response structure for downstream chaining. Error handling is absent from visible code. No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. The memory_cleanup tool with dry_run parameter shows awareness of confirmation patterns but lacks explicit guidance.
Add a new memory to the store.
Run lifecycle cleanup to remove forgotten memories.
Delete a memory by its ID.
List all memories for an agent.
Search memories using hybrid search (TF-IDF + BM25). Returns ranked results with relevance scores.
Get aggregate statistics for an agent's memories.
Update an existing memory's content, tags, or scores.
No output schemas documented. LLMs cannot predict response structure (fields, types, pagination) for downstream tool chaining. memory_search should document that results include relevance_score, memory_id, content; memory_list should document total_count and pagination.
Destructive tools (memory_delete, memory_cleanup) lack tool annotations. MCP spec supports readOnlyHint and destructiveHint to signal irreversible operations. Without these, LLMs cannot distinguish safe reads from dangerous writes at parse time.
Descriptions are generic and lack LLM-optimized guidance. 'Delete a memory by its ID' (28 chars) does not explain WHEN to use this vs. memory_cleanup, what happens to related data, or recovery options. Baseline is 194 chars; these average ~45 chars.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
No error handling guidance in visible code. If memory_search returns no results, or memory_add fails due to invalid importance score, LLMs have no recovery path. Descriptions should include 'If no results found, try broader query' or 'importance must be 0.0-1.0'.
Parameter descriptions lack constraint details. 'importance' accepts 0.0-1.0 but description does not state range. 'limit' defaults to 10 or 50 but no max is documented. 'tags' is an array but no length/item constraints stated. LLMs will pass invalid values without explicit constraints.