A personal, self-hostable context memory for LLMs, served as a remote MCP server on Cloudflare Workers.
Five tools with clear verb-noun naming (get_, list_, append_) and consistent descriptions (100-200 chars). All tools have explicit input schemas with Zod validation. Read tools are well-documented; write tool (append_journal) includes validation logic visible in source. However, parameter descriptions lack depth (e.g., 'tags' described as 'Optional free-form tags' without format/length guidance), and output schemas are documented only as JSON strings, not structured field definitions. Error handling is present but generic ('Unauthorized' message). No tool annotations (readOnlyHint, destructiveHint) despite clear read/write distinction.
Append a dated raw note to the owner's journal buffer (never curated context). Returns the generated entry id.
Return the owner's curated context as markdown: the full context, or one named section if `section` is given.
Return build metadata for the curated context (version, generated_at, source_rev, content_hash).
List raw journal entries (unpromoted notes), oldest first, optionally filtered by an ISO 8601 `since` timestamp and capped by `limit` (most recent matches).
List the curated context sections currently available, each with a content hash for staleness detection.
Output schemas documented as JSON strings, not structured field definitions. LLMs cannot parse 'JSON.stringify(sections)' to understand field types and plan downstream calls.
Parameter descriptions lack actionable constraints. 'tags' is 'Optional free-form tags', no guidance on format, length, or valid values. 'limit' is 'non-negative integer' but no max bound stated.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear semantic distinction. append_journal is destructive (writes to journal); get_* tools are read-only. Annotations enable safer agent planning.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
Error messages are generic ('Unauthorized: token does not grant access to this tool'). No recovery guidance or actionable next steps for LLM.
list_journal accepts 'since' (ISO 8601 timestamp) and 'limit' but no pagination cursor or total_count returned. Large journal buffers could exceed context window without proper pagination metadata.