roo-activity-logger
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@roo-activity-logger Record the file operation I just did"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
Related MCP server: repro-mcp
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 contextFor Developers: Local Setup
To develop or customize locally, clone the repository and build:
# Clone the repo
git clone https://github.com/annenpolka/roo-logger.git
cd roo-logger
# Install dependencies
npm install
# Build
npm run buildExample 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
Name | Required | Type | Description |
| Yes | string | Activity type ( |
| Yes | string | Short summary of the activity |
| Yes | string | Purpose or intention |
| Yes | string | Context information |
| Yes | string | Save directory (absolute path only) |
| No | string | Log level ( |
| No | object | Additional details (any JSON) |
| No | string | Parent activity ID |
| No | number | Sequence number |
| No | string[] | 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
Name | Required | Type | Description |
| Yes | string | Directory to search (absolute path only) |
| No | number | Max files to retrieve (default: 10) |
| No | number | Number of files to skip (default: 0) |
| No | string | Log file prefix (default: |
| No | string | Log file extension (default: |
| No | number | Max 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
Name | Required | Type | Description |
| Yes | string | Log directory (absolute path only) |
| No | string | Log file prefix (default: |
| No | string | Log file extension (default: |
| No | string | Filter by activity type ( |
| No | string | Filter by log level ( |
| No | string | Start date (YYYY-MM-DD) |
| No | string | End date (YYYY-MM-DD) |
| No | string | Search text in summary or details |
| No | number | Max logs to retrieve (default: 50) |
| No | number | Number of logs to skip (default: 0) |
| No | string | Filter by parent activity ID |
| No | number | Sequence number lower bound |
| No | number | Sequence number upper bound |
| No | string | Filter by related activity ID |
| No | string[] | Filter by any of related activity IDs |
License
MIT
Available Tools
3 toolsget_log_filesC
Get a paginated list of available log files in the specified directory with filtering options
Inputs: logsDir (required), limit, offset, logFilePrefix, +2 more.
log_activityB
Record an activity log entry with structured data for tracking development activities, decisions, and context
Inputs: type (required), summary (required), intention (required), context (required), +6 more.
search_logsC
Search and filter activity logs with various criteria including date ranges, text search, and activity relationships
Inputs: logsDir (required), logFilePrefix, logFileExtension, type, +11 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
Each tool has a clear, distinct purpose: listing log files, recording an activity, and searching logs. There is no overlap or ambiguity between them.
All tool names follow a consistent verb_noun snake_case pattern (get_log_files, log_activity, search_logs), making them predictable and easy to understand.
Three tools is an appropriate scope for an activity logger, covering the essential operations: listing available files, recording entries, and searching. Not too few or too many.
The tool surface covers the core activities of logging and retrieval, but lacks update/delete functionality or a way to view raw log file contents. Minor gap, but functional for basic use.
Maintenance
Related MCP Connectors
Query application logs, traces, and metrics from your AI coding assistant via Foam's MCP server.
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
MCP server that lets your AI assistant build and deploy apps, hosting each one at a live URL.
An MCP server that gives your AI access to the source code and docs of all public github repos
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server that supercharges AI assistants with powerful tools for software development, enabling research, planning, code generation, and project scaffolding through natural language interaction.1169 npm102MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that logs AI-assisted scientific computing sessions, capturing prompts, responses, decisions, and environment snapshots to human-readable markdown files for reproducibility.MIT
- AlicenseNot gradedqualityDmaintenanceThis MCP server integrates with Journey Log to automatically document development journeys, enabling AI assistants to create, update, and retrieve documents, capture conversations, and manage code snippets.3 npmMIT
- AlicenseNot gradedqualityDmaintenanceA local MCP server for AI agents to log activities, query logs, and leave notes for each other, featuring a web UI and REST API.MIT