
Lazy Toggl MCP
โ 2from movstox
Simple unofficial MCP server to track time via Toggl API
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 trackworkspace_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 informationGET /workspaces- List workspacesGET /me/time_entries/current- Get current running time entryPOST /workspaces/{workspace_id}/time_entries- Start time trackingPATCH /workspaces/{workspace_id}/time_entries/{time_entry_id}/stop- Stop time tracking
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 specificationcd lazy-toggl-mcp
uv syncBefore it works, you'll need: TOGGL_API_TOKEN
Installation
- Clone/create this project
- Install dependencies with
uv:cd lazy-toggl-mcp uv sync
Configuration
Get Your Toggl API Token
- Go to Toggl Track
- Sign in to your account
- Click on your profile picture/avatar in the top right corner
- Go to "Profile" or "Settings"
- 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.
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.
Licensed under MITโ you can use, modify, and redistribute it under that license's terms.
License
MIT License - feel free to modify and use as needed.