Personal semantic thought storage and retrieval MCP server with vector embeddings and ltree scoping
mybrain demonstrates strong schema definition and thoughtful parameter design across 8 tools. All tools have descriptions (avg 180 chars) and comprehensive input schemas with proper enums and type constraints. Naming follows verb_noun convention (agent_capture, atelier_browse). However, output schemas are not documented in the source, LLMs cannot predict return structures. Error handling is present but minimal; most tools lack recovery guidance. The inline relations pattern in agent_capture is sophisticated but adds complexity. Overall: solid foundation with gaps in output documentation and error messaging.
Store a thought with schema-enforced metadata. Handles dedup, conflict detection, and supersedes relations. Pass 'relations' to link the new thought to existing thoughts in the same call (preferred over a follow-up atelier_relation call). Required: content, thought_type, source_agent, source_phase, importance.
Search for thoughts by semantic similarity. Returns ranked results with similarity scores.
Browse thoughts in the brain by scope, type, or status. Returns paginated results.
Hydrate the brain from external sources (subagent files, EVA state files). Discovers and imports thoughts from structured files.
Get the status of ongoing hydration operations. Returns progress and any errors.
Output schemas not documented. LLMs cannot predict return structures for any tool. agent_capture, agent_search, atelier_browse, atelier_trace, and atelier_hydrate all lack documented response schemas, forcing LLMs to guess field names and types for downstream chaining.
Minimal error recovery guidance. Tools return errors but do not guide LLMs on next steps. E.g., agent_capture rejects multi-scope decisions with a detailed error message (good), but agent_search and atelier_browse lack similar actionable error context.
atelier_stats and atelier_hydrate_status have generic descriptions (65 chars). 'Get statistics about the brain' and 'Get the status of ongoing hydration operations' lack context on WHEN to call them or what decisions they enable.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
Create or update relations between thoughts. Links two thoughts with a typed edge (supersedes, triggered_by, evolves_from, contradicts, supports, synthesized_from).
Get statistics about the brain: thought counts, types distribution, scope coverage, and consolidation status.
Trace the provenance and relations of a thought. Returns the thought, its relations, and related thoughts in a graph structure.
agent_capture's inline relations feature is powerful but underdocumented for LLM reasoning. The description explains the mechanism but not WHEN an agent should use inline relations vs. a follow-up atelier_relation call. No guidance on transaction semantics or rollback behavior.
Pagination not enforced. atelier_browse accepts limit and offset but no documented default limit or maximum. Large result sets could exhaust context windows. agent_search similarly lacks a documented default limit.