Self-hosted memory, sessions, and dashboard for AI coding agents with MCP tools for memory management, project handling, prompts, relations, and observability
Rembric MCP server demonstrates solid foundational quality with 21 well-named tools covering memory management, projects, prompts, and relations. All tools have descriptions (avg ~120 chars) and input schemas with typed parameters. However, output schemas are not documented in the provided source, parameter descriptions vary in completeness, and error handling guidance is minimal. Tool naming follows verb_noun convention consistently (memory.save, memory.search, project.use). Most parameters include type and description, but some lack constraint details (e.g., limit ranges, format specifications). The server targets a specialized domain (persistent memory for agents) with coherent tool composition, but lacks production-grade error recovery patterns and output documentation.
Exempt from the per-tool authorization gate: it accesses no stored data (mcp-api spec — every other tool is classified read/write and gated). Returns server version, update instructions, and plugin status information.
Extract and save key learnings from text (parses ## Key Learnings section). Runs the same curation pipeline as memory.save: convergent-topic handling, inline embedding, and save-time candidate detection.
Proactive verdict on two arbitrary memories: declare a relation (supersedes, conflicts_with, related, compatible, scoped) with reason and confidence.
Record a verdict (useful/not_useful/needs_review) over one or several memories in one call.
Retrieve context for the current session: recent memories, active sessions, and curated prompts.
Observability tool: returns database integrity, embeddings backlog, entity index status, consolidation run history, active sessions, and review queue depth.
Output schemas not documented. No tool returns a documented response structure, making it impossible for LLMs to plan downstream calls or extract required fields. This violates pattern:tool and pattern:response-shaper.
Error handling guidance absent. Tools provide no recovery hints (e.g., 'If memory not found, try search_memories()' or 'Invalid verdict: must be useful|not_useful|needs_review'). Violates pattern:recovery-guide.
Numeric parameter constraints missing. memory.search (limit, offset, snippet, relations_limit), memory.context (sessions_limit, prompts_limit, memories_limit), and memory.timeline lack min/max bounds. LLMs may pass absurd values (e.g., limit=999999).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Fetch one or more memories by id in a scoped call. Out-of-scope/unknown ids come back in notFound.
Close a pending judgmentId from memory.save with a relation verdict (supersedes, conflicts_with, related, compatible, scoped, not_conflict). Supports batch judging.
Save a memory with type, title, content, optional tags, topic_key, and sessionId. Supports convergent-topic handling and inline embedding before candidate detection.
Save a curated prompt with content, title, optional tags, and optional replaces id.
Search memories by query, entity, type, tag, topic_key, status. Supports hybrid search with optional relation expansion, pagination, and field filtering.
Search curated prompts by query, sessionId, agent, with optional includeDeleted flag and pagination.
End the current session and optionally provide a summary.
Start a new agent session with optional title and description.
Summarize the current session and end it.
Scoped observability: returns memory counts by status/type, session counts by status, and queue-depth signals (needsReviewTotal, pendingJudgmentsTotal).
Deterministic family heuristic (no LLM) to suggest a topic_key from type, title, and content. Returns topic_key, reason (if null), occupied status, occupantId/Title, and nearby keys sharing a prefix.
Retrieve memories before and after a given time window for temporal context.
Get the current project context. Returns slug, projectId, source, and suggestedSlugs from roots discovery.
List all readable projects (filtered by token scope). Returns slug, displayName, archived status, and activeMemoryCount.
Switch to a project by slug. Supports autocreate and confirmSwitch flags. Blocked while a session is active.
Mutually exclusive parameters not documented. memory.get (id vs ids), memory.confirm (id vs ids), memory.judge (judgmentId+relation vs judgments) require exactly one variant, but descriptions do not state this constraint. LLMs may pass both, causing ambiguous calls.
Batch operation error handling unclear. memory.judge and memory.confirm accept batch inputs (1-100 items) but provide no guidance on partial failure (e.g., 'If 3 of 50 judgments fail, what is returned?'). Violates pattern:error-classification.