Git tells you what changed; this records why the assistant did it and what it was working on at the time, in a field that is required rather than optional. That is what makes `search_logs` worth running at the start of a session — filtering by type and date gets you back the reasoning, not just the diff. The catch is that nothing logs automatically: without an instruction in your rules file the server sits idle.
An MCP server that gives a coding assistant somewhere to record what it did and why. Each entry is JSON on disk with a summary, structured details, the intention behind the action and the surrounding context, linked to a parent entry and to related entries — so a later session can search the history and pick the work back up.
- An activity recorded under one of six types — `command_execution`, `code_generation`, `file_operation`, `error_encountered`, `decision_made`, `conversation` — with summary, intention, context and free-form details, at a level of `debug`, `info`, `warn` or `error` — `log_activity`
- Hierarchy and ordering across entries: `parentId` for nesting, `sequence` for order, and `relatedIds` for grouping work that belongs together
- Saved log files listed recursively, with paging and a directory depth limit — `get_log_files`
- Logs searched by type, level, date range, free text, parent id, related ids and sequence range, with paging — `search_logs`
- Entries written as date-based JSON files in a directory you name per call, created for you if it does not exist
No account and no key — it writes to your own filesystem. Every tool takes `logsDir` as an absolute path; relative paths are not accepted. The npm package name is `roo-activity-logger` (0.2.0) and it runs without cloning via `npx -y github:annenpolka/roo-logger`. Logging only happens if the assistant is told to do it, so add a rule to your `CLAUDE.md` or your Cline/Roo-Code rule file instructing it to log through this server and to search the logs before starting.
One command — npx -y github:annenpolka/roo-logger
