@togglhq/mcp 1.5.29 → 1.5.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { n as runMcpCli } from "./src-RzQj8FxB.js";
2
+ import { n as runMcpCli } from "./src-DSUxKCOR.js";
3
3
  //#region src/cli.ts
4
4
  runMcpCli();
5
5
  //#endregion
package/build/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import { n as runMcpCli, t as bootstrapServer } from "./src-RzQj8FxB.js";
2
+ import { n as runMcpCli, t as bootstrapServer } from "./src-DSUxKCOR.js";
3
3
  export { bootstrapServer, runMcpCli };
@@ -29172,6 +29172,7 @@ const TimeBlockSchema = /* @__PURE__ */ object({
29172
29172
  deleted_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
29173
29173
  description: /* @__PURE__ */ optional(/* @__PURE__ */ string()),
29174
29174
  duration: /* @__PURE__ */ optional(/* @__PURE__ */ number()),
29175
+ timezone: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ description("Timezone is the effective IANA timezone hydrated on reads: the workspace timezone snapshotted at creation when set, else the creator's snapshot; NULL when unresolved."))),
29175
29176
  updated_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime()))
29176
29177
  });
29177
29178
  const BillableSourceSchema = /* @__PURE__ */ picklist(["manual", "task_default"]);
@@ -29195,6 +29196,7 @@ const TimeEntrySchema = /* @__PURE__ */ object({
29195
29196
  start: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
29196
29197
  task_id: /* @__PURE__ */ optional(/* @__PURE__ */ nullable(/* @__PURE__ */ number())),
29197
29198
  time_block_id: /* @__PURE__ */ optional(/* @__PURE__ */ number()),
29199
+ timezone: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ description("Timezone is the effective IANA timezone hydrated on reads: the workspace timezone snapshotted at creation when set, else the creator's snapshot; NULL when unresolved."))),
29198
29200
  tracked_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
29199
29201
  updated_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime()))
29200
29202
  });
@@ -29317,6 +29319,7 @@ const PaginatedTimeBlockAggregateWithTasksSchema = /* @__PURE__ */ object({
29317
29319
  duration: /* @__PURE__ */ optional(/* @__PURE__ */ number()),
29318
29320
  has_time_entry: /* @__PURE__ */ optional(/* @__PURE__ */ boolean()),
29319
29321
  task: /* @__PURE__ */ optional(TaskSchema),
29322
+ timezone: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ description("Timezone is the effective IANA timezone hydrated on reads: the workspace timezone snapshotted at creation when set, else the creator's snapshot; NULL when unresolved."))),
29320
29323
  updated_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime()))
29321
29324
  })),
29322
29325
  page: /* @__PURE__ */ number(),
@@ -29357,6 +29360,7 @@ const PaginatedTimeEntryWithTasksSchema = /* @__PURE__ */ object({
29357
29360
  task: /* @__PURE__ */ optional(TaskSchema),
29358
29361
  task_id: /* @__PURE__ */ optional(/* @__PURE__ */ nullable(/* @__PURE__ */ number())),
29359
29362
  time_block_id: /* @__PURE__ */ optional(/* @__PURE__ */ number()),
29363
+ timezone: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ description("Timezone is the effective IANA timezone hydrated on reads: the workspace timezone snapshotted at creation when set, else the creator's snapshot; NULL when unresolved."))),
29360
29364
  tracked_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
29361
29365
  updated_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime()))
29362
29366
  })),
@@ -29732,7 +29736,7 @@ async function updateOrganizationGroupUserRole(httpClient, organization_id, grou
29732
29736
  async function getOrganizationRoles(httpClient, organization_id, signal) {
29733
29737
  return await httpClient.get(`organizations/${organization_id}/roles`, { signal }).json();
29734
29738
  }
29735
- async function getOrganizationTeamsClassic(httpClient, organization_id, { workspace_id, page, per_page, sort_dir, filter, query, organization_user_id, group_ids }, signal) {
29739
+ async function getOrganizationTeamsClassic(httpClient, organization_id, { workspace_id, page, per_page, sort_dir, filter, query, organization_user_id, group_ids, active_members_only }, signal) {
29736
29740
  return await httpClient.get(`organizations/${organization_id}/teams`, {
29737
29741
  signal,
29738
29742
  searchParams: buildSearchParams$3({
@@ -29743,7 +29747,8 @@ async function getOrganizationTeamsClassic(httpClient, organization_id, { worksp
29743
29747
  filter,
29744
29748
  query,
29745
29749
  organization_user_id,
29746
- group_ids
29750
+ group_ids,
29751
+ active_members_only
29747
29752
  })
29748
29753
  }).json();
29749
29754
  }
@@ -30187,25 +30192,23 @@ async function getTaskByExternalId(httpClient, organization_id, workspace_id, {
30187
30192
  })
30188
30193
  }).json();
30189
30194
  }
30190
- async function getTasksCalendarEvents(httpClient, organization_id, workspace_id, { date_from, date_to, calendar_event_id, time_zone, hidden } = {}, signal) {
30195
+ async function getTasksCalendarEvents(httpClient, organization_id, workspace_id, { date_from, date_to, calendar_event_id, hidden } = {}, signal) {
30191
30196
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/calendar`, {
30192
30197
  signal,
30193
30198
  searchParams: buildSearchParams$3({
30194
30199
  date_from,
30195
30200
  date_to,
30196
30201
  calendar_event_id,
30197
- time_zone,
30198
30202
  hidden
30199
30203
  })
30200
30204
  }).json();
30201
30205
  }
30202
- async function putTasksCalendarRange(httpClient, organization_id, workspace_id, date_from, date_to, timezone, signal) {
30206
+ async function putTasksCalendarRange(httpClient, organization_id, workspace_id, date_from, date_to, signal) {
30203
30207
  return await httpClient.put(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/calendar`, {
30204
30208
  signal,
30205
30209
  searchParams: buildSearchParams$3({
30206
30210
  date_from,
30207
- date_to,
30208
- timezone
30211
+ date_to
30209
30212
  })
30210
30213
  }).json();
30211
30214
  }
@@ -30229,7 +30232,7 @@ async function getTasksRecurringInstancesClassic(httpClient, organization_id, wo
30229
30232
  })
