Skip to main content
Glama

RescueTime MCP Server

An MCP (Model Context Protocol) server that provides Claude Desktop with access to your RescueTime productivity data, including daily summaries, activity tracking, and productivity trends.

Features

  • Daily Summary: Get your productivity pulse, time logged, and productive vs distracting breakdown

  • Productivity Trends: Track your productivity score over the past week or more

  • Activity Data: See which applications and websites you spent time on

  • Category Breakdown: View time by category (Development, Communication, etc.)

  • Hourly Analysis: Identify your peak productivity hours

Related MCP server: Wakapi MCP Server

Prerequisites

  • Python 3.11+

  • uv package manager

  • A RescueTime account (free or premium)

  • RescueTime API key

Setup

1. Clone and Install

git clone https://github.com/JasonBates/rescuetime-mcp.git
cd rescuetime-mcp
uv sync

2. Get Your API Key

  1. Go to rescuetime.com/anapi/manage

  2. Sign in with your RescueTime account

  3. Create a new API key or copy an existing one

3. Configure Claude Desktop

Add the server to your Claude Desktop config at: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "rescuetime": {
      "command": "uv",
      "args": [
        "--directory",
        "/Users/YOUR_USERNAME/Projects/rescuetime-mcp",
        "run",
        "rescuetime-mcp"
      ],
      "env": {
        "RESCUETIME_API_KEY": "your_api_key_here"
      }
    }
  }
}

Replace YOUR_USERNAME with your actual username and add your API key.

4. Restart Claude Desktop

Quit and reopen Claude Desktop. You should see "rescuetime" in the MCP servers list.

Usage

Once configured, you can ask Claude things like:

  • "How productive was I today?"

  • "Show me my productivity trend for the past week"

  • "What apps did I use most today?"

  • "What categories did I spend time on yesterday?"

  • "When was I most productive today?"

Available Tools

Tool

Description

get_today_summary

Today's productivity pulse, time logged, and breakdown

get_productivity_trend

Productivity score history (default 7 days)

get_activity_data

Top applications/websites by time spent

get_category_breakdown

Time spent by category

get_hourly_productivity

Productivity breakdown by hour

Tool Details

get_today_summary

Returns a complete daily overview including:

  • Productivity pulse (0-100 score)

  • Total time logged

  • Productive vs distracting percentages

  • Breakdown by productivity level (very productive → very distracting)

get_productivity_trend

Shows daily productivity pulse with visual bars over multiple days. Useful for identifying patterns and weekly trends.

get_activity_data

Lists specific applications and websites ranked by time spent. Each activity shows:

  • Productivity classification ([++] to [--])

  • Duration

  • Category

get_category_breakdown

Groups time by high-level categories like Software Development, Communication, Reference & Learning, Social Networking, etc.

get_hourly_productivity

Reveals when during the day you were most/least productive. Helps identify peak hours for scheduling deep work.

Troubleshooting

"Authentication error"

Make sure your API key is correctly set in the Claude Desktop config's env section.

No data showing

RescueTime needs to be running and logging data on your devices. Check that the RescueTime app is active.

Rate limiting

The RescueTime API has rate limits. If you encounter errors, wait a few minutes before retrying.

Development

# Install dev dependencies
uv sync --dev

# Run tests
uv run pytest

# Test with MCP Inspector
npx @modelcontextprotocol/inspector uv run rescuetime-mcp

License

MIT

Available Tools

5 tools
get_activity_dataA

Get top activities/applications by time spent.

Args: date_str: Date to query - 'today', 'yesterday', or 'YYYY-MM-DD' limit: Maximum number of activities to show (default: 10)

Shows which specific applications and websites you spent time on, ranked by duration. Includes productivity classification for each.

ParametersJSON Schema
NameRequiredDescriptionDefault
date_strNotoday
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are present, and while the description indicates what the tool does, it does not explicitly state that the operation is read-only or disclose any potential side effects, rates, or auth requirements.

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

