A Model Context Protocol (MCP) server that provides tools for interacting with Toggl time tracking.
start_tracking
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
list_workspaces
show_current_time_entry
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 trackinguv
:
cd lazy-toggl-mcp
uv sync
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.