30230
30233
  }).json();
30231
30234
  }
30232
- async function getStreamTasks(httpClient, organization_id, workspace_id, { with_entries, pinned, order_by, status_id, toggl_user_id, name, has_time_entries, has_time_blocks, has_dates, archived, include_project_completed, include_drafts, project_id, parent_task_id, start_date, end_date, active_by_date, start_date_from, start_date_to, end_date_from, end_date_to, dates_overlap_start, dates_overlap_end, estimated_mins_min, estimated_mins_max, source, priority, is_priority, state, time_block_id, time_block_completed, team_id, assignee_user_id, tag_id, recurring, recurring_task_ids, client_id, include_ghost_assignees, include_assignees, assignee_ghost_id, cf_filter } = {}, signal) {
30235
+ async function getStreamTasks(httpClient, organization_id, workspace_id, { with_entries, pinned, order_by, status_id, toggl_user_id, name, has_time_entries, has_time_blocks, has_dates, private: private_, archived, include_project_completed, include_drafts, project_id, parent_task_id, start_date, end_date, active_by_date, start_date_from, start_date_to, end_date_from, end_date_to, dates_overlap_start, dates_overlap_end, estimated_mins_min, estimated_mins_max, source, priority, is_priority, state, time_block_id, time_block_completed, team_id, assignee_user_id, tag_id, recurring, recurring_task_ids, client_id, include_ghost_assignees, include_assignees, assignee_ghost_id, cf_filter } = {}, signal) {
30233
30236
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/stream`, {
30234
30237
  signal,
30235
30238
  searchParams: buildSearchParams$3({
@@ -30242,6 +30245,7 @@ async function getStreamTasks(httpClient, organization_id, workspace_id, { with_
30242
30245
  has_time_entries,
30243
30246
  has_time_blocks,
30244
30247
  has_dates,
30248
+ private: private_,
30245
30249
  archived,
30246
30250
  include_project_completed,
30247
30251
  include_drafts,
@@ -30475,7 +30479,7 @@ async function createTimeEntryWithOrg(httpClient, organization_id, workspace_id,
30475
30479
  json: data
30476
30480
  }).json();
30477
30481
  }
30478
- async function getTimeEntriesRangeWithOrgClassic(httpClient, organization_id, workspace_id, { date_from, date_to, task_id, status_id, type, page, per_page, order_by, archived, time_block_id, include_taskless, expand_calendar_event, time_zone }, signal) {
30482
+ async function getTimeEntriesRangeWithOrgClassic(httpClient, organization_id, workspace_id, { date_from, date_to, task_id, status_id, type, page, per_page, order_by, archived, time_block_id, include_taskless, expand_calendar_event }, signal) {
30479
30483
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries`, {
30480
30484
  signal,
30481
30485
  searchParams: buildSearchParams$3({
@@ -30490,8 +30494,7 @@ async function getTimeEntriesRangeWithOrgClassic(httpClient, organization_id, wo
30490
30494
  archived,
30491
30495
  time_block_id,
30492
30496
  include_taskless,
30493
- expand_calendar_event,
30494
- time_zone
30497
+ expand_calendar_event
30495
30498
  })
30496
30499
  }).json();
30497
30500
  }
@@ -30543,7 +30546,7 @@ async function bulkSetDayDurationWithOrg(httpClient, organization_id, workspace_
30543
30546
  json: data
30544
30547
  }).json();
30545
30548
  }