Conciseness5/5

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

The description is concise and well-structured, front-loading the core purpose and providing necessary details without unnecessary verbosity.

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

Completeness4/5

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

With an existing output schema and clear description of the output content (ranked activities with classification), the description is nearly complete. Missing is an explicit statement about the read-only nature.

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

Parameters5/5

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

Schema description coverage is 0%, but the description clearly explains both parameters: date_str with valid formats and limit with its meaning and default, adding value beyond the schema.

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

Purpose5/5

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

The description clearly states it retrieves top activities/applications by time spent, with details on ranking and productivity classification, distinguishing it from siblings like get_category_breakdown.

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

Usage Guidelines3/5

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

The description implies the tool should be used to see top activities, but it does not explicitly state when to use this tool versus alternatives or provide when-not-to-use guidance.

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

get_category_breakdownA

Get time spent by category.

Args: date_str: Date to query - 'today', 'yesterday', or 'YYYY-MM-DD'

Shows high-level categories like Software Development, Communication, Reference & Learning, etc. with time and productivity classification.

ParametersJSON Schema
NameRequiredDescriptionDefault
date_strNotoday

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided, so description must fully disclose behavior. It mentions return content but lacks details on side effects, auth, or error handling.

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

Conciseness5/5

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

The description is short, front-loaded with the core action, and includes all necessary information without extra words.

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

Completeness3/5

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

With an output schema present and no annotations, the description adequately explains what is returned but omits potential edge cases or additional behavior.

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

Parameters4/5

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

The description fully explains the date_str parameter with accepted formats and default, compensating for zero schema coverage.

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

Purpose5/5

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

The tool's description clearly states it retrieves time spent by category, listing example categories and distinguishing it from siblings like get_activity_data or get_hourly_productivity.

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

Usage Guidelines3/5

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

The description implies usage for a specific date but does not provide explicit when-to-use or alternative guidance compared to sibling tools.

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

get_hourly_productivityA

Get productivity breakdown by hour.

Args: date_str: Date to query - 'today', 'yesterday', or 'YYYY-MM-DD'

Shows when during the day you were most/least productive. Useful for identifying peak productivity hours and scheduling deep work.

ParametersJSON Schema
NameRequiredDescriptionDefault
date_strNotoday

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does not disclose whether the operation is read-only (though implied by 'get'), whether any data is cached or real-time, or if special permissions are needed. The lack of explicit behavioral traits is a gap.

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

Conciseness5/5

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

The description is compact: three sentences plus a parameter definition. The main purpose is stated first, followed by parameter clarification and a use-case sentence. Every sentence adds value without redundancy.

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

Completeness4/5

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

For a tool with output schema, the description need not explain return values. The single parameter is well-documented. However, it omits any comparison to sibling tools or prerequisites. Given simplicity, it is largely complete but could explicitly contrast with get_activity_data or get_productivity_trend.

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

Parameters5/5

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

The schema has 0% coverage with no description for date_str, but the description adds: 'Date to query - 'today', 'yesterday', or 'YYYY-MM-DD''. This provides valid formats and enumerations beyond the schema's type and default, fully compensating for the lack of schema descriptions.

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

Purpose5/5

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

The description clearly states 'Get productivity breakdown by hour' and 'Shows when during the day you were most/least productive'. The verb 'Get' and resource 'productivity breakdown by hour' are specific. It distinguishes from sibling tools like get_activity_data or get_productivity_trend by focusing on hourly granularity.

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

Usage Guidelines4/5

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

The description includes 'Useful for identifying peak productivity hours and scheduling deep work', which provides a clear use case. It does not explicitly state when not to use this tool or mention alternatives, but the given context is sufficient for guidance.

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

get_productivity_trendB

Get productivity pulse trend for the last N days.

Args: days: Number of days to look back (default: 7, max 14)

