toggl-mcp has 17 tools with consistent naming (verb_noun pattern) and basic schemas. However, parameter descriptions are severely incomplete: 8 of 17 tools have parameters with null/missing descriptions (e.g., workspace_id, name, notes in clients.ts; grouping, sub_grouping in reports.ts). Tool descriptions are present but generic (avg ~50 chars, well below the 194-char baseline). No output schemas documented. Error handling is minimal, the toggl() client throws raw HTTP errors without recovery guidance. Tool annotations are present on some write operations but inconsistently applied. The server lacks pagination guidance despite detailed_report accepting page_size and first_row_number.
Creates a client in a workspace.
Creates a new project in a workspace.
Creates a tag in a workspace.
Deletes a time entry. Destructive — cannot be undone.
Per-entry breakdown for a date range. Paginated by the Toggl Reports API.
Returns the currently running time entry, or null if none.
Lists clients in a workspace.
Parameter descriptions are null or missing in 8+ tools (workspace_id, name, notes, grouping, sub_grouping, etc.). LLMs cannot infer parameter meaning from names alone.
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., project_id from create_project response).
Error handling is minimal. toggl() client throws raw HTTP errors (e.g., 'Toggl POST /workspaces/123/clients failed: 400 Bad Request') without recovery guidance or actionable next steps.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | <=2025-11-25 | v2 |
Lists projects in a workspace.
Lists tags in a workspace.
Lists the authenticated user's time entries. Defaults to the last 9 days.
Lists all workspaces the authenticated user belongs to.
Returns the authenticated Toggl user (id, email, default workspace, timezone, etc.).
Starts a new running time entry. Set duration to -1 to mark it as running (default).
Stops a running time entry.
Aggregated time totals grouped by project/user/etc.
Updates fields on an existing time entry.
Weekly aggregated report.
Tool descriptions are generic and brief (avg ~50 chars vs 194-char baseline). Missing context on WHEN to use each tool and what it returns. E.g., 'Aggregated time totals grouped by project/user/etc.' does not explain when to call summary_report vs detailed_report vs weekly_report.
Tool annotations (readOnlyHint, destructiveHint) are present on create_client but missing on other write operations (create_project, create_tag, start_time_entry, update_time_entry, delete_time_entry). Inconsistent annotation coverage.