30546
- async function getStreamTimeEntriesRangeWithOrg(httpClient, organization_id, workspace_id, { date_from, date_to, task_id, status_id, type, order_by, archived, include_taskless, expand_calendar_event, time_zone }, signal) {
30549
+ async function getStreamTimeEntriesRangeWithOrg(httpClient, organization_id, workspace_id, { date_from, date_to, task_id, status_id, type, order_by, archived, include_taskless, expand_calendar_event }, signal) {
30547
30550
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries/stream`, {
30548
30551
  signal,
30549
30552
  searchParams: buildSearchParams$3({
@@ -30555,8 +30558,7 @@ async function getStreamTimeEntriesRangeWithOrg(httpClient, organization_id, wor
30555
30558
  order_by,
30556
30559
  archived,
30557
30560
  include_taskless,
30558
- expand_calendar_event,
30559
- time_zone
30561
+ expand_calendar_event
30560
30562
  })
30561
30563
  }).json();
30562
30564
  }
@@ -30692,7 +30694,7 @@ const PublicMeEntryRequestSchema = /* @__PURE__ */ object$2({
30692
30694
  ]))
30693
30695
  });
30694
30696
  //#endregion
30695
- //#region ../../node_modules/.pnpm/@toggl+queries@0.15.21_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_e185795a21ccf0053f35bb3174ff9cd2/node_modules/@toggl/queries/dist/org/invitation/requests.mjs
30697
+ //#region ../../node_modules/.pnpm/@toggl+queries@0.15.24_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_ed9b6b8a86ac88aa35571489073a9959/node_modules/@toggl/queries/dist/org/invitation/requests.mjs
30696
30698
  async function getInvitations(httpClient, signal) {
30697
30699
  return (await httpClient.get(`invitations`, { signal })).json();
30698
30700
  }
@@ -30709,7 +30711,7 @@ async function resendInvitation(httpClient, organization_id, organization_user_i
30709
30711
  return (await httpClient.post(`organizations/${organization_id}/invitations/${organization_user_id}/resend`, { signal })).json();
30710
30712
  }
30711
30713
  //#endregion
30712
- //#region ../../node_modules/.pnpm/@toggl+queries@0.15.21_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_e185795a21ccf0053f35bb3174ff9cd2/node_modules/@toggl/queries/dist/org/utils/requests.mjs
30714
+ //#region ../../node_modules/.pnpm/@toggl+queries@0.15.24_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_ed9b6b8a86ac88aa35571489073a9959/node_modules/@toggl/queries/dist/org/utils/requests.mjs
30713
30715
  function buildSearchParams$1(params, flattenArrays = false) {
30714
30716
  const searchParams = new URLSearchParams();
30715
30717
  Object.entries(params).forEach(([key, value]) => {
@@ -30721,7 +30723,7 @@ function buildSearchParams$1(params, flattenArrays = false) {
30721
30723
  return searchParams;
30722
30724
  }
30723
30725
  //#endregion
30724
- //#region ../../node_modules/.pnpm/@toggl+queries@0.15.21_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_e185795a21ccf0053f35bb3174ff9cd2/node_modules/@toggl/queries/dist/org/organization-user/requests.mjs
30726
+ //#region ../../node_modules/.pnpm/@toggl+queries@0.15.24_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_ed9b6b8a86ac88aa35571489073a9959/node_modules/@toggl/queries/dist/org/organization-user/requests.mjs
30725
30727
  async function getOrganizationUser(httpClient, organization_id, organization_user_id, signal) {
30726
30728
  return (await httpClient.get(`organizations/${organization_id}/users/${organization_user_id}`, { signal })).json();
30727
30729
  }
@@ -30735,7 +30737,7 @@ async function patchOrganizationUserActive(httpClient, organization_id, organiza
30735
30737
  return (await httpClient.patch(`organizations/${organization_id}/users/${organization_user_id}/active_status/${status}`, { signal })).json();
30736
30738
  }
30737
30739
  //#endregion
30738
- //#region ../../node_modules/.pnpm/@toggl+queries@0.15.21_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_e185795a21ccf0053f35bb3174ff9cd2/node_modules/@toggl/queries/dist/org/workspace/requests.mjs
30740
+ //#region ../../node_modules/.pnpm/@toggl+queries@0.15.24_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_ed9b6b8a86ac88aa35571489073a9959/node_modules/@toggl/queries/dist/org/workspace/requests.mjs
30739
30741
  async function getWorkspaces(httpClient, organization_id, signal) {
30740
30742
  return (await httpClient.get(`organizations/${organization_id}/workspaces`, { signal })).json();
30741
30743
  }
@@ -30764,7 +30766,7 @@ const WorkingHoursUpdateInputSchema = /* @__PURE__ */ object$2({
30764
30766
  });
30765
30767
  const StatusOKSchema = /* @__PURE__ */ object$2({ status: /* @__PURE__ */ string$1() });
30766
30768
  //#endregion
30767
- //#region ../../node_modules/.pnpm/@toggl+queries@0.15.21_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_e185795a21ccf0053f35bb3174ff9cd2/node_modules/@toggl/queries/dist/shared-data/utils/requests.mjs
30769
+ //#region ../../node_modules/.pnpm/@toggl+queries@0.15.24_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_ed9b6b8a86ac88aa35571489073a9959/node_modules/@toggl/queries/dist/shared-data/utils/requests.mjs
30768
30770
  const META_SYMBOL = Symbol.for("querygen:response:meta");
30769
30771
  function withResponseMeta(data, headers, status) {
30770
30772
  if (!data) return data;
@@ -30791,7 +30793,7 @@ function buildSearchParams(params, flattenArrays = false) {
30791
30793
  return searchParams;
30792
30794
  }
30793
30795
  //#endregion
30794
- //#region ../../node_modules/.pnpm/@toggl+queries@0.15.21_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_e185795a21ccf0053f35bb3174ff9cd2/node_modules/@toggl/queries/dist/shared-data/public-holidays/requests.mjs
30796
+ //#region ../../node_modules/.pnpm/@toggl+queries@0.15.24_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_ed9b6b8a86ac88aa35571489073a9959/node_modules/@toggl/queries/dist/shared-data/public-holidays/requests.mjs
30795
30797
  async function getPublicHolidays(httpClient, year, { country } = {}, signal) {
30796
30798
  const response = await httpClient.get(`shared_data/api/publicholidays/${year}`, {
30797
30799
  signal,
@@ -30800,12 +30802,12 @@ async function getPublicHolidays(httpClient, year, { country } = {}, signal) {
30800
30802
  return withResponseMeta(await response.json(), response.headers, response.status);
30801
30803
  }
30802
30804
  //#endregion
30803
- //#region ../../node_modules/.pnpm/@toggl+queries@0.15.21_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_e185795a21ccf0053f35bb3174ff9cd2/node_modules/@toggl/queries/dist/shared-data/status/requests.mjs
30805
+ //#region ../../node_modules/.pnpm/@toggl+queries@0.15.24_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_ed9b6b8a86ac88aa35571489073a9959/node_modules/@toggl/queries/dist/shared-data/status/requests.mjs
30804
30806
  async function getStatus(httpClient, signal) {
30805
30807
  return (await httpClient.get(`shared_data/api/status`, { signal })).json();
30806
30808
  }
30807
30809
  //#endregion
30808
- //#region ../../node_modules/.pnpm/@toggl+queries@0.15.21_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_e185795a21ccf0053f35bb3174ff9cd2/node_modules/@toggl/queries/dist/org/timeoff/requests.mjs
30810
+ //#region ../../node_modules/.pnpm/@toggl+queries@0.15.24_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_ed9b6b8a86ac88aa35571489073a9959/node_modules/@toggl/queries/dist/org/timeoff/requests.mjs
30809
30811
  async function timeoffListMyEntries(httpClient, organization_id, { from, to }, signal) {
30810
30812
  return (await httpClient.get(`timeoff/organizations/${organization_id}/me`, {
30811
30813
  signal,
@@ -30833,7 +30835,7 @@ async function timeoffDeleteMyEntry(httpClient, organization_id, id, signal) {
30833
30835
  return response.json();
30834
30836
  }
30835
30837
  //#endregion
30836
- //#region ../../node_modules/.pnpm/@toggl+queries@0.15.21_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_e185795a21ccf0053f35bb3174ff9cd2/node_modules/@toggl/queries/dist/shared-data/working-hours/requests.mjs
30838
+ //#region ../../node_modules/.pnpm/@toggl+queries@0.15.24_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_ed9b6b8a86ac88aa35571489073a9959/node_modules/@toggl/queries/dist/shared-data/working-hours/requests.mjs
30837
30839
  async function getMyWorkingHours(httpClient, organization_id, signal) {
30838
30840
  return (await httpClient.get(`shared_data/api/workinghours/${organization_id}/me`, { signal })).json();
30839
30841
  }
@@ -34484,6 +34486,18 @@ async function getProjectGroupsClassic(httpClient, organization_id, workspace_id
34484
34486
  async function getProjectMarginTargets(httpClient, organization_id, workspace_id, signal) {
34485
34487
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/project-margin-targets`, { signal }).json();
34486
34488
  }
