Personal knowledge brain for OpenClaw — SQLite + FTS5 + vector embeddings, MCP-native
12 tools with complete schemas and descriptions, but significant gaps in parameter documentation and error handling. Most tool descriptions are adequate (50-150 chars) but lack actionable context for LLM selection. Parameters like 'type', 'tag', 'source' lack descriptions entirely. No error recovery guidance, no output schema documentation, no tool annotations. Naming is consistent (brain_* prefix) but generic verbs (brain_put, brain_get) don't clearly distinguish intent. No idempotency hints for write operations.
Get pages that link to a given slug
Read a page by slug
List pages with optional filters
Write or update a page (full markdown content)
Semantic search using FTS5 + vector embeddings
Read or write raw enrichment data for a page
FTS5 full-text search across all brain pages
Parameter descriptions missing or incomplete. 'type' param in brain_search and brain_list lacks description; 'source' in brain_raw undescribed; 'data' in brain_raw has no guidance on structure or format.
No output schema documentation. Tools return JSON but LLMs cannot infer field names, types, or structure. brain_search, brain_query, brain_list, brain_stats lack documented return types.
No error recovery guidance. Tools return raw errors (e.g. 'Page not found') without suggesting next steps. No actionable error messages to guide LLM retry or fallback behavior.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Brain statistics (page counts, links, embeddings)
Add or remove a tag from a page
List tags for a page
Get timeline entries for a page
Add a structured timeline entry to a page
Write operations (brain_put, brain_timeline_add, brain_tag, brain_raw) lack idempotency hints and confirmation patterns. No dry-run support or destructive operation warnings.
Generic tool names (brain_get, brain_put) do not clearly convey action intent. 'brain_put' could mean create, update, or replace. Ambiguous naming increases LLM selection errors.