Skip to main content
Glama
nocoo

MCP Work History Server

by nocoo

📋 MCP Work History Server

🤖 A Model Context Protocol (MCP) server that allows AI tools to log their activities to daily worklog files with detailed tracking of tool names, AI models, and timestamps.

✨ Features

  • 🕐 Precise timestamps - Logs activities with HH:MM format

  • 🔧 Tool tracking - Records which AI tool performed the action

  • 🧠 Model tracking - Tracks which AI model was used (e.g., gemini-2.5-pro, claude-3-sonnet)

  • 📊 Comprehensive metrics - Token usage, context length, duration, cost tracking

  • 🏷️ Tagging system - Categorize activities with custom tags

  • ✅❌ Success/failure tracking - Log both successful operations and errors

  • 📁 Daily organization - Creates separate markdown files for each day

  • 📝 Clean format - Bullet-point style entries for easy scanning

  • 🎯 MCP compatible - Works with any MCP-enabled AI client

Related MCP server: Changerawr MCP Server

🚀 Installation

npm install

🎮 Usage

Start the MCP server:

npm start

Or run in development mode with auto-restart:

npm run dev

🛠️ MCP Tool

The server provides one tool:

log_activity

Logs an AI tool's activity to the current day's worklog file in a concise, scannable format.

Parameters:

Required:

  • tool_name (string): Name of the AI tool (e.g., "Warp", "Claude Code", "GitHub Copilot")

  • log_message (string): Detailed description of what was accomplished

Optional:

  • ai_model (string): AI model used (e.g., "gemini-2.5-pro", "claude-3-sonnet", "gpt-4")

  • tokens_used (number): Total tokens consumed in the request

  • input_tokens (number): Input tokens used (alternative to tokens_used)

  • output_tokens (number): Output tokens generated (alternative to tokens_used)

  • context_length (number): Context window length used (in thousands)

  • duration_ms (number): Duration of the operation in milliseconds

  • cost_usd (number): Estimated cost in USD

  • success (boolean): Whether the operation was successful (defaults to true)

  • error_message (string): Error message if operation failed

  • tags (array): Tags to categorize the activity (e.g., ["coding", "debugging", "refactoring"])

Example log entries:

# 📝 Work Log - 2024-01-15

- ✅ 08:31 - Warp (gemini-2.5-pro): Refactored authentication module to use JWT tokens (1250 tokens | 8k ctx | 2.3s | $0.0043 | [refactoring, auth])
- ✅ 09:15 - Claude Code (claude-3-sonnet): Fixed database connection pooling issue (850→320 tokens | 1.1s | $0.0021)
- ❌ 10:42 - GitHub Copilot (gpt-4): Attempted to implement user profile endpoint (❌ Timeout error | [coding, api])
- ✅ 11:30 - Warp: Quick code review and suggestions (500 tokens | 0.8s)

📂 Log File Structure

Logs are stored in the logs/ directory with the naming pattern worklog-YYYY-MM-DD.md.

Each log file contains:

  • 📝 Emoji-enhanced date header

  • 🕐 Timestamped bullet-point entries

  • 🔧 Tool name and AI model information

  • 📋 Concise activity descriptions

⚙️ MCP Configuration

For Warp AI

Add this server to your Warp MCP configuration:

{
  "mcp-work-history": {
    "command": "node",
    "args": ["/Users/your-username/path/to/mcp-work-history/src/index.js"],
    "env": {},
    "working_directory": null,
    "start_on_launch": true
  }
}

For Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "work-history": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-work-history/src/index.js"]
    }
  }
}

Example Usage in AI Tools

Once configured, AI tools can log their activities like this:

Basic usage:

log_activity({
  tool_name: "Warp",
  log_message: "Created React component for user dashboard"
})

With comprehensive metrics:

log_activity({
  tool_name: "Warp",
  ai_model: "gemini-2.5-pro",
  log_message: "Refactored authentication system with OAuth integration",
  tokens_used: 1250,
  context_length: 8,
  duration_ms: 2300,
  cost_usd: 0.0043,
  success: true,
  tags: ["refactoring", "auth", "oauth"]
})

Error logging:

log_activity({
  tool_name: "GitHub Copilot",
  ai_model: "gpt-4",
  log_message: "Attempted to implement user profile endpoint",
  input_tokens: 800,
  output_tokens: 0,
  success: false,
  error_message: "Timeout error",
  tags: ["coding", "api"]
})

🗂️ Project Structure

mcp-work-history/
├── 📄 src/index.js          # Main MCP server code
├── 📁 logs/                 # Daily worklog files (auto-created)
│   ├── worklog-2024-01-15.md
│   └── worklog-2024-01-16.md
├── 📦 package.json          # Dependencies and scripts
├── 🚫 .gitignore           # Git ignore rules
└── 📋 README.md            # This file

