timetagger-mcp
TimeTagger MCP Server provides a comprehensive solution for managing time records via the Model Context Protocol. It is equipped with various tools to query, create, and manage records while integrating smoothly with AI assistants like Claude for enhanced productivity management.
TimeTagger MCP Server
This is a Model Context Protocol (MCP) server for interacting with TimeTagger. It provides tools to query and manage your time records through Claude or other MCP-compatible AI assistants.
Features
- Query time records within specific timeframes
- Create new time records
- Update existing records
- Hide/delete records
- Get time summaries by tags
- Start and stop timers
- Manage TimeTagger settings
Claude Desktop Installation
Add this to your claude_desktop_config.json
:
"timetagger": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/regismesquita/timetagger-mcp",
"timetagger-mcp"
],
"env": {
"TIMETAGGER_API_KEY": "your-api-key-here",
"TIMETAGGER_API_URL": "https://your-timetagger-instance.com/api/v2"
}
}
Manual Installation
-
Ensure you have uv installed:
brew install uv
-
Install the required dependencies:
uv pip install -r requirements.txt
Configuration
The server requires your TimeTagger API key to be set as an environment variable:
export TIMETAGGER_API_KEY="your-api-key-here"
export TIMETAGGER_API_URL="https://your-timetagger-instance.com/api/v2"
Usage
Running in Development Mode
For testing and development, use:
fastmcp dev timetagger_mcp.py
This will launch the MCP Inspector interface where you can test the tools and resources.
Installing for Claude Desktop
To use with Claude Desktop:
fastmcp install timetagger_mcp.py
Available Tools
get_records(start_time, end_time)
: Get records within a time rangeget_recent_records(hours)
: Get records from the last N hoursget_today_records()
: Get today's recordscreate_record(description, start_time, end_time)
: Create a new recordupdate_record(key, description, start_time, end_time)
: Update an existing recordhide_record(key)
: Hide/delete a recordstart_timer(description)
: Start a new timerstop_timer(key)
: Stop an ongoing timerfind_records_by_tag(tag, days)
: Find records with a specific tagget_time_summary(days)
: Get a summary of time spent on different tagsget_settings()
: Get all TimeTagger settingsupdate_setting(key, value)
: Update a TimeTagger setting
Available Resources
timetagger://config
: Get the TimeTagger configurationtimetagger://records/{timerange}
: Get records within a timerangetimetagger://settings
: Get all settingstimetagger://updates/{since}
: Get updates since a specific timestamp