34489
+ async function getWorkspaceProjectMarginTarget(httpClient, organization_id, workspace_id, signal) {
34490
+ return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/project-margin-targets/workspace`, { signal }).json();
34491
+ }
34492
+ async function setWorkspaceProjectMarginTarget(httpClient, organization_id, workspace_id, data, signal) {
34493
+ return await httpClient.put(`organizations/${organization_id}/workspaces/${workspace_id}/project-margin-targets/workspace`, {
34494
+ signal,
34495
+ json: data
34496
+ }).json();
34497
+ }
34498
+ async function clearWorkspaceProjectMarginTarget(httpClient, organization_id, workspace_id, signal) {
34499
+ return await httpClient.delete(`organizations/${organization_id}/workspaces/${workspace_id}/project-margin-targets/workspace`, { signal }).json();
34500
+ }
34487
34501
  async function getProjectMarginTarget(httpClient, organization_id, workspace_id, project_id, signal) {
34488
34502
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/project-margin-targets/${project_id}`, { signal }).json();
34489
34503
  }
@@ -34553,6 +34567,29 @@ async function createTaskRate(httpClient, organization_id, workspace_id, task_id
34553
34567
  }).json();
34554
34568
  }
34555
34569
  //#endregion
34570
+ //#region ../focus-queries/dist/recurring-budget-suggestions/requests.ts
34571
+ async function getRecurringProjectBudgetSuggestion(httpClient, organization_id, workspace_id, project_id, { target_period_start }, signal) {
34572
+ return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/recurring-budget-suggestions/${project_id}`, {
34573
+ signal,
34574
+ searchParams: buildSearchParams$3({ target_period_start })
34575
+ }).json();
34576
+ }
34577
+ async function acceptARecurringProjectBudgetSuggestion(httpClient, organization_id, workspace_id, project_id, signal) {
34578
+ return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/recurring-budget-suggestions/${project_id}/accept`, { signal }).json();
34579
+ }
34580
+ async function dismissARecurringProjectBudgetSuggestion(httpClient, organization_id, workspace_id, project_id, signal) {
34581
+ return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/recurring-budget-suggestions/${project_id}/dismiss`, { signal }).json();
34582
+ }
34583
+ async function getTemplateEstimateSuggestion(httpClient, organization_id, workspace_id, project_id, signal) {
34584
+ return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/template-estimate-suggestions/${project_id}`, { signal }).json();
34585
+ }
34586
+ async function acceptATemplateEstimateSuggestion(httpClient, organization_id, workspace_id, project_id, signal) {
34587
+ return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/template-estimate-suggestions/${project_id}/accept`, { signal }).json();
34588
+ }
34589
+ async function dismissATemplateEstimateSuggestion(httpClient, organization_id, workspace_id, project_id, signal) {
34590
+ return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/template-estimate-suggestions/${project_id}/dismiss`, { signal }).json();
34591
+ }
34592
+ //#endregion
34556
34593
  //#region ../focus-queries/dist/reports/requests.ts
34557
34594
  async function getProfitabilityReport(httpClient, workspace_id, data, response_format, include_dicts, signal) {
34558
34595
  return await httpClient.post(`reports/workspaces/${workspace_id}/profitability`, {
@@ -34640,6 +34677,9 @@ async function getCurrentSubscription(httpClient, organization_id, signal) {
34640
34677
  async function getFeaturesUpsell(httpClient, organization_id, signal) {
34641
34678
  return await httpClient.get(`organizations/${organization_id}/subscriptions/features-upsell`, { signal }).json();
34642
34679
  }
34680
+ async function getSubscriptionPlans(httpClient, organization_id, signal) {
34681
+ return await httpClient.get(`organizations/${organization_id}/subscriptions/plans`, { signal }).json();
34682
+ }
34643
34683
  async function getCurrentTrial(httpClient, organization_id, signal) {
34644
34684
  return await httpClient.get(`organizations/${organization_id}/subscriptions/trials/current`, { signal }).json();
34645
34685
  }
@@ -36437,6 +36477,7 @@ const generatedFocusOperations = [
36437
36477
  },
36438
36478
  mcp: { entityTool: "organization" },
36439
36479
  inputSchema: /* @__PURE__ */ looseObject({
36480
+ active_members_only: /* @__PURE__ */ unknown$1(),
36440
36481
  filter: /* @__PURE__ */ unknown$1(),
36441
36482
  group_ids: /* @__PURE__ */ unknown$1(),
36442
36483
  organization_user_id: /* @__PURE__ */ number$2(),
@@ -37467,6 +37508,29 @@ const generatedFocusOperations = [
37467
37508
  ]));
37468
37509
  }
37469
37510
  },
37511
+ {
37512
+ id: "focus.projects.margin-targets-clear-workspace",
37513
+ family: "focus",
37514
+ resource: "projects",
37515
+ action: "margin-targets-clear-workspace",
37516
+ title: "Margin Targets Clear Workspace Projects",
37517
+ description: "Margin Targets Clear Workspace Projects.",
37518
+ safety: "delete",
37519
+ destructive: true,
37520
+ cli: {
37521
+ group: ["projects", "margin-targets"],
37522
+ command: "clear-workspace",
37523
+ interactive: "default"
37524
+ },
37525
+ mcp: { entityTool: "projects" },
37526
+ inputSchema: /* @__PURE__ */ looseObject({}),
37527
+ execute: (_input, { client }) => client.runGeneratedRequest("clearWorkspaceProjectMarginTarget", () => callGeneratedRequest(clearWorkspaceProjectMarginTarget, [
37528
+ client.httpClient,
37529
+ client.organizationId,
37530
+ client.workspaceIdNumber,
37531
+ void 0
37532
+ ]))
37533
+ },
37470
37534
  {
37471
37535
  id: "focus.projects.margin-targets-get",
37472
37536
  family: "focus",
@@ -37494,6 +37558,29 @@ const generatedFocusOperations = [
37494
37558
  ]));
37495
37559
  }
37496
37560
  },
