Cross-platform personal work memory: context for AI agents via CLI and MCP. Exposes sanitized user context (habits, facts, summaries, task units, workflow) to AI agents without raw keystrokes.
DayRecord MCP exposes 11 tools with clear naming (verb_noun pattern) and detailed descriptions that explain WHEN to use each tool. However, input schemas are largely absent or minimal, most tools lack explicit JSON Schema definitions with type constraints. Descriptions are strong (100-250 chars, well above the 10-char minimum) and include context hints ('prefer get_agent_context'), but parameter schemas are missing type definitions, enums, and validation rules. Output schemas are not documented. Error handling is implicit (read-only vs side-effect risk labels) but lacks recovery guidance. Security is reasonable (no secrets in params, read-only annotations), but composition could be tighter, some tools overlap (get_agent_context vs get_today_context + get_user_profile).
[Side-effect] Consolidate memory: behavioral patterns, task units, and facts (optional `day`). When to use: user asks to extract insights, mine habits, name task segments, or refresh facts after a work block; heavier than generate_today_summary.
[Side-effect] Generate a work summary via DayRecord's trusted LLM (optional `day`, default today). When to use: user asks to generate/refresh today's recap and read-only data is missing or stale; requires capture IPC + consent.
[Read-only] **Primary entry** — unified AgentContext JSON (schema 1.0.0): now, today, goals, open_threads, facts, profile, summaries, workflow_edges, automation_policy, unknowns, freshness, recording. When to use: always call this first for user context, intent inference, or proactive assistance; replaces calling get_today_context + get_user_profile + what_working_on_now separately. Optional `day` (YYYY-MM-DD).
[Read-only] Recent daily work summaries as sanitized Markdown (`days` defaults to 7). When to use: weekly recap, trend across days, or comparing workload over time—not for the current moment.
[Read-only] Recording status: `recording_state_db` (persisted) vs `control_ipc_online` (live service). When to use: diagnose side-effect failures, verify GUI/daemon is up, or check if capture is on—does not start the daemon.
Input schemas lack type definitions and constraints. Most tools show only parameter names and descriptions; no JSON Schema with 'type', 'enum', 'minimum', 'maximum', or 'pattern' fields visible. LLMs cannot validate inputs or understand allowed ranges.
Output schemas not documented. Tools return structured data (AgentContext JSON, MarkdownOutput, RecordingStatusOutput) but no schema definitions visible in source. LLMs cannot plan downstream tool calls or extract fields reliably.
Overlapping tool responsibilities. get_agent_context is described as a 'primary entry' that replaces calling get_today_context + get_user_profile + what_working_on_now separately. This redundancy wastes LLM reasoning cycles and invites wrong tool selection.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
[Read-only] Today's sanitized context: summary, facts, and behavioral task units (Markdown). When to use: human-readable digest only; prefer get_agent_context for structured intent work.
[Read-only] Habit profile and active facts (sanitized JSON, no raw keystrokes). When to use: only if you need ContextBundle without goals/threads; prefer get_agent_context.
[Side-effect] Pause DayRecord capture. When to use: user explicitly wants privacy, a meeting, screen share, or to stop logging; do not call preemptively.
[Read-only] Search active facts by keyword (sanitized JSON). When to use: you know a topic, project, tool, or name and need matching facts; prefer get_user_profile for a full portrait.
[Side-effect] Resume DayRecord capture. When to use: after pause_recording or when user asks to start recording again; requires capture IPC.
[Read-only] What the user is likely doing now: app, window, task name (no keystrokes). When to use: lightweight now-only snapshot; get_agent_context includes this under `now`.
Error handling lacks recovery guidance. Tools are labeled with risk categories (READ_ONLY, WRITE, REVERSIBLE) but no error responses documented. If consolidate_memory fails, what should the LLM do next? No guidance provided.
Optional parameters lack defaults or constraints. 'day' parameter (YYYY-MM-DD format) appears in multiple tools but no validation rule, default behavior, or error message for invalid dates documented.