🤝 Contributing

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add some amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

🎯 Real-World Example: Warp AI Integration

Here's how to set up automatic activity logging in Warp AI:

Step 1: Configure MCP Server in Warp

Add the following to your Warp MCP configuration:

{
  "mcp-work-history": {
    "command": "node",
    "args": ["/Users/nocoo/Workspace/mcp-work-history/src/index.js"],
    "env": {},
    "working_directory": null,
    "start_on_launch": true
  }
}

Step 2: Add Logging Rule to Warp

Configure Warp with this rule to automatically log AI activities:

Rule: "When AI task is done, use mcp-work-history to log this time AI task details. Send AI tool name (Warp), model used, detailed time, and a brief summary of this time task and result."

Step 3: See It in Action

Warp MCP Work History Integration

Screenshot showing the MCP Work History server automatically logging AI activities in Warp

What Gets Logged

With this setup, every AI interaction in Warp will automatically create entries like:

# 📝 Work Log - 2024-12-06

- ✅ 14:32 - Warp (gemini-2.5-pro): Refactored React component to use custom hooks for state management (1240 tokens | 4.2s | [refactoring, react])
- ✅ 14:45 - Warp (gemini-2.5-pro): Fixed TypeScript type errors in authentication module (890 tokens | 2.1s | [bugfix, typescript])
- ✅ 15:10 - Warp (gemini-2.5-pro): Added comprehensive unit tests for user service (1560 tokens | 3.8s | [testing, unit-tests])

Benefits

  • 📊 Automatic tracking - No manual logging required

  • 🔍 Detailed insights - Track token usage, performance, and costs

  • 📈 Progress monitoring - See your daily coding accomplishments

  • 🏷️ Activity categorization - Organize work with tags

  • 💰 Cost tracking - Monitor AI usage costs over time

📄 License

MIT License - see the LICENSE file for details.

Available Tools

1 tool
log_activityC

Log AI tool activity to a daily worklog file with comprehensive metrics

ParametersJSON Schema
NameRequiredDescriptionDefault
tool_nameYesName of the AI tool that performed the activity (e.g., 'Warp', 'Claude Code', 'GitHub Copilot')
log_messageYesDetailed log message describing what was accomplished
ai_modelNoAI model used (e.g., 'gemini-2.5-pro', 'claude-3-sonnet', 'gpt-4')
tokens_usedNoTotal tokens consumed in the request (optional)
input_tokensNoInput tokens used (optional)
output_tokensNoOutput tokens generated (optional)
context_lengthNoContext window length used (optional)
duration_msNoDuration of the operation in milliseconds (optional)
cost_usdNoEstimated cost in USD (optional)
successNoWhether the operation was successful (optional, defaults to true)
error_messageNoError message if operation failed (optional)
tagsNoTags to categorize the activity (e.g., ['coding', 'debugging', 'refactoring']) (optional)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'comprehensive metrics' but doesn't specify file location, format, append vs overwrite behavior, permissions needed, rate limits, or error handling. For a logging tool with 12 parameters, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that clearly states the core purpose. It's appropriately sized for the tool's complexity, though it could potentially be more front-loaded with critical behavioral information given the lack of annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a logging tool with 12 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what 'comprehensive metrics' means in practice, how the logging integrates with systems, what format the worklog uses, or what happens on failure. The agent would need to guess about important behavioral aspects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 12 parameters thoroughly. The description adds no specific parameter information beyond the generic 'comprehensive metrics' mention, which doesn't provide additional semantic value beyond what's in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Log AI tool activity') and destination ('to a daily worklog file with comprehensive metrics'), providing a specific verb+resource combination. However, without sibling tools for comparison, we cannot assess differentiation from alternatives, so it doesn't reach the highest score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus other logging or tracking methods, nor does it mention prerequisites, frequency recommendations, or integration context. It simply states what the tool does without usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3/5.0
Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The tool's purpose is clearly defined and distinct by default.

Naming Consistency5/5

A single tool inherently has perfect naming consistency, as there are no other tools to compare it against. The name 'log_activity' follows a clear verb_noun pattern.

Tool Count2/5

A single tool is too few for a server with a broad purpose like 'Work History,' which suggests tracking or managing activities. This minimal set severely limits functionality and likely leaves significant gaps in coverage.

Completeness1/5

The server is severely incomplete for a work history domain. It only allows logging activity but lacks essential operations like retrieving, updating, deleting, or querying logs, making it impossible for agents to perform basic CRUD workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nocoo/mcp-work-history'

If you have feedback or need assistance with the MCP directory API, please join our Discord server