MCP Connector

Automate Toggl Time Tracking

Minimal MCP server for Toggl Track - start/stop time tracking, check the current running entry, and list workspaces.

Works with toggl

Maintainer of this project? Claim this page to edit the listing.


91
Spark score
out of 100
Updated Jun 2025
Version 1.0.0
Models
universal

Add to Favorites

Why it matters

Streamline your Toggl time tracking by automating the start and stop of tasks directly through an MCP server. Effortlessly manage your time entries and retrieve workspace information.

Outcomes

What it gets done

01

Start and stop time tracking for tasks

02

Retrieve current time entry details

03

List available Toggl workspaces

04

Integrate Toggl Track API v9

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/vb-lazy-toggl-mcp | bash

Capabilities

Tools your agent gets

start_tracking

Start time tracking for a new task with optional workspace, project, and tags

stop_tracking

Stop the current time entry

list_workspaces

Show all available workspaces with their IDs and names

show_current_time_entry

Show the current time entry with details: description, workspace, duration, and tags

Overview

Lazy Toggl MCP Server

Lazy Toggl MCP Server gives an AI assistant minimal start/stop/status control over Toggl Track time entries and workspace listing. Use it for quick, conversational Toggl time tracking; it doesn't cover editing past entries, reports, or project management.

What it does

Lazy Toggl MCP Server gives an AI assistant simple control over Toggl Track time tracking: starting a new tracked task, stopping the currently running entry, checking what's currently being tracked, and listing available workspaces. It talks directly to the Toggl Track API v9 (/me, /workspaces, /me/time_entries/current, and the time-entry create/stop endpoints).

When to use - and when NOT to

Use this connector when you want an assistant to start or stop a Toggl time entry, check what task is currently being tracked (and for how long), or list your Toggl workspaces - a lightweight way to manage time tracking conversationally.

Do not use it for more advanced Toggl operations like editing past entries, generating reports, or managing projects/tags beyond what's passed at tracking start - the tool set is intentionally minimal ("lazy") and scoped to start/stop/status/workspace listing.

Inputs and outputs

start_tracking takes a task title plus optional workspace ID, project ID, and tags. stop_tracking and list_workspaces take no input. show_current_time_entry takes no input and returns either the running entry's details (description, ID, workspace, start time, duration, tags, project) or a message that nothing is running.

Capabilities

  • start_tracking: start tracking time for a new task, with optional workspace, project, and tags
  • stop_tracking: stop the currently running time entry
  • list_workspaces: list all available Toggl workspaces with IDs and names
  • show_current_time_entry: show the currently running entry's details, or indicate nothing is running

Under the hood these four tools map directly onto five Toggl Track API v9 endpoints: GET /me for user info, GET /workspaces for the workspace list, GET /me/time_entries/current for the running entry, POST /workspaces/{workspace_id}/time_entries to start tracking, and PATCH /workspaces/{workspace_id}/time_entries/{time_entry_id}/stop to stop it.

How to install

cd lazy-toggl-mcp
uv sync

Get your Toggl API token by signing into Toggl Track, opening your profile picture/avatar menu in the top right, going to Profile or Settings, and copying the API Token string. Then configure your MCP client, replacing the directory path and token placeholders with real values:

{
  "mcpServers": {
    "lazy-toggl-mcp": {
      "autoApprove": [],
      "disabled": false,
      "timeout": 60,
      "type": "stdio",
      "transportType": "stdio",
      "command": "uv",
      "args": ["run", "--directory", "/path/to/lazy-toggl-mcp", "python", "server.py"],
      "env": { "TOGGL_API_TOKEN": "your-actual-api-token-here" }
    }
  }
}

The project ships as a small Python package (src/toggl_server/ with main.py, models.py, toggl_api.py, and utils.py), plus a top-level server.py MCP entry point, a separate main.py CLI for testing outside an MCP client, and uv-managed pyproject.toml/uv.lock dependency files. It's released under the MIT License, described in the source as free to modify and use as needed.

Who it's for

Toggl Track users who want a minimal, conversational way to start/stop time tracking and check their current entry without switching apps.

Source README

Lazy Toggl MCP Server

A Model Context Protocol (MCP) server that provides tools for interacting with Toggl time tracking.

Features

  • Start/stop time tracking
  • Get current entry
  • List workspaces

API

Tools

  • start_tracking

    • Start tracking time for a new task
    • Inputs:
      • title (string): Title/description of the task to track
      • workspace_id (integer): Workspace ID (optional, uses default if not provided)
      • project_id (integer): Project ID (optional)
      • tags (string[]): List of tags (optional)
  • stop_tracking

    • Stop the currently running time entry
    • No input required
    • Returns confirmation of stopped time entry
  • list_workspaces

    • List all available workspaces
    • No input required
    • Returns list of workspaces with their IDs and names
  • show_current_time_entry

    • Show the currently running time entry, if any
    • No input required
    • Returns:
      • If tracking: Task description, entry ID, workspace, start time, running duration, tags, and project (if any)
      • If not tracking: A message indicating no time entry is currently running

Integration with Toggl Track API

This server uses the Toggl Track API v9. The following endpoints are utilized:

  • GET /me - Get user information
  • GET /workspaces - List workspaces
  • GET /me/time_entries/current - Get current running time entry
  • POST /workspaces/{workspace_id}/time_entries - Start time tracking
  • PATCH /workspaces/{workspace_id}/time_entries/{time_entry_id}/stop - Stop time tracking

Installation

  1. Clone/create this project
  2. Install dependencies with uv:
    cd lazy-toggl-mcp
    uv sync
    

Configuration

Get Your Toggl API Token

  1. Go to Toggl Track
  2. Sign in to your account
  3. Click on your profile picture/avatar in the top right corner
  4. Go to "Profile" or "Settings"
  5. Find your "API Token" - copy this long string of characters

Configure MCP Server

Add the following configuration to your MCP settings file:

{
  "mcpServers": {
    "lazy-toggl-mcp": {
      "autoApprove": [],
      "disabled": false,
      "timeout": 60,
      "type": "stdio",
      "transportType": "stdio",
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/path/to/lazy-toggl-mcp",
        "python",
        "server.py"
      ],
      "env": {
        "TOGGL_API_TOKEN": "your-actual-api-token-here"
      }
    }
  }
}

Important: Replace /path/to/lazy-toggl-mcp with the actual path to this project and your-actual-api-token-here with your real Toggl API token.

Project Structure

lazy-toggl-mcp/
├── src/
│   └── toggl_server/
│       ├── __init__.py      # Package initialization
│       ├── main.py          # MCP server implementation (new structure)
│       ├── models.py        # Data models and type definitions
│       ├── toggl_api.py     # Toggl API client
│       └── utils.py         # Utility functions
├── main.py                  # CLI interface for testing
├── server.py                # Main MCP server entry point
├── pyproject.toml           # Project configuration and dependencies
├── README.md                # This file
├── uv.lock                  # Dependency lock file
├── .gitignore               # Git ignore patterns
└── .python-version          # Python version specification

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.