A Model Context Protocol (MCP) server that provides tools for interacting with Toggl time tracking.
- Start/stop time tracking
- Get current entry
- List workspaces
-
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
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
- Clone/create this project
- Install dependencies with
uv
:cd lazy-toggl-mcp uv sync
- 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
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.
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
MIT License - feel free to modify and use as needed.