MCP stdio server exposing your local macOS activity timeline to Claude, Cursor, Zed, and other MCP hosts.
18 tools with explicit schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. Naming is generally verb-forward (current_activity, timeline_range, kill_app) but some are vague (timeline_query, diagnose_system_slowdown). Schemas present but sparse, many parameters lack type info or descriptions. No documented output schemas. Error handling absent. Tool descriptions range 34 - 392 chars (within baseline 194 avg), but parameter-level docs are nearly missing. Composition is reasonable (single responsibility per tool), but chaining support unclear, no documented IDs returned for downstream tool calls.
Aggregate durations grouped by app or bundle over a period.
Returns the frontmost app, session duration, focus mode, and idle state.
Get the current IDE context: repository, file, and app.
Diagnose system slowdown by analyzing process activity and resource usage.
Full-text search over captured events within a time window.
List files touched in a repository, ordered by most recent.
Terminate a running app by bundle_id or by pid (exactly one). Uses the same safety rails as rule-driven kills.
Parameter descriptions almost entirely missing. Rubric requires 100% of A+ tools have param descriptions; this server has ~5% coverage. E.g., 'app_filter' in timeline_range, 'limit' in events_search, 'period'/'group_by' in app_usage lack any explanation of valid values, ranges, or semantics.
Output schemas not documented. Rubric baseline: 100% of A+ tools have documented return types. No tool specifies what fields the response contains, their types, or how to chain results to downstream tools. E.g., timeline_range returns collapsed sessions but structure is opaque.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
Detect launchd restart storms (rapid repeated crashes).
List live macOS processes with memory/CPU and an app category. Supports sort, limit, filter-by-category, and a minimum-memory filter. Read-only.
List all rules, optionally filtered to enabled-only.
Propose a new rule from a natural-language description. Always dry-run.
List recent projects with time spent, grouped by repository.
Explain a rule: NL, compiled DSL, recent firings, dry-run stats.
Set macOS focus mode; pass null to clear.
Enable or disable an existing rule by id.
Rank repositories by total time spent.
Answer a natural-language question about the timeline.
Return collapsed activity sessions between two timestamps.
No error handling or recovery guidance. Rubric requires error responses tell LLM what to do next and categorize errors as retryable/user-fixable/fatal. No tool documents failure modes, invalid input handling, or recovery paths. E.g., kill_app with invalid bundle_id returns nothing; timeline_range with malformed dates returns nothing.
Two tools marked 'not implemented' (timeline_query, app_usage) but still enabled and registered. Returning {'message': 'not implemented'} wastes agent calls and provides no guidance. Either implement, disable, or return a clear error with alternatives.
Destructive tool (kill_app) lacks confirmation/dry-run pattern. Rubric: 'Irreversible operations should support dry-run or confirmation.' kill_app terminates processes with no undo. No dry-run mode, no confirmation step, no audit trail documented.