icon for mcp server

Roo Activity Logger

STDIO

MCP server that automatically logs AI coding assistant activities for analysis.

Roo Activity Logger

日本語版はこちら

TL;DR

  • What is it? — This is an MCP server that automatically logs AI coding assistant activities such as command executions and code generation (supports Roo Code, Cline, Claude Code, etc.).
  • What does it do? — It saves activity history as JSON files, which you can search and analyze later.
  • How do I use it? — Add it to your Claude Code, Cline, or Roo-Code settings to enable automatic activity logging.

Overview

Roo Activity Logger is an MCP (Model Context Protocol) server that automatically records AI coding assistant development activities — including command executions, code generation, file operations, and more. It supports Claude Code, Cline, Roo-Code, and other MCP-compatible AI assistants. All logs are saved in JSON format, making it easy to search, analyze, and restore context at any time.

How activity logging works

flowchart TD A[Roo's Action] --> B[Select Activity Type] B --> C[Log via log_activity] C --> D[Provide Log Info<br>- Summary<br>- Details<br>- Intention<br>- Context] D --> E[Specify Save Directory] E --> F[Save as JSON file]

How to search logs and restore context when resuming a task

flowchart TD G[Resume Task] --> H[Search with search_logs] H --> I[Set Search Filters<br>- Type<br>- Date Range<br>- Text] I --> J[Retrieve Related Activities<br>- Parent/Child<br>- Sequence<br>- Related IDs] J --> K[Restore Context & Resume<br>- Review Past Intentions<br>- Understand Progress]

Sample Log Entry

Here is an example of a file_operation log entry saved as JSON:

{ "id": "75add15d-8d5b-4e60-b327-fde785050c86", "timestamp": "2025-04-10T01:58:02.905Z", "type": "file_operation", "level": "info", "summary": "Inserted mermaid diagram into README.md", "details": { "file": "README.md", "operation": "insert_content", "insertedLines": "mermaid code block", "position": "after overview section" }, "intention": "To visually explain the flow of saving and retrieving activities", "context": "Improving documentation for Roo Activity Logger", "parentId": "98280366-1de1-48e0-9914-b3a3409599b4" }

Each log contains:

  • Log level (debug, info, warn, error)
  • Summary
  • Details (any structured data)
  • Intention / Purpose
  • Context information
  • Parent activity ID (for hierarchy)
  • Sequence number (for ordering)
  • Related activity IDs (for grouping)

Logs are:

  • Saved as date-based JSON files
  • Searchable by type, level, date, text, etc.
  • Customizable — you can specify different save directories per activity

Features

  • Logs various activity types:

    • Command executions (command_execution)
    • Code generation (code_generation)
    • File operations (file_operation)
    • Errors (error_encountered)
    • Decisions (decision_made)
    • Conversations (conversation)
  • Each activity log includes:

    • Unique ID
    • Timestamp
    • Activity type
    • Summary, details, intention, context, and optional metadata

Usage (Recommended: via npx)

You can run Roo Activity Logger directly without cloning the repository by using npx.

Add this to your Cline, Roo-Code, or Claude Code configuration:

{ "mcpServers": { "roo-activity-logger": { "command": "npx", "args": ["-y", "github:annenpolka/roo-logger"], "env": {}, "disabled": false } } }

Then, add prompts to your rule files (for Cline/Roo-Code) or CLAUDE.md (for Claude Code) to ensure logging, for example:

## Important Always log activities using roo-activity-logger according to the logging rules. ## Preparation Check the current context with `git status`. Then, use roo-activity-logger's `search_logs` to review existing logs and identify current tasks. Be sure to perform the logging steps. ## Logging - Always use roo-activity-logger for all logs - Include stack traces and execution context - Record intention and context

For Developers: Local Setup

To develop or customize locally, clone the repository and build:

# Clone the repo (replace yourusername with your actual username/org) git clone https://github.com/annenpolka/roo-logger.git cd roo-logger # Install dependencies npm install # Build npm run build

Example configuration to use your local build:

{ "mcpServers": { "roo-activity-logger": { "command": "node", "args": ["/path/to/your/local/roo-logger/dist/index.js"], // adjust path accordingly "env": {}, "disabled": false } } }

Notes

  • The specified directory will be created automatically if it does not exist.

MCP Tools

log_activity — Record an activity

A tool to record an activity.

Basic example

{ "type": "command_execution", "summary": "Run npm command", "intention": "Update project dependencies", "context": "Preparing for new feature development", "logsDir": "/absolute/path/to/logs/activity" }

Parameters

NameRequiredTypeDescription
typeYesstringActivity type (command_execution, code_generation, file_operation, error_encountered, decision_made, conversation)
summaryYesstringShort summary of the activity
intentionYesstringPurpose or intention
contextYesstringContext information
logsDirYesstringSave directory (absolute path only)
levelNostringLog level (debug, info, warn, error). Default: info
detailsNoobjectAdditional details (any JSON)
parentIdNostringParent activity ID
sequenceNonumberSequence number
relatedIdsNostring[]Related activity IDs

Detailed example

{ "type": "file_operation", "summary": "Update README file", "intention": "Clarify documentation and improve usability", "context": "Improvements based on user feedback", "level": "info", "details": { "file": "README.md", "operation": "update", "changedLines": 15 }, "logsDir": "/absolute/path/to/logs/activity", "sequence": 3, "relatedIds": ["11223344-5566-7788-99aa-bbccddeeff00"] }

get_log_files — List saved log files

Lists saved log files recursively. You can specify the maximum search depth.

Basic example

{ "logsDir": "/absolute/path/to/logs" }

Parameters

NameRequiredTypeDescription
logsDirYesstringDirectory to search (absolute path only)
limitNonumberMax files to retrieve (default: 10)
offsetNonumberNumber of files to skip (default: 0)
logFilePrefixNostringLog file prefix (default: "roo-activity-")
logFileExtensionNostringLog file extension (default: ".json")
maxDepthNonumberMax directory depth (default: 3)

search_logs — Search saved logs

Searches saved logs with various filters.

Basic example

{ "logsDir": "/absolute/path/to/logs" }
{ "logsDir": "/absolute/path/to/logs", "type": "command_execution" }

Parameters

NameRequiredTypeDescription
logsDirYesstringLog directory (absolute path only)
logFilePrefixNostringLog file prefix (default: "roo-activity-")
logFileExtensionNostringLog file extension (default: ".json")
typeNostringFilter by activity type (command_execution, code_generation, file_operation, error_encountered, decision_made, conversation)
levelNostringFilter by log level (debug, info, warn, error)
startDateNostringStart date (YYYY-MM-DD)
endDateNostringEnd date (YYYY-MM-DD)
searchTextNostringSearch text in summary or details
limitNonumberMax logs to retrieve (default: 50)
offsetNonumberNumber of logs to skip (default: 0)
parentIdNostringFilter by parent activity ID
sequenceFromNonumberSequence number lower bound
sequenceToNonumberSequence number upper bound
relatedIdNostringFilter by related activity ID
relatedIdsNostring[]Filter by any of related activity IDs

License

MIT

Be the First to Experience MCP Now