toggl-focus-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TOGGL_API_KEY | No | Alias for the Focus API key. One of TOGGL_FOCUS_API_TOKEN, TOGGL_API_KEY, or TOGGL_API_TOKEN is required. | |
| TOGGL_API_TOKEN | No | Additional alias for the Focus API key. One of TOGGL_FOCUS_API_TOKEN, TOGGL_API_KEY, or TOGGL_API_TOKEN is required. | |
| TOGGL_WORKSPACE_ID | No | Default workspace ID (recommended to reduce API calls and avoid quota limits). | |
| TOGGL_FOCUS_BASE_URL | No | API base URL. Defaults to https://focus.toggl.com/api. | |
| TOGGL_FOCUS_API_TOKEN | No | Focus API key (toggl_sk_...). One of TOGGL_FOCUS_API_TOKEN, TOGGL_API_KEY, or TOGGL_API_TOKEN is required. | |
| TOGGL_ORGANIZATION_ID | No | Default organization ID (recommended to reduce API calls and avoid quota limits). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| focus_whoamiA | Toggl Focus/2.0: return account metadata and user settings for the authenticated Focus API key. Not Track. |
| focus_get_workspace_contextA | Toggl Focus/2.0: resolve organization_id and workspace_id from env/args (and current_workspace_id from settings when needed). Caches IDs for later tools. Set TOGGL_ORGANIZATION_ID + TOGGL_WORKSPACE_ID. Note: the session /workspaces/{id}/context endpoint is not used with API keys. |
| focus_list_org_usersA | Toggl Focus/2.0: list organization users (for assignee resolution). Mutations are not performed. |
| focus_list_projectsB | Toggl Focus/2.0: list projects in a workspace. Not Track. |
| focus_get_projectB | Toggl Focus/2.0: get a project by ID. |
| focus_create_projectA | Toggl Focus/2.0: create a project immediately (no confirmation). Requires name. Optional client_id is supported. tag_ids are applied in a follow-up PATCH when permitted by the workspace plan/role; if tags are forbidden the project is still created and a warning is returned. |
| focus_update_projectB | Toggl Focus/2.0: partially update a project (PATCH). Changes apply immediately. |
| focus_list_tasksB | Toggl Focus/2.0: list tasks with common filters (project, status, assignee, name, pinned). Not Track. |
| focus_get_taskB | Toggl Focus/2.0: get a task by ID. |
| focus_create_taskA | Toggl Focus/2.0: create a task immediately (no confirmation). Requires name. |
| focus_update_taskA | Toggl Focus/2.0: partially update a task (PATCH). Changes apply immediately. |
| focus_get_current_timerB | Toggl Focus/2.0: get the currently running timer for the workspace, if any. |
| focus_start_timerC | Toggl Focus/2.0: start a timer immediately. type defaults to activity. Optional task_id/project_id/description. |
| focus_stop_timerA | Toggl Focus/2.0: stop the running timer. end defaults to now (UTC) if omitted. |
| focus_list_time_entriesA | Toggl Focus/2.0: list time entries in a date range (date_from/date_to required). Accepts YYYY-MM-DD or RFC3339. |
| focus_create_time_entryA | Toggl Focus/2.0: create a completed time entry immediately. If task_id is set, creates under that task; otherwise creates a taskless entry. type defaults to activity. |
| focus_update_time_entryC | Toggl Focus/2.0: partially update a time entry (PATCH). Changes apply immediately. |
| focus_delete_time_entryA | Toggl Focus/2.0: delete a time entry immediately (no confirmation). |
| focus_list_clientsB | Toggl Focus/2.0: list clients in a workspace. |
| focus_create_clientC | Toggl Focus/2.0: create a client immediately. Requires name. |
| focus_list_tagsB | Toggl Focus/2.0: list tags in a workspace. |
| focus_create_tagB | Toggl Focus/2.0: create a tag immediately. Requires name and color. |
| focus_list_statusesA | Toggl Focus/2.0: list task statuses for a workspace. |
| focus_searchB | Toggl Focus/2.0: unified search across time entries, tasks, and projects. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 24 tools
Each tool targets a distinct resource and action (e.g., get_current_timer vs. list_time_entries, start_timer vs. create_time_entry). Even with overlapping domains, the descriptions make boundaries clear.
All tools share the 'focus_' prefix and almost all follow a verb_noun pattern (list_projects, create_task, update_time_entry). The few exceptions (whoami, search) are standard single-word commands and don't break the overall consistency.
24 tools is on the higher end but justified by the broad Toggl Focus domain covering projects, tasks, time entries, clients, tags, statuses, and user/context helpers. It feels comprehensive without redundant or trivial tools.
Core resources have strong coverage: projects and tasks support list/get/create/update, and time entries support list/create/update/delete. However, projects and tasks lack delete operations, and clients/tags only support list/create, leaving notable lifecycle gaps for these resources.