Model Context Protocol (MCP) server for Logica Mind memory service. Exposes memory verbs as MCP tools so MCP clients (Claude Code, Cursor, Windsurf) can use Logica Mind as their memory. Implements JSON-RPC 2.0 over stdio with standard handshake using only the standard library.
26 tools with complete schemas and descriptions, but significant gaps in parameter documentation and error handling guidance. Tool names follow verb_noun convention well (lm_remember, lm_recall, lm_execute). Descriptions average ~80 chars, below the 194-char baseline for A+ tools. Most parameters lack descriptions (e.g., lm_remember's 'session' param has no description). No output schemas documented. Error handling is absent, tools do not guide recovery or categorize failures. Destructive tools (lm_forget, lm_execute) lack confirmation patterns. Risk annotations present but not leveraged in descriptions.
Answer a question about the user, reasoning over the dialectic user model.
Load-bearing connectors: entities whose removal would fragment the graph (articulation points) — the brokers between otherwise-separate clusters.
Render a context-budget meter from token counts.
Derived backlinks for a memory — entities it mentions, the relations among them, and other memories that touch the same entities or category. No manual links needed.
Assemble a context block (user model + relevant memory) within a token budget.
Facts whose object changed over time (a subject+predicate with more than one value in its history).
No output schemas documented. LLMs cannot predict response structure, forcing them to parse unstructured output and plan downstream calls blindly.
Parameter descriptions missing or minimal. 'session' param in lm_remember, lm_recall, lm_ingest_conversation lacks description. 'observer' and 'observed' in peer tools lack context. LLMs cannot infer parameter semantics from names alone.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Memory changelog — what was learned within a time window [since, until].
The categorization profile: facts grouped by life/work dimension and Maslow tier, with the open categories under each.
Run a command and return a token-saving summary (truncated output).
Delete memories by id or by semantic query.
Git-aware status — branch, ahead/behind, staged files, recent commits, diff.
How is entity A related to entity B? Returns the confidence-weighted shortest path between them as an ordered chain of typed relationships.
Ingest a full conversation (list of {role, content}): logs turns, extracts facts, derives user observations.
List active MCP servers and estimate their context cost.
Record what one peer (observer) learned about another (observed) — directional theory-of-mind.
Record an observation about the user (feeds the dialectic user model).
What `observer` knows/believes about `observed` (a directional profile).
Ask what `observer` would say about `observed` (theory-of-mind query).
Pin a memory by id so it always surfaces first in recall (or unpin it).
Retrieve the most relevant memories for a query.
Synthesize insights from recent memories (what changed / what's notable).
Store a durable fact/note in long-term memory.
Project DNA — detect languages, frameworks, key files, structure.
Hide a memory from recall until a date (ISO), or wake it now.
Per-layer counts of stored memories.
Predict the missing edge: entity pairs with no direct relation but a strong shared neighbourhood (Adamic-Adar). The links you probably should have but never authored.
Destructive tools (lm_forget, lm_execute) lack confirmation or dry-run patterns. lm_execute runs arbitrary commands with no safety gate. lm_forget deletes memories with no undo guidance. Agents can cause irreversible data loss.
No error handling guidance. Tools do not document what errors are retryable, user-fixable, or fatal. lm_execute can timeout or fail to find interpreters, no recovery hints provided.
Tool descriptions too brief (avg ~80 chars vs 194-char baseline). lm_contradictions: 'Facts whose object changed over time...' lacks WHEN to use it. lm_bridges: 'Load-bearing connectors...' assumes LLM knows graph theory. Descriptions should state WHAT, WHEN, and WHY.