Toggl 2.0
NPM · @TOGGLHQ/MCP · SCANNED AUG 3
Toggl 2.0 MCP server for tasks, projects, time entries, and workspace operations.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security63
- No malware found by supply-chain analysis.Pass
- CVE data not yet available for this package.Unverified
- No install/post-install scripts declared.Pass
- Dependency-health data not yet available.Unverified
Provenance & Transparency6
- Repository check failed: no source repository is declared. See how to fix → View diagnostics → Fail
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: the license (UNLICENSED) isn't a recognized OSI-approved license. See how to fix → Fail
- Actively maintained (last published 0 days ago).Pass
- Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability0
- Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.Unverified
Stability & Change Management0
- Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.Unverified
Tool Coverage0
- Tool coverage not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet.Unverified
Capabilities0
- Protocol version not yet verified: we do not have a sandbox capture of the MCP handshake this version of the package performs yet.Unverified
Unverified: 4 categories
Categories scored 0 because our sandbox run of this package has not given us the schema these checks need to read. That is a gap on our side rather than a finding about the package, and we only credit what we can confirm, so the score stands at 0 until the capture succeeds. We are working through the fleet, so this normally clears without any action from you. How we score packages →
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · @togglhq/mcp
claude mcp add toggl-toggl-mcp -- npx -y @togglhq/mcp
codex mcp add toggl-toggl-mcp -- npx -y @togglhq/mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"toggl-toggl-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"@togglhq/mcp"
],
"enabled": true
}
}
} openclaw mcp add toggl-toggl-mcp --command npx --arg -y --arg @togglhq/mcp
mcp_servers:
toggl-toggl-mcp:
command: "npx"
args: ["-y", "@togglhq/mcp"] {
"mcpServers": {
"toggl-toggl-mcp": {
"command": "npx",
"args": [
"-y",
"@togglhq/mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 −33
- Known CVEs: pass → unverified ▼ security
- Stability: 0.20 → unverified ▼ security
- Dependency health: 1.00 → 0.00 ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- Dependency health: 1.00 → unverified ▼ functional
- Package version: 1.5.71 → 1.5.72 functional
- 2 Aug 26 +19
- Malware scan: unverified → pass ▲ security
- Schema quality: unverified → fair ▲ functional
- 1 Aug 26 +18
- Schema quality: fair → unverified ▼ functional
- Stability: unverified → 0.17 ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Package version: 1.5.69 → 1.5.71 functional
- 31 Jul 26 −23
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 28 Jul 26 −18
- Malware scan: pass → unverified ▼ security
- 27 Jul 26 +20
- Tool coverage: unverified → 100 ▲ functional
- First check of Tool coverage: 65 functional
- First check of Schema quality: fair functional
- First check of Schema quality: fail functional
- First check of Schema quality: fail functional
- 26 Jul 26 37
First indexed and scored.
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Analysed npm/@togglhq/[email protected]
Provenance none
Ecosystem: npm · Outcome: none
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
alerts Alerts ~233
Manage Focus alerts with the following actions: - **create**: Create Alerts. (data: payload*) - **delete**: Delete Alerts. (data: alert_id*) - **get**: Get Alerts. (data: alert_id*) - **list**: List Alerts. (data: rule_type, project_id, scope) - **partial-update**: Partial Update Alerts. (data: alert_id*, payload*) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: create, delete, get, list, partial-update |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
audit-log Audit-log ~154
Manage Focus audit-log with the following actions: - **list**: List Audit Log. (data: action, entity_id, entity_type, export, export_, from*, page_number, page_size, to*, user_id) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | — | yes | — |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | object | — | — |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
auth Authenticate MCP ~90
Authenticate this MCP server with Toggl 2.0 via OAuth. Opens browser login and stores credentials locally. Optionally pass workspace_id to pick a specific workspace when multiple are available.
| Name | Type | Req | Description |
|---|---|---|---|
| accounts_api_url | string | — | Optional accounts API URL override (defaults from ENV or production) |
| focus_api_url | string | — | Optional focus API URL override (defaults from ENV or production) |
| workspace_id | — | — | — |
No output schema declared.
No examples provided.
capacities Capacities ~162
Manage Focus capacities with the following actions: - **get-computations**: Compute user or ghost capacity for a date range. (data: end_date*, ghost_id*, group*, include_drafts*, private_*, start_date*, task_source*, unit*, user_id*) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | — | yes | — |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | object | — | — |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
clients Clients ~266
Manage Focus clients with the following actions: - **create**: Create Clients. (data: name*) - **delete**: Delete Clients. (data: client_id*) - **get**: Get Clients. (data: client_id*) - **list**: List Clients. Clients group billable work; projects can reference client_id. Filter projects with projects.list --client-id. (data: name, page, per_page) - **restore**: Restore Clients. (data: client_id*) - **update**: Update Clients. (data: client_id*, payload*) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: create, delete, get, list, restore, update |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
custom-fields Custom-fields ~547
Manage Focus custom-fields with the following actions: - **create**: Create Custom Fields. Requires workspace admin (403 otherwise). field_type is one of select, multi_select, text, number, date, checkbox, users; select/multi_select fields can be seeded with options inline. (data: payload*) - **delete**: Delete Custom Fields. Requires workspace admin. Soft-deletes the field and removes it from entities; this also discards stored values. (data: custom_field_id*) - **get**: Get Custom Fields. (data: custom_field_id*) - **list**: List Custom Fields. Custom fields are workspace-level definitions attached to project or task entities. Reads work for all members; create/update/delete return 403 for non-admins. Reordering fields is not available through this tool yet. (data: entity_type, order_by, page, per_page) - **options-create**: Options Create Custom Fields. Requires workspace admin. Only valid for select and multi_select fields. (data: custom_field_id*, payload*) - **options-delete**: Options Delete Custom Fields. Requires workspace admin. Deleting an option clears it from entities that have it selected. (data: custom_field_id*, option_id*) - **options-list**: Options List Custom Fields. (data: custom_field_id*, name, order_by, page, per_page) - **options-update**: Options Update Custom Fields. Requires workspace admin. Full update (PUT) of the option's name/color/description. (data: custom_field_id*, option_id*, payload*) - **update**: Update Custom Fields. Requires workspace admin. Full update (PUT) of name/description only; field_type and entity_type are immutable. Manage options via the options-* actions. (data: custom_field_id*, payload*) - **update-order**: Update Order Custom Fields. (data: payload*) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input…
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: create, delete, get, list, options-create, options-delete, options-list, options-update, update, update-order |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
goals Goals ~224
Manage Focus goals with the following actions: - **create**: Create Goals. (data: payload*) - **delete**: Delete Goals. (data: goal_id*) - **get**: Get Goals. (data: goal_id*) - **list**: List Goals. (data: none) - **update**: Update Goals. (data: goal_id*, payload*) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: create, delete, get, list, update |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
logout Logout MCP ~24
Clear local MCP authentication state. Removes stored credentials so subsequent tool calls require auth again.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
milestones Milestones ~327
Manage Focus milestones with the following actions: - **create**: Create Milestones. (data: payload*) - **delete**: Delete Milestones. (data: milestone_id*) - **get**: Get Milestones. (data: milestone_id*) - **get-classic**: Get Classic Milestones. (data: due_date_from, due_date_to, order_by, page, per_page, project_id, team_id) - **get-stream**: Get Stream Milestones. (data: due_date_from, due_date_to, order_by, project_id, team_id) - **partial-update**: Partial Update Milestones. (data: milestone_id*, payload*) - **restore**: Restore Milestones. (data: milestone_id*) - **update**: Update Milestones. (data: milestone_id*, payload*) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: create, delete, get, get-classic, get-stream, partial-update, restore, update |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
org-invitations Org-invitations ~246
Manage Focus org-invitations with the following actions: - **list**: List pending invitations for the current user account. (data: none) - **create**: Send organization invitations (uses organization ID from your workspace profile). (data: initiating_product*, invitations*, skip_email*) - **get**: Get an invitation by ID. (data: invitation_id*) - **resend**: Resend an invitation email for an organization user record. (data: organization_user_id*) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: list, create, get, resend |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
org-members Org-members ~223
Manage Focus org-members with the following actions: - **get**: Get an organization user by organization user ID. (data: organization_user_id*) - **update**: Replace organization user settings (roles, groups, tags, etc.). (data: organization_user_id*, payload*) - **set-active**: Activate or deactivate an organization member. (data: organization_user_id*, status*) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: get, update, set-active |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
org-time-off-me Org-time-off-me ~241
Manage Focus org-time-off-me with the following actions: - **list**: List your time off entries between two dates (YYYY-MM-DD). (data: from*, to*) - **update**: Update your time off entries (JSON array). (data: array payload) - **create**: Create your time off entries (JSON array). (data: array payload) - **delete**: Delete your time off entries by ID. (data: ids*) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: list, update, create, delete |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
org-workspaces Org-workspaces ~326
Manage Focus org-workspaces with the following actions: - **list**: List workspaces under the active organization. (data: none) - **my-roles**: Get your roles for a workspace (defaults to the CLI active workspace when omitted). (data: workspace_id) - **get-timezone**: Get the workspace-level default timezone (null when unset). Requires organization admin. Use when you need the org-wide default timezone for a workspace. When timezone is null, members use their personal timezones. (data: workspace_id) - **update-timezone**: Set or clear the workspace-level default timezone. Requires organization admin. Set timezone to an IANA name (e.g. Europe/London) or clear with clear: true / timezone: null so members fall back to personal timezones. (data: workspace_id, timezone, clear) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: list, my-roles, get-timezone, update-timezone |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
organization Organization ~316
Manage Focus organization with the following actions: - **create-group**: Create an organization group. (data: payload*) - **delete-group**: Delete an organization group. (data: group_id*) - **get-my-groups**: List organization groups for the current user. (data: none) - **get-roles**: List organization roles. (data: none) - **get-teams**: List organization teams. (data: filter*, group_ids*, organization_user_id*, page*, per_page*, sort_dir*, workspace_id*) - **update-group**: Update an organization group. (data: group_id*, payload*) - **update-group-user-role**: Update Group User Role Organization. (data: group_id*, payload*) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: create-group, delete-group, get-my-groups, get-roles, get-teams, update-group, update-group-user-role |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
profile-list List MCP profiles ~47
List saved credential profiles from ~/.toggl/focus-tools.json. The row where active is true is the MCP active profile (active.mcp). Profiles may be shared with the Toggl CLI.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
profile-remove Remove saved profile ~124
Delete a profile row from ~/.toggl/focus-tools.json. If it was the MCP active profile, active.mcp moves to another remaining profile when possible. This affects both MCP and shared storage; removing a profile used by the CLI removes it for the CLI too. Destructive: call without confirm_token first to receive confirm_required + confirm_token, then repeat with the same profile_name and confirm_token (same pattern as entity mutations).
| Name | Type | Req | Description |
|---|---|---|---|
| confirm_token | string | — | Mutation confirmation token from previous call |
| profile_name | string | yes | Profile key as shown by profile-list |
No output schema declared.
No examples provided.
profile-switch Switch MCP profile ~41
Set active.mcp to an existing profile name so subsequent entity calls use that credential row.
| Name | Type | Req | Description |
|---|---|---|---|
| profile_name | string | yes | Profile key as shown by profile-list |
No output schema declared.
No examples provided.
projects Projects ~1,611
Manage Focus projects with the following actions: - **create-project**: Create a project with related data such as members, milestones, rates, and billable rates. (data: payload*) - **add-project-members**: Add Project Members Projects. (data: payload*, project_id*) - **archive**: Archive Projects. (data: project_id*) - **attachments-bulk-create**: Attachments Bulk Create Projects. Uploads several local files in one call. names and display_orders are optional parallel arrays; they default to the file basenames and array positions. (data: project_id*, file_paths*, names, display_orders) - **attachments-create**: Attachments Create Projects. Uploads a local file (file_path) as an attachment. The mime type is inferred from the extension and the API rejects disallowed types; uploads are capped at 20 MB. (data: project_id*, file_path*, name, display_order) - **attachments-delete**: Attachments Delete Projects. (data: attachment_id*, project_id*) - **attachments-list**: Attachments List Projects. Lists attachment metadata. Upload files with attachments-create (file_path), download with attachments-view (save_to). (data: order_by, project_id*) - **attachments-update**: Attachments Update Projects. Full update (PUT): both name and display_order are required; the response body is empty, verify via attachments-list. (data: attachment_id*, payload*, project_id*) - **attachments-view**: Attachments View Projects. Downloads the attachment's binary content to a local path (save_to). Refuses to replace an existing file unless overwrite is true. (data: project_id*, attachment_id*, save_to*, overwrite) - **bulk-archive**: Bulk Archive Projects. (data: project_ids*) - **bulk-delete**: Bulk Delete Projects. Deletes all listed project IDs in one HTTP call. (data: ids*) - **bulk-patch**: Bulk Patch Projects. Prefer over many project updates: JSON array of { id: projectId, ...partial fields } matching single-project patch fields. (data: array payload) - **bulk-restore**: Bulk Restore P…
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: create-project, add-project-members, archive, attachments-bulk-create, attachments-create, attachments-delete, attachments-list, attachments-update, attachments-view, bulk-archive, bulk-delet… |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
public-holidays Public-holidays ~148
Manage Focus public-holidays with the following actions: - **get-by-user-ids**: Get By User Ids Public Holidays. (data: end_date*, start_date*, user_id*) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | — | yes | — |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | object | — | — |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
rates Rates ~1,817
Manage Focus rates with the following actions: - **billable-check-project-billable-rate-conflicts**: Billable Check Project Billable Rate Conflicts Rates. (data: payload*, project_id*) - **billable-check-project-user-billable-rate-conflicts**: Billable Check Project User Billable Rate Conflicts Rates. (data: payload*, project_id*, user_id*) - **billable-check-workspace-billable-rate-conflicts**: Billable Check Workspace Billable Rate Conflicts Rates. (data: payload*) - **billable-check-workspace-user-billable-rate-conflicts**: Billable Check Workspace User Billable Rate Conflicts Rates. (data: payload*, user_id*) - **billable-delete-by-id**: Billable Delete By Id Rates. (data: rate_id*) - **billable-delete-project-billable-rate-range**: Billable Delete Project Billable Rate Range Rates. (data: from*, project_id*, to) - **billable-delete-project-user-billable-rate-range**: Billable Delete Project User Billable Rate Range Rates. (data: from*, project_id*, to, user_id*) - **billable-delete-workspace-billable-rate-range**: Billable Delete Workspace Billable Rate Range Rates. (data: from*, to) - **billable-delete-workspace-user-billable-rate-range**: Billable Delete Workspace User Billable Rate Range Rates. (data: from*, to, user_id*) - **billable-get-all-project-user**: Billable Get All Project User Rates. (data: date, order_by, project_id, user_id) - **billable-get-all-workspace-user**: Billable Get All Workspace User Rates. (data: order_by, user_id) - **billable-get-project**: Billable Get Project Rates. (data: order_by, project_id*) - **billable-get-project-user**: Billable Get Project User Rates. (data: order_by, project_id*, user_id*) - **billable-get-projects**: Billable Get Projects Rates. (data: date*, project_id*) - **billable-get-workspace**: Billable Get Workspace Rates. (data: order_by) - **billable-get-workspace-user**: Billable Get Workspace User Rates. (data: order_by, user_id*) - **billable-upsert-project**: Billable Upsert Project Rates. (data: payloa…
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: billable-check-project-billable-rate-conflicts, billable-check-project-user-billable-rate-conflicts, billable-check-workspace-billable-rate-conflicts, billable-check-workspace-user-billable-r… |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
reports Reports ~215
Manage Focus reports with the following actions: - **get-flexq-data**: Get Flexq Data Reports. (data: payload*) - **get-flexq-dictionary**: Get Flexq Dictionary Reports. (data: payload*) - **get-workload**: Get Workload Reports. (data: payload*) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: get-flexq-data, get-flexq-dictionary, get-workload |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
saved-views Saved-views ~419
Manage Focus saved-views with the following actions: - **create**: Create Saved Views. Required: name, type, pinned, and params (the view's filter/layout state as an object, e.g. { project_id, filters }). Project-scoped types (project, project.tasks, project.board, project.timeline) expect the project context inside params. (data: payload*) - **delete**: Delete Saved Views. Deletes the authenticated user's saved view; it cannot be restored. (data: id*) - **get**: Get Saved Views. id is the saved view ID (number) from saved-views list. (data: id*) - **list**: List Saved Views. Saved views are per-user, so results belong to the authenticated user. Filter by type (inbox, archive, board, timeline, project, project.tasks, project.board, project.timeline, projects) or by partial name match. pinned=true entries are the user's starred views. (data: name, order_by, type) - **update**: Update Saved Views. The payload requires the full updatable set (name, type, pinned, params), so fetch the view first and resend it with your changes to avoid clobbering params. Toggling pinned is how views are starred/unstarred. (data: id*, payload*) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: create, delete, get, list, update |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
search Search ~157
Manage Focus search with the following actions: - **search**: Search across Toggl 2.0 entities. (data: assignee_user_id*, exclude_calendar_events*, include_drafts*, keyword*, per_group*, project_id*, task_id*) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | — | yes | — |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | object | — | — |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
shared-holidays Shared-holidays ~143
Manage Focus shared-holidays with the following actions: - **list**: List public holidays for a year (optional ISO country code). (data: year*, country) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | — | yes | — |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | object | — | — |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
shared-status Shared-status ~135
Manage Focus shared-status with the following actions: - **get**: Health check for the Shared Data API. (data: none) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | — | yes | — |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | object | — | — |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
shared-working-hours Shared-working-hours ~234
Manage Focus shared-working-hours with the following actions: - **list**: Get your working hours entries for the active organization. (data: none) - **put**: Replace working hours by ID (JSON array of updates). (data: array payload) - **create**: Create working hour rows (JSON array). (data: array payload) - **delete**: Delete working hour rows by ID. (data: ids*) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: list, put, create, delete |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
statuses Statuses ~300
Manage Focus statuses with the following actions: - **create-status**: Create a task status. (data: payload*) - **delete-status**: Delete a task status. (data: status_id*) - **get-status**: List task statuses with generated API filters. (data: status_id*) - **list**: List Statuses. Lists all task status options for the workspace. Use returned status IDs when creating or updating tasks via status_id. Statuses have types: todo, in_progress, done, blocked. (data: page, per_page) - **restore**: Restore Statuses. (data: status_id*) - **update-status**: Update a task status. (data: payload*, status_id*) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: create-status, delete-status, get-status, list, restore, update-status |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
subscriptions Subscriptions ~243
Manage Focus subscriptions with the following actions: - **get-current**: Get Current Subscriptions. (data: none) - **get-current-trial**: Get Current Trial Subscriptions. (data: none) - **get-features-upsell**: Get Features Upsell Subscriptions. (data: none) - **upsert-forced-trial**: Upsert Forced Trial Subscriptions. (data: payload*) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: get-current, get-current-trial, get-features-upsell, upsert-forced-trial |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
tags Tags ~295
Manage Focus tags with the following actions: - **create**: Create Tags. Both name and color are required by the API (hex color, e.g. #FF5733). (data: color*, name*) - **delete**: Delete Tags. (data: tag_id*) - **get**: Get Tags. (data: tag_id*) - **list**: List Tags. Workspace tags label tasks and projects. Use tag IDs with tasks (tag_ids) and organization user filters (tag_ids on users.list). (data: name, page, per_page) - **restore**: Restore Tags. (data: tag_id*) - **update**: Update Tags. (data: tag_id*, payload*) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: create, delete, get, list, restore, update |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
tasks Tasks ~1,824
Manage Focus tasks with the following actions: - **create-task**: Create a task with related data such as subtasks, time blocks, and an initial time entry. (data: payload*) - **archive**: Archive Tasks. (data: from_recurring_task_id, task_id*) - **attachments-bulk-create**: Attachments Bulk Create Tasks. Uploads several local files in one call. names and display_orders are optional parallel arrays; they default to the file basenames and array positions. (data: task_id*, file_paths*, names, display_orders) - **attachments-create**: Attachments Create Tasks. Uploads a local file (file_path) as an attachment. The mime type is inferred from the extension and the API rejects disallowed types; uploads are capped at 20 MB. (data: task_id*, file_path*, name, display_order) - **attachments-delete**: Attachments Delete Tasks. (data: attachment_id*, task_id*) - **attachments-list**: Attachments List Tasks. Lists attachment metadata. Upload files with attachments-create (file_path), download with attachments-view (save_to). (data: order_by, task_id*) - **attachments-update**: Attachments Update Tasks. Full update (PUT): both name and display_order are required; the response body is empty, verify via attachments-list. (data: attachment_id*, payload*, task_id*) - **attachments-view**: Attachments View Tasks. Downloads the attachment's binary content to a local path (save_to). Refuses to replace an existing file unless overwrite is true. (data: task_id*, attachment_id*, save_to*, overwrite) - **bulk-archive**: Bulk Archive Tasks. (data: task_ids*) - **bulk-create**: Bulk Create Tasks. (data: tasks*) - **bulk-delete**: Bulk Delete Tasks. Deletes all listed task IDs in one HTTP call. Requires confirm flow like single delete. (data: ids*, outbound_sync) - **bulk-duplicate**: Bulk Duplicate Tasks. (data: cascade_duplicate_children*, task_ids*) - **bulk-patch**: Bulk Patch Tasks. Prefer over many single updates: pass a JSON array of { id: taskId, ...partial fields }. Same field names…
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: create-task, archive, attachments-bulk-create, attachments-create, attachments-delete, attachments-list, attachments-update, attachments-view, bulk-archive, bulk-create, bulk-delete, bulk-dup… |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
time-blocks Time-blocks ~699
Manage Focus time-blocks with the following actions: - **archive**: Archive Time Blocks. (data: task_id*, time_block_id*) - **bulk-create**: Bulk Create Time Blocks. Body shape: { time_blocks: [{ task_id, start, duration?, completed? }, ...] }. Creates many blocks in one request. (data: time_blocks*) - **bulk-delete**: Bulk Delete Time Blocks. Deletes time blocks by numeric id list in one HTTP call (not task_id/time_block_id pairs). (data: ids*, outbound_sync) - **bulk-patch**: Bulk Patch Time Blocks. JSON array of { id: timeBlockId, ...partial fields }; same fields as single time-block update. (data: array payload) - **create**: Create Time Blocks. Required: task_id and payload.start (ISO 8601 datetime). Optionally set payload.duration (minutes) and payload.completed. (data: task_id*, payload*) - **delete**: Delete Time Blocks. Permanently removes the scheduled time block from the task. (data: task_id*, time_block_id*) - **get**: Get Time Blocks. Fetch a single time block by task ID and time block ID. (data: task_id*, time_block_id*) - **get-range-stream**: Get Range Stream Time Blocks. (data: archived*, date_from*, date_to*, order_by*, status_id*, task_id*) - **get-task-time-blocks**: Get Task Time Blocks Time Blocks. (data: archived, order_by, page, per_page, task_id*) - **list**: List Time Blocks. Returns scheduled time blocks in a date range. Requires date_from and date_to. Accepts date-only strings (YYYY-MM-DD) or RFC3339 datetimes — date-only is automatically expanded: date_from to T00:00:00Z, date_to to T23:59:59Z. Results include associated task summaries. (data: date_from*, date_to*, task_id, page, per_page) - **restore**: Restore Time Blocks. (data: task_id*, time_block_id*) - **unarchive**: Unarchive Time Blocks. (data: task_id*, time_block_id*) - **update**: Update Time Blocks. Partial update — provide task_id, time_block_id, and fields to change in payload. (data: task_id*, time_block_id*, payload*) - **update-with-org**: Update With Org Time Blocks.…
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: archive, bulk-create, bulk-delete, bulk-patch, create, delete, get, get-range-stream, get-task-time-blocks, list, restore, unarchive, update, update-with-org |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
time-entries Time-entries ~967
Manage Focus time-entries with the following actions: - **archive**: Archive Time Entries. (data: time_entry_id*) - **bulk-create**: Bulk Create Time Entries. JSON array of entries with task_id, start, duration, type ('activity'|'break'). One HTTP request for many creates. (data: array payload) - **bulk-delete**: Bulk Delete Time Entries. Soft-delete multiple time entries by id in one request. (data: ids*) - **bulk-patch**: Bulk Patch Time Entries. JSON array of { id: timeEntryId, ...partial fields } for bulk partial update. (data: array payload) - **bulk-restore**: Bulk Restore Time Entries. Restore deleted time entries by id in one request. (data: ids*) - **bulk-set-day-duration**: Bulk Set Day Duration Time Entries. (data: payload*) - **constraints-list**: Constraints List Time Entries. (data: none) - **constraints-upsert**: Constraints Upsert Time Entries. (data: payload*) - **create**: Create Time Entries. (data: payload*, task_id*) - **create-taskless**: Create Taskless Time Entries. (data: payload*) - **delete**: Delete Time Entries. (data: time_entry_id*) - **get**: Get Time Entries. (data: time_entry_id*) - **get-stream-time-entries-range**: Get Stream Time Entries Range Time Entries. (data: archived*, date_from*, date_to*, include_taskless*, order_by*, status_id*, task_id*, type*) - **get-stream-time-entries-time-block-ids**: Get Stream Time Entries Time Block Ids Time Entries. (data: time_block_id*) - **get-task-time-entries**: Get Task Time Entries Time Entries. (data: archived, order_by, page, per_page, task_id*, time_block_id, type) - **list**: List Time Entries. Returns tracked time entries in a date range. Requires date_from and date_to. Accepts date-only strings (YYYY-MM-DD) or RFC3339 datetimes — date-only is automatically expanded: date_from to T00:00:00Z, date_to to T23:59:59Z. Includes task and project context. (data: date_from*, date_to*, task_id, time_block_id, type, page, per_page) - **partial-update**: Partial Update Time Entries. (data: p…
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: archive, bulk-create, bulk-delete, bulk-patch, bulk-restore, bulk-set-day-duration, constraints-list, constraints-upsert, create, create-taskless, delete, get, get-stream-time-entries-range,… |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
time-log-suggestions Time-log-suggestions ~218
Manage Focus time-log-suggestions with the following actions: - **get-for-acalendar-event-title**: Get For Acalendar Event Title Time Log Suggestions. (data: payload*) - **get-for-multiple-calendar-event-titles**: Get For Multiple Calendar Event Titles Time Log Suggestions. (data: payload*) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: get-for-acalendar-event-title, get-for-multiple-calendar-event-titles |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
time-off Time-off ~490
Manage Focus time-off with the following actions: - **create-timeoff-for-ghost**: Create Timeoff For Ghost Time Off. (data: ghost_id*, payload*) - **create-timeoff-for-user**: Create Timeoff For User Time Off. (data: payload*, user_id*) - **delete-timeoff-for-ghost**: Delete Timeoff For Ghost Time Off. (data: ghost_id*, payload*) - **delete-timeoff-for-user**: Delete Timeoff For User Time Off. (data: payload*, user_id*) - **get-timeoff-for-ghost**: Get Timeoff For Ghost Time Off. (data: from*, ghost_id*, to*) - **get-timeoff-for-user**: Get Timeoff For User Time Off. (data: from*, to*, user_id*) - **get-timeoffs-by-ghost-ids**: Get Timeoffs By Ghost Ids Time Off. (data: end_date*, ghost_ids*, start_date*) - **get-timeoffs-by-user-ids**: Get Timeoffs By User Ids Time Off. (data: end_date*, start_date*, user_id*) - **update-timeoff-for-ghost**: Update Timeoff For Ghost Time Off. (data: ghost_id*, payload*) - **update-timeoff-for-user**: Update Timeoff For User Time Off. (data: payload*, user_id*) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: create-timeoff-for-ghost, create-timeoff-for-user, delete-timeoff-for-ghost, delete-timeoff-for-user, get-timeoff-for-ghost, get-timeoff-for-user, get-timeoffs-by-ghost-ids, get-timeoffs-by-u… |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
timesheets Timesheets ~771
Manage Focus timesheets with the following actions: - **add-timesheet-flag**: Add Timesheet Flag Timesheets. (data: payload*, setup_id*, start_date*, user_account_id*) - **approve**: Approve Timesheets. (data: setup_id*, start_date*, user_account_id*) - **bulk-approve**: Bulk Approve Timesheets. (data: payload*) - **bulk-request-changes**: Bulk Request Changes Timesheets. (data: payload*) - **get**: Get Timesheets. (data: approver_user_account_ids*, date_from*, date_to*, page*, per_page*, setup_id*, statuses*, team_ids*, user_account_ids*) - **get-approvers**: Get Approvers Timesheets. (data: none) - **get-details**: Get Details Timesheets. (data: setup_id*, start_date*, user_account_id*) - **get-flags**: Get Flags Timesheets. (data: setup_id*, start_date*, user_account_id*) - **get-history**: Get History Timesheets. (data: setup_id*, start_date*, user_account_id*) - **get-hours**: Get Hours Timesheets. (data: setup_id*, start_date*, user_account_id*) - **remove-timesheet-flag**: Remove Timesheet Flag Timesheets. (data: flag_id*) - **request-changes**: Request Changes Timesheets. (data: payload*, setup_id*, start_date*, user_account_id*) - **resubmit**: Resubmit Timesheets. (data: payload*, setup_id*, start_date*, user_account_id*) - **setups-create**: Setups Create Timesheets. (data: payload*) - **setups-delete**: Setups Delete Timesheets. (data: setup_id*) - **setups-discontinue**: Setups Discontinue Timesheets. (data: payload*, setup_id*) - **setups-get**: Setups Get Timesheets. (data: setup_id*) - **setups-get-approvers**: Setups Get Approvers Timesheets. (data: setup_id*) - **setups-get-members**: Setups Get Members Timesheets. (data: setup_id*) - **setups-list**: Setups List Timesheets. (data: approver_user_account_id, include_discontinued, user_account_id) - **setups-update**: Setups Update Timesheets. (data: payload*, setup_id*) - **submit**: Submit Timesheets. (data: setup_id*, start_date*, user_account_id*) - **withdraw**: Withdraw Timesheets. (data: set…
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: add-timesheet-flag, approve, bulk-approve, bulk-request-changes, get, get-approvers, get-details, get-flags, get-history, get-hours, remove-timesheet-flag, request-changes, resubmit, setups-c… |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
users Users ~286
Manage Focus users with the following actions: - **list**: List Users. Lists organization users (members). Use returned IDs for assignee_user_ids on tasks. Invite or provision new users from the Toggl Track/Focus web UI or billing admin — this API lists existing users only. (data: page, per_page, filter, sort_dir, only_admins, include_working_hours, include_rates, workspaces, tag_ids, roles, active_status, groups, pinned_ids, user_account_ids, org_user_ids) - **settings-list**: Settings List Users. (data: none) - **settings-partial-update**: Settings Partial Update Users. (data: payload*) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: list, settings-list, settings-partial-update |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
version Version ~128
Manage Focus version with the following actions: - **service**: Service Version. (data: none) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | — | yes | — |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | object | — | — |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
working-hours Working-hours ~350
Manage Focus working-hours with the following actions: - **create-for-ghost**: Create For Ghost Working Hours. (data: ghost_id*, payload*) - **create-for-user**: Create For User Working Hours. (data: payload*, user_id*) - **delete-for-ghost**: Delete For Ghost Working Hours. (data: ghost_id*, payload*) - **delete-for-user**: Delete For User Working Hours. (data: payload*, user_id*) - **get-for-ghost**: Get For Ghost Working Hours. (data: ghost_id*) - **get-for-user**: Get For User Working Hours. (data: user_id*) - **update-for-ghost**: Update For Ghost Working Hours. (data: ghost_id*, payload*) - **update-for-user**: Update For User Working Hours. (data: payload*, user_id*) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: create-for-ghost, create-for-user, delete-for-ghost, delete-for-user, get-for-ghost, get-for-user, update-for-ghost, update-for-user |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
workspace-list List Workspaces ~41
List workspaces for the active MCP profile. Pass refresh: true to refetch from Accounts when a workspace is missing from cache.
| Name | Type | Req | Description |
|---|---|---|---|
| refresh | boolean | — | — |
No output schema declared.
No examples provided.
workspace-settings Workspace-settings ~248
Manage Focus workspace-settings with the following actions: - **workspace-settings-list**: List user workspace settings. (data: none) - **workspace-settings-partial-update**: Update user workspace settings. (data: payload*) - **get-user-permissions**: Get User Permissions Workspace Settings. (data: none) - **list**: List Workspace Settings. (data: none) - **update**: Update Workspace Settings. (data: payload*) Pass the action-specific fields under `data` (required fields are marked with *). Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm. Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | One of: workspace-settings-list, workspace-settings-partial-update, get-user-permissions, list, update |
| confirm_token | string | — | Mutation confirmation token from previous call |
| data | — | — | Action-specific payload. See each action's parameters in this tool's description; pass dry_run: true to validate it without calling the API. |
| dry_run | boolean | — | — |
No output schema declared.
No examples provided.
workspace-switch Switch Workspace ~44
Switch the active workspace by updating the stored configuration. The new workspace takes effect on the next tool call. Use workspace-list to see available workspace IDs.
| Name | Type | Req | Description |
|---|---|---|---|
| workspace_id | — | yes | — |
No output schema declared.
No examples provided.