TimeTagger MCP Server
by regismesquita
The TimeTagger MCP Server provides an interface for interacting with TimeTagger through Claude or other MCP-compatible AI assistants. It allows users to query, manage, and analyze their time records.
Last updated: N/A
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