37561
+ {
37562
+ id: "focus.projects.margin-targets-get-workspace",
37563
+ family: "focus",
37564
+ resource: "projects",
37565
+ action: "margin-targets-get-workspace",
37566
+ title: "Margin Targets Get Workspace Projects",
37567
+ description: "Margin Targets Get Workspace Projects.",
37568
+ safety: "read",
37569
+ destructive: false,
37570
+ cli: {
37571
+ group: ["projects", "margin-targets"],
37572
+ command: "get-workspace",
37573
+ interactive: "hidden"
37574
+ },
37575
+ mcp: { entityTool: "projects" },
37576
+ inputSchema: /* @__PURE__ */ looseObject({}),
37577
+ execute: (_input, { client }) => client.runGeneratedRequest("getWorkspaceProjectMarginTarget", () => callGeneratedRequest(getWorkspaceProjectMarginTarget, [
37578
+ client.httpClient,
37579
+ client.organizationId,
37580
+ client.workspaceIdNumber,
37581
+ void 0
37582
+ ]))
37583
+ },
37497
37584
  {
37498
37585
  id: "focus.projects.margin-targets-list",
37499
37586
  family: "focus",
@@ -37548,6 +37635,33 @@ const generatedFocusOperations = [
37548
37635
  ]));
37549
37636
  }
37550
37637
  },
37638
+ {
37639
+ id: "focus.projects.margin-targets-set-workspace",
37640
+ family: "focus",
37641
+ resource: "projects",
37642
+ action: "margin-targets-set-workspace",
37643
+ title: "Margin Targets Set Workspace Projects",
37644
+ description: "Margin Targets Set Workspace Projects.",
37645
+ safety: "read",
37646
+ destructive: false,
37647
+ cli: {
37648
+ group: ["projects", "margin-targets"],
37649
+ command: "set-workspace",
37650
+ interactive: "available"
37651
+ },
37652
+ mcp: { entityTool: "projects" },
37653
+ inputSchema: /* @__PURE__ */ looseObject({ payload: /* @__PURE__ */ looseObject({ target_percent: /* @__PURE__ */ number$2() }) }),
37654
+ execute: (input, { client }) => {
37655
+ const data = input;
37656
+ return client.runGeneratedRequest("setWorkspaceProjectMarginTarget", () => callGeneratedRequest(setWorkspaceProjectMarginTarget, [
37657
+ client.httpClient,
37658
+ client.organizationId,
37659
+ client.workspaceIdNumber,
37660
+ data.payload ?? data.data ?? data,
37661
+ void 0
37662
+ ]));
37663
+ }
37664
+ },
37551
37665
  {
37552
37666
  id: "focus.projects.pin",
37553
37667
  family: "focus",
@@ -39335,6 +39449,172 @@ const generatedFocusOperations = [
39335
39449
  ]));
39336
39450
  }
39337
39451
  },
