Skip to main content
Glama
saaqibz

toggl-mcp

by saaqibz
README.md
# Toggl MCP

An MCP (Model Context Protocol) server that lets AI assistants log time entries to Toggl Track.

## What it does

Exposes three tools to MCP clients (e.g. Claude):

- **`get_tags`** — lists existing Toggl tags (cached daily)
- **`get_entry_descriptions`** — lists existing time entry descriptions (cached daily)
- **`create_time_entry`** — logs a new time entry with a start time, end time, description, and tag

Also exposes `toggl://tags`, `toggl://entries`, and `toggl://now` as MCP resources.

Time input is in Eastern Time (America/New_York) and converted to UTC before submission.

## Setup

1. Copy `.env.example` to `.env` and fill in your values:

```
BASEURL=https://api.track.toggl.com/api/v9/
CACHE_FOLDER=cache
TOGGL_APIKEY=<your api key>
WORKSPACE_ID=<your workspace id>
```

To find your workspace ID, call the `/me` endpoint with your API key.

2. Install dependencies (requires Python 3.10+):

```bash
uv sync
```

3. Run the server:

```bash
uv run main.py
```

## MCP Client Config

To use with Claude Desktop, add to your MCP config:

```json
{
  "mcpServers": {
    "toggl": {
      "command": "uv",
      "args": ["run", "/path/to/toggl/main.py"]
    }
  }
}
```

## Running Tests

```bash
uv run pytest
```

Tests live in the `tests/` directory. The dev dependency group includes pytest.

## Where to get Toggl API Key

1. Log in to [Toggl Track](https://track.toggl.com)
2. Go to **Profile Settings** (click your avatar in the bottom-left)
3. Scroll to the bottom — your API token is listed under **API Token**
4. Click **Click to reveal** and copy the token

TDQS

B3.3/5.0

Scored across 4 tools

Disambiguation1/5

The tool 'now' has a description identical to 'get_tags', making them indistinguishable. An agent cannot tell which tool to use without further context, and the purpose of 'now' is unclear.

Naming Consistency2/5

Most tools follow a verb_noun pattern (get_tags, get_entry_descriptions, create_time_entry), but 'now' breaks the pattern with a vague, single-word name. The mixed conventions make the set feel unpolished.

Tool Count3/5

With only 4 tools, and one being a duplicate, the server feels thin for a Toggl integration. However, the focus on time entry creation and reference data is somewhat coherent, so the count is not egregiously low.

Completeness2/5

The server supports creating time entries and reading tags/descriptions, but there are no operations to list, update, or delete time entries, nor to manage tags. Significant CRUD operations are missing, which will frustrate agents needing full lifecycle management.

Maintenance

ActivityInactive
ResponsivenessNo issues