Shows the daily productivity pulse with visual bars and calculates averages. Useful for identifying patterns and trends over time.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It mentions that the output includes 'visual bars and calculates averages,' but does not describe data sources, update frequency, permissions, or side effects. This is minimal context for a tool that likely produces a visual response.

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 concise with four sentences. The first sentence states the purpose, followed by a structured argument explanation, then two sentences on output and usage. There is no fluff.

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

Completeness4/5

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

Given the tool has an output schema, the description does not need to detail return values, but it does mention visual bars and averages. The single parameter is well-documented. It lacks information on data freshness or timezone handling, but overall it is sufficiently complete for a simple trend tool.

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

Parameters4/5

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

The input schema has 0% description coverage, so the description compensates by explaining the 'days' parameter: 'Number of days to look back (default: 7, max 14).' This adds constraints and meaning beyond the raw 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 that the tool retrieves a productivity trend for a specified number of days, using a specific verb ('Get') and resource ('productivity pulse trend'). It provides context about daily pulse and averages, but does not explicitly differentiate from sibling tools.

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

Usage Guidelines3/5

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

The description suggests it is 'useful for identifying patterns and trends over time,' which implies a usage scenario. However, it does not provide explicit guidance on when not to use it or mention alternative tools among the siblings.

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

get_today_summaryA

Get today's complete RescueTime productivity summary.

This is the recommended daily check-in tool. Returns:

  • Productivity pulse (0-100 score)

  • Total time logged

  • Time breakdown by productivity level

  • Productive vs distracting percentages

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses the output but omits behavioral traits like read-only nature, frequency limits, or authentication needs.

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

Conciseness5/5

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

Two short paragraphs, front-loaded with purpose, then bullet-style list of returns. Every sentence is informative and efficient.

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

Completeness5/5

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

Given an output schema exists (context signal), the description suffices by listing key outputs. No other details needed for a parameterless daily summary tool.

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

Parameters4/5

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

The input schema has no parameters (0), so baseline is 4. The description adds no parameter info, which is acceptable as none exist.

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

Purpose5/5

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

The description clearly states it gets today's complete RescueTime productivity summary, lists specific return items, and positions itself as the 'recommended daily check-in tool', distinguishing it from siblings.

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

Usage Guidelines4/5

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

It explicitly recommends this tool for daily check-in but does not provide explicit when-not-to-use guidance or alternatives, though sibling tools imply different scopes.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • First observedget_activity_data
    • First observedget_category_breakdown
    • First observedget_hourly_productivity
    • First observedget_productivity_trend
    • First observedget_today_summary

TDQS

A4/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: get_activity_data focuses on specific applications/websites, get_category_breakdown on high-level categories, get_hourly_productivity on hourly patterns, get_productivity_trend on multi-day trends, and get_today_summary on a comprehensive daily overview. There is no overlap or ambiguity between these functions.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern starting with 'get_' followed by a descriptive noun phrase (e.g., get_activity_data, get_category_breakdown). This uniformity makes the tool set predictable and easy to understand at a glance.

Tool Count5/5

With 5 tools, this server is well-scoped for its purpose of providing RescueTime productivity insights. Each tool serves a unique and valuable function, covering key aspects like detailed activity data, category breakdowns, hourly analysis, trends, and daily summaries without being overwhelming or sparse.

Completeness4/5

The tool set covers the core productivity analysis domain comprehensively, including data retrieval, categorization, time-based patterns, and summaries. A minor gap is the lack of tools for modifying or configuring data (e.g., setting goals or adjusting classifications), but this is reasonable for a read-only analytics server focused on insights.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables comprehensive access to RescueTime productivity data and features through the Model Context Protocol. Supports analytics retrieval, focus session management, highlights creation, and offline time tracking through natural language interactions.
    11
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables tracking and analyzing development time through the Wakapi API. Provides tools to retrieve coding statistics, project details, leaderboards, and recent activity logs for productivity insights.
    8
    1
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides access to WakaTime coding analytics data through MCP tools. Enables querying coding stats, activity summaries, project lists, and time tracking information from your WakaTime account.
    MIT