39452
+ {
39453
+ id: "focus.recurring-budget-suggestions.accept-arecurring-project-budget-suggestion",
39454
+ family: "focus",
39455
+ resource: "recurring-budget-suggestions",
39456
+ action: "accept-arecurring-project-budget-suggestion",
39457
+ title: "Accept Arecurring Project Budget Suggestion Recurring Budget Suggestions",
39458
+ description: "Accept Arecurring Project Budget Suggestion Recurring Budget Suggestions.",
39459
+ safety: "read",
39460
+ destructive: false,
39461
+ cli: {
39462
+ group: ["recurring-budget-suggestions"],
39463
+ command: "accept-arecurring-project-budget-suggestion",
39464
+ interactive: "available"
39465
+ },
39466
+ mcp: { entityTool: "recurring-budget-suggestions" },
39467
+ inputSchema: /* @__PURE__ */ looseObject({ project_id: /* @__PURE__ */ number$2() }),
39468
+ execute: (input, { client }) => {
39469
+ const data = input;
39470
+ return client.runGeneratedRequest("acceptARecurringProjectBudgetSuggestion", () => callGeneratedRequest(acceptARecurringProjectBudgetSuggestion, [
39471
+ client.httpClient,
39472
+ client.organizationId,
39473
+ client.workspaceIdNumber,
39474
+ data.project_id,
39475
+ void 0
39476
+ ]));
39477
+ }
39478
+ },
39479
+ {
39480
+ id: "focus.recurring-budget-suggestions.accept-atemplate-estimate-suggestion",
39481
+ family: "focus",
39482
+ resource: "recurring-budget-suggestions",
39483
+ action: "accept-atemplate-estimate-suggestion",
39484
+ title: "Accept Atemplate Estimate Suggestion Recurring Budget Suggestions",
39485
+ description: "Accept Atemplate Estimate Suggestion Recurring Budget Suggestions.",
39486
+ safety: "read",
39487
+ destructive: false,
39488
+ cli: {
39489
+ group: ["recurring-budget-suggestions"],
39490
+ command: "accept-atemplate-estimate-suggestion",
39491
+ interactive: "available"
39492
+ },
39493
+ mcp: { entityTool: "recurring-budget-suggestions" },
39494
+ inputSchema: /* @__PURE__ */ looseObject({ project_id: /* @__PURE__ */ number$2() }),
39495
+ execute: (input, { client }) => {
39496
+ const data = input;
39497
+ return client.runGeneratedRequest("acceptATemplateEstimateSuggestion", () => callGeneratedRequest(acceptATemplateEstimateSuggestion, [
39498
+ client.httpClient,
39499
+ client.organizationId,
39500
+ client.workspaceIdNumber,
39501
+ data.project_id,
39502
+ void 0
39503
+ ]));
39504
+ }
39505
+ },
39506
+ {
39507
+ id: "focus.recurring-budget-suggestions.dismiss-arecurring-project-budget-suggestion",
39508
+ family: "focus",
39509
+ resource: "recurring-budget-suggestions",
39510
+ action: "dismiss-arecurring-project-budget-suggestion",
39511
+ title: "Dismiss Arecurring Project Budget Suggestion Recurring Budget Suggestions",
39512
+ description: "Dismiss Arecurring Project Budget Suggestion Recurring Budget Suggestions.",
39513
+ safety: "read",
39514
+ destructive: false,
39515
+ cli: {
39516
+ group: ["recurring-budget-suggestions"],
39517
+ command: "dismiss-arecurring-project-budget-suggestion",
39518
+ interactive: "available"
39519
+ },
39520
+ mcp: { entityTool: "recurring-budget-suggestions" },
39521
+ inputSchema: /* @__PURE__ */ looseObject({ project_id: /* @__PURE__ */ number$2() }),
39522
+ execute: (input, { client }) => {
39523
+ const data = input;
39524
+ return client.runGeneratedRequest("dismissARecurringProjectBudgetSuggestion", () => callGeneratedRequest(dismissARecurringProjectBudgetSuggestion, [
39525
+ client.httpClient,
39526
+ client.organizationId,
39527
+ client.workspaceIdNumber,
39528
+ data.project_id,
39529
+ void 0
39530
+ ]));
39531
+ }
39532
+ },
39533
+ {
39534
+ id: "focus.recurring-budget-suggestions.dismiss-atemplate-estimate-suggestion",
39535
+ family: "focus",
39536
+ resource: "recurring-budget-suggestions",
39537
+ action: "dismiss-atemplate-estimate-suggestion",
39538
+ title: "Dismiss Atemplate Estimate Suggestion Recurring Budget Suggestions",
39539
+ description: "Dismiss Atemplate Estimate Suggestion Recurring Budget Suggestions.",
39540
+ safety: "read",
39541
+ destructive: false,
39542
+ cli: {
39543
+ group: ["recurring-budget-suggestions"],
39544
+ command: "dismiss-atemplate-estimate-suggestion",
39545
+ interactive: "available"
39546
+ },
39547
+ mcp: { entityTool: "recurring-budget-suggestions" },
39548
+ inputSchema: /* @__PURE__ */ looseObject({ project_id: /* @__PURE__ */ number$2() }),
39549
+ execute: (input, { client }) => {
39550
+ const data = input;
39551
+ return client.runGeneratedRequest("dismissATemplateEstimateSuggestion", () => callGeneratedRequest(dismissATemplateEstimateSuggestion, [
39552
+ client.httpClient,
39553
+ client.organizationId,
39554
+ client.workspaceIdNumber,
39555
+ data.project_id,
39556
+ void 0
39557
+ ]));
39558
+ }
39559
+ },
39560
+ {
39561
+ id: "focus.recurring-budget-suggestions.get-recurring-project-budget-suggestion",
39562
+ family: "focus",
39563
+ resource: "recurring-budget-suggestions",
39564
+ action: "get-recurring-project-budget-suggestion",
39565
+ title: "Get Recurring Project Budget Suggestion Recurring Budget Suggestions",
39566
+ description: "Get Recurring Project Budget Suggestion Recurring Budget Suggestions.",
39567
+ safety: "read",
39568
+ destructive: false,
39569
+ cli: {
39570
+ group: ["recurring-budget-suggestions"],
39571
+ command: "get-recurring-project-budget-suggestion",
39572
+ interactive: "hidden"
39573
+ },
39574
+ mcp: { entityTool: "recurring-budget-suggestions" },
39575
+ inputSchema: /* @__PURE__ */ looseObject({
39576
+ project_id: /* @__PURE__ */ number$2(),
39577
+ target_period_start: /* @__PURE__ */ unknown$1()
39578
+ }),
39579
+ execute: (input, { client }) => {
39580
+ const data = input;
39581
+ return client.runGeneratedRequest("getRecurringProjectBudgetSuggestion", () => callGeneratedRequest(getRecurringProjectBudgetSuggestion, [
39582
+ client.httpClient,
39583
+ client.organizationId,
39584
+ client.workspaceIdNumber,
39585
+ data.project_id,
39586
+ data,
39587
+ void 0
39588
+ ]));
39589
+ }
39590
+ },
39591
+ {
39592
+ id: "focus.recurring-budget-suggestions.get-template-estimate-suggestion",
39593
+ family: "focus",
39594
+ resource: "recurring-budget-suggestions",
39595
+ action: "get-template-estimate-suggestion",
39596
+ title: "Get Template Estimate Suggestion Recurring Budget Suggestions",
39597
+ description: "Get Template Estimate Suggestion Recurring Budget Suggestions.",
39598
+ safety: "read",
39599
+ destructive: false,
39600
+ cli: {
39601
+ group: ["recurring-budget-suggestions"],
39602
+ command: "get-template-estimate-suggestion",
39603
+ interactive: "available"
39604
+ },
39605
+ mcp: { entityTool: "recurring-budget-suggestions" },
39606
+ inputSchema: /* @__PURE__ */ looseObject({ project_id: /* @__PURE__ */ number$2() }),
39607
+ execute: (input, { client }) => {
39608
+ const data = input;
39609
+ return client.runGeneratedRequest("getTemplateEstimateSuggestion", () => callGeneratedRequest(getTemplateEstimateSuggestion, [
39610
+ client.httpClient,
39611
+ client.organizationId,
39612
+ client.workspaceIdNumber,
39613
+ data.project_id,
39614
+ void 0
39615
+ ]));
39616
+ }
39617
+ },
39338
39618
  {
39339
39619
  id: "focus.reports.get-flexq-data",
39340
39620
  family: "focus",
@@ -39993,6 +40273,28 @@ const generatedFocusOperations = [
39993
40273
  void 0
39994
40274
  ]))
39995
40275
  },
40276
+ {
40277
+ id: "focus.subscriptions.get-plans",
40278
+ family: "focus",
40279
+ resource: "subscriptions",
40280
+ action: "get-plans",
40281
+ title: "Get Plans Subscriptions",
40282
+ description: "Get Plans Subscriptions.",
40283
+ safety: "read",
40284
+ destructive: false,
40285
+ cli: {
40286
+ group: ["subscriptions"],
40287
+ command: "get-plans",
40288
+ interactive: "hidden"
40289
+ },
40290
+ mcp: { entityTool: "subscriptions" },
40291
+ inputSchema: /* @__PURE__ */ looseObject({}),
40292
+ execute: (_input, { client }) => client.runGeneratedRequest("getSubscriptionPlans", () => callGeneratedRequest(getSubscriptionPlans, [
40293
+ client.httpClient,
40294
+ client.organizationId,
40295
+ void 0
40296
+ ]))
40297
+ },
39996
40298
  {
39997
40299
  id: "focus.subscriptions.upsert-forced-trial",
39998
40300
  family: "focus",
@@ -40657,8 +40959,7 @@ const generatedFocusOperations = [
40657
40959
  calendar_event_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
40658
40960
  date_from: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
40659
40961
  date_to: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
40660
- hidden: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
40661
- time_zone: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1())
40962
+ hidden: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1())
40662
40963
  }),
40663
40964
  execute: (input, { client }) => {
40664
40965
  const data = input;
@@ -40754,6 +41055,7 @@ const generatedFocusOperations = [
40754
41055
  parent_task_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
40755
41056
  pinned: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
40756
41057
  priority: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
41058
+ private_: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
40757
41059
  project_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
40758
41060
  recurring: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
40759
41061
  recurring_task_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
@@ -41176,8 +41478,7 @@ const generatedFocusOperations = [
41176
41478
  mcp: { entityTool: "tasks" },
41177
41479
  inputSchema: /* @__PURE__ */ looseObject({
41178
41480
  date_from: /* @__PURE__ */ unknown$1(),
41179
- date_to: /* @__PURE__ */ unknown$1(),
41180
- timezone: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1())
41481
+ date_to: /* @__PURE__ */ unknown$1()
41181
41482
  }),
41182
41483
  execute: (input, { client }) => {
41183
41484
  const data = input;
@@ -41187,7 +41488,6 @@ const generatedFocusOperations = [
41187
41488
  client.workspaceIdNumber,
41188
41489
  data.date_from,
41189
41490
  data.date_to,
41190
- data.timezone,
41191
41491
  void 0
41192
41492
  ]));
41193
41493
  }
@@ -41946,7 +42246,6 @@ const generatedFocusOperations = [
41946
42246
  order_by: /* @__PURE__ */ unknown$1(),
41947
42247
  status_id: /* @__PURE__ */ number$2(),
41948
42248
  task_id: /* @__PURE__ */ number$2(),
41949
- time_zone: /* @__PURE__ */ unknown$1(),
41950
42249
  type: /* @__PURE__ */ unknown$1()
41951
42250
  }),
41952
42251
  execute: (input, { client }) => {
@@ -45325,7 +45624,7 @@ import_main.default.config({
45325
45624
  quiet: true,
45326
45625
  ignore: ["MISSING_ENV_FILE"]
45327
45626
  });
45328
- const packageVersion = "1.5.29";
45627
+ const packageVersion = "1.5.30";
45329
45628
  function resolvePublicUrls() {
45330
45629
  return {
45331
45630
  focusApiUrl: process.env.TOGGL_FOCUS_API_URL ?? "https://focus.toggl.com",
@@ -45390,4 +45689,4 @@ function bootstrapServer(options = {}) {
45390
45689
  //#endregion
45391
45690
  export { runMcpCli as n, bootstrapServer as t };
45392
45691
 
45393
- //# sourceMappingURL=src-RzQj8FxB.js.map
45692
+ //# sourceMappingURL=src-DSUxKCOR.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@togglhq/mcp",
3
- "version": "1.5.29",
3
+ "version": "1.5.30",
4
4
  "description": "Toggl 2.0 MCP server for Claude Code, Claude Desktop, and other MCP clients.",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",