RescueTime MCP Server

RescueTime MCP Server

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.

Category
Visit Server

README

RescueTime MCP Server

License: MIT Python 3.9+ Code style: black Checked with mypy

A comprehensive FastMCP server for integrating with the RescueTime API, providing tools to access productivity data, manage focus sessions, and interact with all RescueTime features through the Model Context Protocol (MCP).

Table of Contents

Features

  • Complete RescueTime API Coverage: Access all major RescueTime APIs including analytic data, daily summaries, alerts, highlights, focus sessions, and offline time tracking
  • FastMCP Integration: Built on the FastMCP framework for robust MCP server functionality
  • Async Support: Full asynchronous support for high-performance operations
  • Type Safety: Comprehensive type hints and Pydantic models for data validation
  • Error Handling: Robust error handling with custom exceptions and logging
  • Comprehensive Testing: Full test suite including unit tests, integration tests, and performance tests

Supported RescueTime APIs

1. Analytic Data API

  • Get detailed productivity analytics with customizable time ranges and filters
  • Support for different perspectives (rank, interval, member) and resolutions

2. Daily Summary Feed API

  • Access daily productivity summaries and pulse scores
  • Filter by date ranges

3. Alerts Feed API

  • Retrieve and manage productivity alerts
  • Dismiss unwanted alerts

4. Highlights Feed/POST API

  • View existing highlights
  • Create new productivity highlights

5. FocusTime APIs

  • Start and end focus sessions
  • Monitor current focus session status
  • Set custom focus duration

6. Offline Time POST API

  • Log offline work time
  • Add descriptions for offline activities

Installation

Prerequisites

  • Python 3.9 or higher
  • RescueTime account with API access
  • RescueTime API key

Install from Source

# Clone the repository
git clone https://github.com/ebowman/rescuetime-mcp.git
cd rescuetime-mcp

# Create and activate virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# For users - install basic package
pip install -e .

# For developers - install with development tools
pip install -e ".[dev]"

Configuration

Environment Variables

Set your RescueTime API key as an environment variable:

export RESCUETIME_API_KEY="your_rescuetime_api_key_here"

Alternatively, create a .env file in the project root:

RESCUETIME_API_KEY=your_rescuetime_api_key_here

Getting Your API Key

  1. Log in to your RescueTime account
  2. Go to https://www.rescuetime.com/anapi/manage
  3. Generate or copy your existing API key

Usage

Running the MCP Server

# Run directly
rescuetime-mcp

# Or using Python module
python -m rescuetime_mcp.server

# Check version
rescuetime-mcp --version

Available MCP Tools

  • get_analytic_data - Get detailed productivity analytics with filters
  • get_daily_summary_feed - Access daily productivity summaries
  • get_alerts_feed - Retrieve productivity alerts
  • dismiss_alert - Dismiss specific alerts
  • get_highlights_feed - View productivity highlights
  • post_highlight - Create new highlights
  • start_focus_session - Start FocusTime sessions
  • end_focus_session - End current focus session
  • get_focus_session_status - Check focus session status
  • post_offline_time - Log offline work time
  • health_check - Verify API connection

Development

# Create virtual environment  
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install with development dependencies
pip install -e ".[dev]"

# Install pre-commit hooks
pre-commit install

Running Tests

# Run all tests
pytest

# Run with coverage
pytest --cov=rescuetime_mcp --cov-report=html

# Run only unit tests
pytest tests/test_client.py tests/test_server.py

# Run integration tests (requires real API key)
export RESCUETIME_API_KEY_REAL="your_real_api_key"
pytest tests/test_integration.py -m integration

# Run performance tests
pytest tests/test_integration.py -m slow

Code Quality

# Format code
black src tests

# Sort imports
isort src tests

# Lint code
ruff check src tests

# Type checking
mypy src

Project Structure

rescuetime-mcp/
├── src/rescuetime_mcp/
│   ├── __init__.py          # Package initialization
│   ├── client.py            # RescueTime API client
│   └── server.py            # FastMCP server implementation
├── tests/
│   ├── conftest.py          # Test configuration
│   ├── test_client.py       # Client tests  
│   ├── test_server.py       # Server tests
│   └── test_integration.py  # Integration tests
└── pyproject.toml           # Project configuration

Contributing

See CONTRIBUTING.md for development setup, code standards, and contribution guidelines.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Copyright © 2025 Eric Bowman

Acknowledgments

Special thanks to the FastMCP community and RescueTime for providing robust APIs.

Support

Getting Help

  • Documentation: This README and inline code documentation
  • Bug Reports: Use GitHub Issues
  • Feature Requests: Create an issue with detailed use cases
  • Questions: Use GitHub Discussions
  • Security: Email ebowman@boboco.ie for security-related issues

Project Status

This project is actively maintained. We aim to respond to issues and pull requests promptly.

  • Latest Version: v0.1.0
  • Python Support: 3.9+
  • Status: Beta Release

Changelog

See CHANGELOG.md for detailed version history and changes.


Made with ❤️ by Eric Bowman

If this project helps you, please consider giving it a ⭐ on GitHub!

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured