@togglhq/mcp 1.10.0 → 1.11.0

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 { a as initProductAnalytics, c as shutdownProductAnalytics, i as getProductAnalyticsDistinctId, n as runMcpCli, o as redactUnsafeSentryMessages, r as captureToolInvocation, s as resolveProductAnalyticsDistinctId } from "./src-DKb3gN0f.js";
2
+ import { a as initProductAnalytics, c as shutdownProductAnalytics, i as getProductAnalyticsDistinctId, n as runMcpCli, o as redactUnsafeSentryMessages, r as captureToolInvocation, s as resolveProductAnalyticsDistinctId } from "./src-ELJOcCjX.js";
3
3
  import * as Sentry from "@sentry/node";
4
4
  //#region src/analytics-tool-metadata.ts
5
5
  /**
@@ -165,7 +165,7 @@ function wrapServerWithProductAnalytics(server) {
165
165
  }
166
166
  //#endregion
167
167
  //#region src/cli.ts
168
- const packageVersion = "1.10.0";
168
+ const packageVersion = "1.11.0";
169
169
  let sentryEnabled = false;
170
170
  let productAnalyticsEnabled = false;
171
171
  runMcpCli({
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-DKb3gN0f.js";
2
+ import { n as runMcpCli, t as bootstrapServer } from "./src-ELJOcCjX.js";
3
3
  export { bootstrapServer, runMcpCli };
@@ -37889,13 +37889,12 @@ async function getTasksCalendarEvents(httpClient, organization_id, workspace_id,
37889
37889
  })
37890
37890
  }).json();
37891
37891
  }
37892
- async function putTasksCalendarRange(httpClient, organization_id, workspace_id, date_from, date_to, skip_provider_refresh, signal) {
37892
+ async function putTasksCalendarRange(httpClient, organization_id, workspace_id, date_from, date_to, signal) {
37893
37893
  return await httpClient.put(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/calendar`, {
37894
37894
  signal,
37895
37895
  searchParams: buildSearchParams$2({
37896
37896
  date_from,
37897
- date_to,
37898
- skip_provider_refresh
37897
+ date_to
37899
37898
  })
37900
37899
  }).json();
37901
37900
  }
@@ -38215,7 +38214,7 @@ async function bulkSetDayDurationWithOrg(httpClient, organization_id, workspace_
38215
38214
  json: data
38216
38215
  }).json();
38217
38216
  }
38218
- async function getStreamTimeEntriesRangeWithOrg(httpClient, organization_id, workspace_id, { date_from, date_to, task_id, status_id, project_id, type, order_by, archived, include_taskless, expand_calendar_event }, signal) {
38217
+ 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) {
38219
38218
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries/stream`, {
38220
38219
  signal,
38221
38220
  searchParams: buildSearchParams$2({
@@ -38223,7 +38222,6 @@ async function getStreamTimeEntriesRangeWithOrg(httpClient, organization_id, wor
38223
38222
  date_to,
38224
38223
  task_id,
38225
38224
  status_id,
38226
- project_id,
38227
38225
  type,
38228
38226
  order_by,
38229
38227
  archived,
@@ -38374,7 +38372,7 @@ const PublicMeEntryRequestSchema = /* @__PURE__ */ object$2({
38374
38372
  ]))
38375
38373
  });
38376
38374
  //#endregion
38377
- //#region ../../node_modules/.pnpm/@toggl+queries@2.2.9_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_react_7a21258a25d85bb9a42e25798d118502/node_modules/@toggl/queries/dist/org/invitation/requests.mjs
38375
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.2.14_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_dee793081b6caaac32bda8ea5bb68b8d/node_modules/@toggl/queries/dist/org/invitation/requests.mjs
38378
38376
  async function getInvitations(httpClient, signal) {
38379
38377
  return (await httpClient.get(`invitations`, { signal })).json();
38380
38378
  }
@@ -38391,7 +38389,7 @@ async function resendInvitation(httpClient, organization_id, organization_user_i
38391
38389
  return (await httpClient.post(`organizations/${organization_id}/invitations/${organization_user_id}/resend`, { signal })).json();
38392
38390
  }
38393
38391
  //#endregion
38394
- //#region ../../node_modules/.pnpm/@toggl+queries@2.2.9_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_react_7a21258a25d85bb9a42e25798d118502/node_modules/@toggl/queries/dist/org/utils/requests.mjs
38392
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.2.14_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_dee793081b6caaac32bda8ea5bb68b8d/node_modules/@toggl/queries/dist/org/utils/requests.mjs
38395
38393
  const META_SYMBOL = Symbol.for("querygen:response:meta");
38396
38394
  function withResponseMeta(data, headers, status) {
38397
38395
  if (!data) return data;
@@ -38418,7 +38416,7 @@ function buildSearchParams(params, flattenArrays = false) {
38418
38416
  return searchParams;
38419
38417
  }
38420
38418
  //#endregion
38421
- //#region ../../node_modules/.pnpm/@toggl+queries@2.2.9_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_react_7a21258a25d85bb9a42e25798d118502/node_modules/@toggl/queries/dist/org/organization-user/requests.mjs
38419
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.2.14_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_dee793081b6caaac32bda8ea5bb68b8d/node_modules/@toggl/queries/dist/org/organization-user/requests.mjs
38422
38420
  async function getOrganizationUser(httpClient, organization_id, organization_user_id, signal) {
38423
38421
  return (await httpClient.get(`organizations/${organization_id}/users/${organization_user_id}`, { signal })).json();
38424
38422
  }
@@ -38432,7 +38430,7 @@ async function patchOrganizationUserActive(httpClient, organization_id, organiza
38432
38430
  return (await httpClient.patch(`organizations/${organization_id}/users/${organization_user_id}/active_status/${status}`, { signal })).json();
38433
38431
  }
38434
38432
  //#endregion
38435
- //#region ../../node_modules/.pnpm/@toggl+queries@2.2.9_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_react_7a21258a25d85bb9a42e25798d118502/node_modules/@toggl/queries/dist/org/workspace/requests.mjs
38433
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.2.14_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_dee793081b6caaac32bda8ea5bb68b8d/node_modules/@toggl/queries/dist/org/workspace/requests.mjs
38436
38434
  async function getWorkspaces(httpClient, organization_id, signal) {
38437
38435
  return (await httpClient.get(`organizations/${organization_id}/workspaces`, { signal })).json();
38438
38436
  }
@@ -38452,7 +38450,7 @@ const WorkingHoursUpdateInputSchema = /* @__PURE__ */ object$2({
38452
38450
  });
38453
38451
  const StatusOKSchema = /* @__PURE__ */ object$2({ status: /* @__PURE__ */ string$1() });
38454
38452
  //#endregion
38455
- //#region ../../node_modules/.pnpm/@toggl+queries@2.2.9_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_react_7a21258a25d85bb9a42e25798d118502/node_modules/@toggl/queries/dist/org/public-holidays/requests.mjs
38453
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.2.14_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_dee793081b6caaac32bda8ea5bb68b8d/node_modules/@toggl/queries/dist/org/public-holidays/requests.mjs
38456
38454
  async function getPublicHolidaysHolidayDomain(httpClient, year, { country, organization_id } = {}, signal) {
38457
38455
  const response = await httpClient.get(`holidays/publicholidays/${year}`, {
38458
38456
  signal,
@@ -38464,12 +38462,12 @@ async function getPublicHolidaysHolidayDomain(httpClient, year, { country, organ
38464
38462
  return withResponseMeta(await response.json(), response.headers, response.status);
38465
38463
  }
38466
38464
  //#endregion
38467
- //#region ../../node_modules/.pnpm/@toggl+queries@2.2.9_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_react_7a21258a25d85bb9a42e25798d118502/node_modules/@toggl/queries/dist/shared-data/status/requests.mjs
38465
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.2.14_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_dee793081b6caaac32bda8ea5bb68b8d/node_modules/@toggl/queries/dist/shared-data/status/requests.mjs
38468
38466
  async function getStatus(httpClient, signal) {
38469
38467
  return (await httpClient.get(`shared_data/api/status`, { signal })).json();
38470
38468
  }
38471
38469
  //#endregion
38472
- //#region ../../node_modules/.pnpm/@toggl+queries@2.2.9_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_react_7a21258a25d85bb9a42e25798d118502/node_modules/@toggl/queries/dist/org/timeoff/requests.mjs
38470
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.2.14_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_dee793081b6caaac32bda8ea5bb68b8d/node_modules/@toggl/queries/dist/org/timeoff/requests.mjs
38473
38471
  async function timeoffListMyEntries(httpClient, organization_id, { from, to }, signal) {
38474
38472
  return (await httpClient.get(`timeoff/organizations/${organization_id}/me`, {
38475
38473
  signal,
@@ -38497,7 +38495,7 @@ async function timeoffDeleteMyEntry(httpClient, organization_id, id, signal) {
38497
38495
  return response.json();
38498
38496
  }
38499
38497
  //#endregion
38500
- //#region ../../node_modules/.pnpm/@toggl+queries@2.2.9_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_react_7a21258a25d85bb9a42e25798d118502/node_modules/@toggl/queries/dist/shared-data/working-hours/requests.mjs
38498
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.2.14_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_dee793081b6caaac32bda8ea5bb68b8d/node_modules/@toggl/queries/dist/shared-data/working-hours/requests.mjs
38501
38499
  async function getMyWorkingHours(httpClient, organization_id, signal) {
38502
38500
  return (await httpClient.get(`shared_data/api/workinghours/${organization_id}/me`, { signal })).json();
38503
38501
  }
@@ -42317,14 +42315,13 @@ async function checkWorkspaceBillableRateConflicts(httpClient, organization_id,
42317
42315
  }
42318
42316
  //#endregion
42319
42317
  //#region ../focus-queries/dist/capacities/requests.ts
42320
- async function capacityGetComputations(httpClient, organization_id, workspace_id, group, { start_date, end_date, user_id, team_id, private: private_, task_source, unit, include_drafts, include_task_estimates }, signal) {
42318
+ async function capacityGetComputations(httpClient, organization_id, workspace_id, group, { user_id, start_date, end_date, private: private_, task_source, unit, include_drafts, include_task_estimates }, signal) {
42321
42319
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/capacities/${group}`, {
42322
42320
  signal,
42323
42321
  searchParams: buildSearchParams$2({
42322
+ user_id,
42324
42323
  start_date,
42325
42324
  end_date,
42326
- user_id,
42327
- team_id,
42328
42325
  private: private_,
42329
42326
  task_source,
42330
42327
  unit,
@@ -42384,15 +42381,6 @@ async function updateCustomField(httpClient, organization_id, workspace_id, cust
42384
42381
  async function deleteCustomField(httpClient, organization_id, workspace_id, custom_field_id, signal) {
42385
42382
  return await httpClient.delete(`organizations/${organization_id}/workspaces/${workspace_id}/custom-fields/${custom_field_id}`, { signal }).json();
42386
42383
  }
42387
- async function getCustomFieldAllowedUsers(httpClient, organization_id, workspace_id, custom_field_id, signal) {
42388
- return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/custom-fields/${custom_field_id}/allowed-users`, { signal }).json();
42389
- }
42390
- async function replaceCustomFieldAllowedUsers(httpClient, organization_id, workspace_id, custom_field_id, data, signal) {
42391
- return await httpClient.put(`organizations/${organization_id}/workspaces/${workspace_id}/custom-fields/${custom_field_id}/allowed-users`, {
42392
- signal,
42393
- json: data
42394
- }).json();
42395
- }
42396
42384
  async function getCustomFieldOptionsClassic(httpClient, organization_id, workspace_id, custom_field_id, { name, page, per_page, order_by } = {}, signal) {
42397
42385
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/custom-fields/${custom_field_id}/options`, {
42398
42386
  signal,
@@ -42700,6 +42688,9 @@ async function setWorkspaceProjectMarginTarget(httpClient, organization_id, work
42700
42688
  json: data
42701
42689
  }).json();
42702
42690
  }
42691
+ async function clearWorkspaceProjectMarginTarget(httpClient, organization_id, workspace_id, signal) {
42692
+ return await httpClient.delete(`organizations/${organization_id}/workspaces/${workspace_id}/project-margin-targets/workspace`, { signal }).json();
42693
+ }
42703
42694
  async function getProjectMarginTarget(httpClient, organization_id, workspace_id, project_id, signal) {
42704
42695
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/project-margin-targets/${project_id}`, { signal }).json();
42705
42696
  }
@@ -43003,10 +42994,9 @@ async function updateTaskEstimateAllocations(httpClient, organization_id, worksp
43003
42994
  }
43004
42995
  //#endregion
43005
42996
  //#region ../focus-queries/dist/task-groups/requests.ts
43006
- async function getUserTaskGroupsByProject(httpClient, organization_id, workspace_id, { project_id, source, priority, status_id, client_id, assignee_user_id, tag_id, team_id, user_tag_id, group_id, creator_id, name, start_date, end_date, start_date_from, start_date_to, end_date_from, end_date_to, private: private_, exclude_empty, include_unassigned, include_unmaterialized, collapse_recurring, include_assignees, min_days, include_drafts, cf_filter, user_cf_filter, xTimelineFetchTrigger }, signal) {
42997
+ async function getUserTaskGroupsByProject(httpClient, organization_id, workspace_id, { project_id, source, priority, status_id, client_id, assignee_user_id, tag_id, team_id, user_tag_id, group_id, creator_id, name, start_date, end_date, start_date_from, start_date_to, end_date_from, end_date_to, private: private_, exclude_empty, include_unassigned, include_unmaterialized, collapse_recurring, include_assignees, min_days, include_drafts, cf_filter, user_cf_filter }, signal) {
43007
42998
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/groups/users/by-project`, {
43008
42999
  signal,
43009
- headers: { "X-Timeline-Fetch-Trigger": xTimelineFetchTrigger },
43010
43000
  searchParams: buildSearchParams$2({
43011
43001
  project_id,
43012
43002
  source,
@@ -43039,10 +43029,9 @@ async function getUserTaskGroupsByProject(httpClient, organization_id, workspace
43039
43029
  })
43040
43030
  }).json();
43041
43031
  }
43042
- async function getUserTaskGroupsByTeam(httpClient, organization_id, workspace_id, { team_id, project_id, source, priority, status_id, client_id, assignee_user_id, tag_id, user_tag_id, group_id, creator_id, name, start_date, end_date, start_date_from, start_date_to, end_date_from, end_date_to, private: private_, exclude_empty, include_unassigned, include_unmaterialized, collapse_recurring, include_assignees, min_days, include_drafts, cf_filter, user_cf_filter, xTimelineFetchTrigger } = {}, signal) {
43032
+ async function getUserTaskGroupsByTeam(httpClient, organization_id, workspace_id, { team_id, project_id, source, priority, status_id, client_id, assignee_user_id, tag_id, user_tag_id, group_id, creator_id, name, start_date, end_date, start_date_from, start_date_to, end_date_from, end_date_to, private: private_, exclude_empty, include_unassigned, include_unmaterialized, collapse_recurring, include_assignees, min_days, include_drafts, cf_filter, user_cf_filter } = {}, signal) {
43043
43033
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/groups/users/by-team`, {
43044
43034
  signal,
43045
- headers: { "X-Timeline-Fetch-Trigger": xTimelineFetchTrigger },
43046
43035
  searchParams: buildSearchParams$2({
43047
43036
  team_id,
43048
43037
  project_id,
@@ -43075,10 +43064,9 @@ async function getUserTaskGroupsByTeam(httpClient, organization_id, workspace_id
43075
43064
  })
43076
43065
  }).json();
43077
43066
  }
43078
- async function getTaskGroupsClassic(httpClient, organization_id, workspace_id, group, { source, priority, status_id, project_id, client_id, assignee_user_id, tag_id, team_id, user_tag_id, group_id, creator_id, name, start_date, end_date, start_date_from, start_date_to, end_date_from, end_date_to, private: private_, exclude_empty, include_unassigned, include_unmaterialized, collapse_recurring, include_assignees, min_days, include_drafts, cf_filter, user_cf_filter, page, per_page, order_by, xTimelineFetchTrigger } = {}, signal) {
43067
+ async function getTaskGroupsClassic(httpClient, organization_id, workspace_id, group, { source, priority, status_id, project_id, client_id, assignee_user_id, tag_id, team_id, user_tag_id, group_id, creator_id, name, start_date, end_date, start_date_from, start_date_to, end_date_from, end_date_to, private: private_, exclude_empty, include_unassigned, include_unmaterialized, collapse_recurring, include_assignees, min_days, include_drafts, cf_filter, user_cf_filter, page, per_page, order_by } = {}, signal) {
43079
43068
  return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/groups/${group}`, {
43080
43069
  signal,
43081
- headers: { "X-Timeline-Fetch-Trigger": xTimelineFetchTrigger },
43082
43070
  searchParams: buildSearchParams$2({
43083
43071
  source,
43084
43072
  priority,
@@ -43668,7 +43656,6 @@ const generatedFocusOperations = [
43668
43656
  private_: /* @__PURE__ */ unknown$1(),
43669
43657
  start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
43670
43658
  task_source: /* @__PURE__ */ unknown$1(),
43671
- team_id: /* @__PURE__ */ number$2(),
43672
43659
  unit: /* @__PURE__ */ unknown$1(),
43673
43660
  user_id: /* @__PURE__ */ number$2()
43674
43661
  }),
@@ -44109,33 +44096,6 @@ const generatedFocusOperations = [
44109
44096
  ]));
44110
44097
  }
44111
44098
  },
44112
- {
44113
- id: "focus.custom-fields.get-allowed-users",
44114
- family: "focus",
44115
- resource: "custom-fields",
44116
- action: "get-allowed-users",
44117
- title: "Get Allowed Users Custom Fields",
44118
- description: "Get Allowed Users Custom Fields.",
44119
- safety: "read",
44120
- destructive: false,
44121
- cli: {
44122
- group: ["custom-fields"],
44123
- command: "get-allowed-users",
44124
- interactive: "available"
44125
- },
44126
- mcp: { entityTool: "custom-fields" },
44127
- inputSchema: /* @__PURE__ */ looseObject({ custom_field_id: /* @__PURE__ */ number$2() }),
44128
- execute: (input, { client }) => {
44129
- const data = input;
44130
- return client.runGeneratedRequest("getCustomFieldAllowedUsers", () => callGeneratedRequest(getCustomFieldAllowedUsers, [
44131
- client.httpClient,
44132
- client.organizationId,
44133
- client.workspaceIdNumber,
44134
- data.custom_field_id,
44135
- void 0
44136
- ]));
44137
- }
44138
- },
44139
44099
  {
44140
44100
  id: "focus.custom-fields.list",
44141
44101
  family: "focus",
@@ -44305,37 +44265,6 @@ const generatedFocusOperations = [
44305
44265
  ]));
44306
44266
  }
44307
44267
  },
44308
- {
44309
- id: "focus.custom-fields.replace-custom-field-allowed-users",
44310
- family: "focus",
44311
- resource: "custom-fields",
44312
- action: "replace-custom-field-allowed-users",
44313
- title: "Replace Custom Field Allowed Users Custom Fields",
44314
- description: "Replace Custom Field Allowed Users Custom Fields.",
44315
- safety: "update",
44316
- destructive: false,
44317
- cli: {
44318
- group: ["custom-fields"],
44319
- command: "replace-custom-field-allowed-users",
44320
- interactive: "default"
44321
- },
44322
- mcp: { entityTool: "custom-fields" },
44323
- inputSchema: /* @__PURE__ */ looseObject({
44324
- custom_field_id: /* @__PURE__ */ number$2(),
44325
- payload: /* @__PURE__ */ looseObject({ user_ids: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()) })
44326
- }),
44327
- execute: (input, { client }) => {
44328
- const data = input;
44329
- return client.runGeneratedRequest("replaceCustomFieldAllowedUsers", () => callGeneratedRequest(replaceCustomFieldAllowedUsers, [
44330
- client.httpClient,
44331
- client.organizationId,
44332
- client.workspaceIdNumber,
44333
- data.custom_field_id,
44334
- data.payload ?? data.data ?? data,
44335
- void 0
44336
- ]));
44337
- }
44338
- },
44339
44268
  {
44340
44269
  id: "focus.custom-fields.update",
44341
44270
  family: "focus",
@@ -44482,7 +44411,13 @@ const generatedFocusOperations = [
44482
44411
  },
44483
44412
  mcp: { entityTool: "goals" },
44484
44413
  inputSchema: /* @__PURE__ */ looseObject({ payload: /* @__PURE__ */ looseObject({
44414
+ billable: /* @__PURE__ */ boolean$1(),
44485
44415
  comparison: /* @__PURE__ */ picklist$1(["more_than", "less_than"]),
44416
+ end_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
44417
+ icon: /* @__PURE__ */ string$1(),
44418
+ monthly_anchor: /* @__PURE__ */ picklist$1(["calendar", "first_workday"]),
44419
+ name: /* @__PURE__ */ string$1(),
44420
+ project_ids: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()),
44486
44421
  recurrence: /* @__PURE__ */ picklist$1([
44487
44422
  "daily",
44488
44423
  "weekly",
@@ -44490,18 +44425,12 @@ const generatedFocusOperations = [
44490
44425
  "monthly"
44491
44426
  ]),
44492
44427
  start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
44428
+ tag_ids: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()),
44493
44429
  target_seconds: /* @__PURE__ */ number$2(),
44494
- billable: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
44430
+ task_ids: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()),
44431
+ weekdays: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()),
44495
44432
  client_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44496
- description: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44497
- end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
44498
- icon: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44499
- monthly_anchor: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["calendar", "first_workday"])),
44500
- name: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44501
- project_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44502
- tag_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44503
- task_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44504
- weekdays: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2()))
44433
+ description: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1())
44505
44434
  }) }),
44506
44435
  execute: (input, { client }) => {
44507
44436
  const data = input;
@@ -44607,6 +44536,13 @@ const generatedFocusOperations = [
44607
44536
  },
44608
44537
  mcp: { entityTool: "goals" },
44609
44538
  inputSchema: /* @__PURE__ */ looseObject({ payload: /* @__PURE__ */ looseObject({
44539
+ billable: /* @__PURE__ */ boolean$1(),
44540
+ comparison: /* @__PURE__ */ picklist$1(["more_than", "less_than"]),
44541
+ end_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
44542
+ icon: /* @__PURE__ */ string$1(),
44543
+ monthly_anchor: /* @__PURE__ */ picklist$1(["calendar", "first_workday"]),
44544
+ name: /* @__PURE__ */ string$1(),
44545
+ project_ids: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()),
44610
44546
  recurrence: /* @__PURE__ */ picklist$1([
44611
44547
  "daily",
44612
44548
  "weekly",
@@ -44614,19 +44550,12 @@ const generatedFocusOperations = [
44614
44550
  "monthly"
44615
44551
  ]),
44616
44552
  start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
44617
- billable: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
44553
+ tag_ids: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()),
44554
+ target_seconds: /* @__PURE__ */ number$2(),
44555
+ task_ids: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()),
44556
+ weekdays: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()),
44618
44557
  client_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44619
- comparison: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["more_than", "less_than"])),
44620
- description: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44621
- end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
44622
- icon: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44623
- monthly_anchor: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["calendar", "first_workday"])),
44624
- name: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44625
- project_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44626
- tag_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44627
- target_seconds: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
44628
- task_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44629
- weekdays: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2()))
44558
+ description: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1())
44630
44559
  }) }),
44631
44560
  execute: (input, { client }) => {
44632
44561
  const data = input;
@@ -45593,17 +45522,9 @@ const generatedFocusOperations = [
45593
45522
  mcp: { entityTool: "projects" },
45594
45523
  inputSchema: /* @__PURE__ */ looseObject({
45595
45524
  payload: /* @__PURE__ */ looseObject({
45596
- auto_compute_estimates: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
45597
- completion_mode: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1(["manual", "automatic"])),
45598
45525
  end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
45599
45526
  name: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
45600
45527
  pinned: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
45601
- rollover_mode: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1([
45602
- "expire",
45603
- "carry_all",
45604
- "carry_over"
45605
- ])),
45606
- rrule: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
45607
45528
  start_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()))
45608
45529
  }),
45609
45530
  project_id: /* @__PURE__ */ number$2()
@@ -46149,6 +46070,29 @@ const generatedFocusOperations = [
46149
46070
  ]));
46150
46071
  }
46151
46072
  },
46073
+ {
46074
+ id: "focus.projects.margin-targets-clear-workspace",
46075
+ family: "focus",
46076
+ resource: "projects",
46077
+ action: "margin-targets-clear-workspace",
46078
+ title: "Margin Targets Clear Workspace Projects",
46079
+ description: "Margin Targets Clear Workspace Projects.",
46080
+ safety: "delete",
46081
+ destructive: true,
46082
+ cli: {
46083
+ group: ["projects", "margin-targets"],
46084
+ command: "clear-workspace",
46085
+ interactive: "default"
46086
+ },
46087
+ mcp: { entityTool: "projects" },
46088
+ inputSchema: /* @__PURE__ */ looseObject({}),
46089
+ execute: (_input, { client }) => client.runGeneratedRequest("clearWorkspaceProjectMarginTarget", () => callGeneratedRequest(clearWorkspaceProjectMarginTarget, [
46090
+ client.httpClient,
46091
+ client.organizationId,
46092
+ client.workspaceIdNumber,
46093
+ void 0
46094
+ ]))
46095
+ },
46152
46096
  {
46153
46097
  id: "focus.projects.margin-targets-get",
46154
46098
  family: "focus",
@@ -48554,10 +48498,8 @@ const generatedFocusOperations = [
48554
48498
  "weekly",
48555
48499
  "monthly"
48556
48500
  ]),
48557
- charts: /* @__PURE__ */ unknown$1(),
48558
48501
  time: /* @__PURE__ */ string$1(),
48559
48502
  day: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
48560
- period: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
48561
48503
  recipient_team_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
48562
48504
  recipient_user_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
48563
48505
  recipient_workspace_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2()))
@@ -50568,8 +50510,7 @@ const generatedFocusOperations = [
50568
50510
  tag_id: /* @__PURE__ */ optional$1(tagIdFilterSchema),
50569
50511
  team_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50570
50512
  user_cf_filter: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50571
- user_tag_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50572
- xTimelineFetchTrigger: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1())
50513
+ user_tag_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
50573
50514
  }),
50574
50515
  execute: (input, { client }) => {
50575
50516
  const data = input;
@@ -50626,8 +50567,7 @@ const generatedFocusOperations = [
50626
50567
  tag_id: /* @__PURE__ */ number$2(),
50627
50568
  team_id: /* @__PURE__ */ number$2(),
50628
50569
  user_cf_filter: /* @__PURE__ */ unknown$1(),
50629
- user_tag_id: /* @__PURE__ */ number$2(),
50630
- xTimelineFetchTrigger: /* @__PURE__ */ unknown$1()
50570
+ user_tag_id: /* @__PURE__ */ number$2()
50631
50571
  }),
50632
50572
  execute: (input, { client }) => {
50633
50573
  const data = input;
@@ -50683,8 +50623,7 @@ const generatedFocusOperations = [
50683
50623
  tag_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50684
50624
  team_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50685
50625
  user_cf_filter: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1()),
50686
- user_tag_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
50687
- xTimelineFetchTrigger: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1())
50626
+ user_tag_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
50688
50627
  }),
50689
50628
  execute: (input, { client }) => {
50690
50629
  const data = input;
@@ -50951,8 +50890,7 @@ const generatedFocusOperations = [
50951
50890
  mcp: { entityTool: "tasks" },
50952
50891
  inputSchema: /* @__PURE__ */ looseObject({
50953
50892
  date_from: /* @__PURE__ */ unknown$1(),
50954
- date_to: /* @__PURE__ */ unknown$1(),
50955
- skip_provider_refresh: /* @__PURE__ */ optional$1(/* @__PURE__ */ unknown$1())
50893
+ date_to: /* @__PURE__ */ unknown$1()
50956
50894
  }),
50957
50895
  execute: (input, { client }) => {
50958
50896
  const data = input;
@@ -50962,7 +50900,6 @@ const generatedFocusOperations = [
50962
50900
  client.workspaceIdNumber,
50963
50901
  data.date_from,
50964
50902
  data.date_to,
50965
- data.skip_provider_refresh,
50966
50903
  void 0
50967
50904
  ]));
50968
50905
  }
@@ -51549,8 +51486,7 @@ const generatedFocusOperations = [
51549
51486
  required_fields: /* @__PURE__ */ array$1(/* @__PURE__ */ looseObject({ kind: /* @__PURE__ */ picklist$1([
51550
51487
  "project",
51551
51488
  "task",
51552
- "description",
51553
- "tags"
51489
+ "description"
51554
51490
  ]) })),
51555
51491
  disallow_billable_override: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1())
51556
51492
  }) }),
@@ -51753,7 +51689,6 @@ const generatedFocusOperations = [
51753
51689
  expand_calendar_event: /* @__PURE__ */ unknown$1(),
51754
51690
  include_taskless: /* @__PURE__ */ unknown$1(),
51755
51691
  order_by: /* @__PURE__ */ unknown$1(),
51756
- project_id: /* @__PURE__ */ number$2(),
51757
51692
  status_id: /* @__PURE__ */ number$2(),
51758
51693
  task_id: /* @__PURE__ */ number$2(),
51759
51694
  type: /* @__PURE__ */ unknown$1()
@@ -53371,9 +53306,6 @@ const generatedFocusOperations = [
53371
53306
  has_reached_task_threshold: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53372
53307
  import_data_banner_dismissed: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53373
53308
  new_users_trial_dismissed: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53374
- notify_project_alerts: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53375
- notify_project_member_added: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53376
- notify_task_assigned: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53377
53309
  onboarding_checklist_dismissed: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53378
53310
  onboarding_flow_dismissed: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
53379
53311
  onboarding_multi_day_task_created: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
@@ -54917,7 +54849,7 @@ function registerWorkspaceTools(server) {
54917
54849
  //#region src/package-version.ts
54918
54850
  function mcpPackageVersion() {
54919
54851
  try {
54920
- return "1.10.0";
54852
+ return "1.11.0";
54921
54853
  } catch {
54922
54854
  return "unknown";
54923
54855
  }
@@ -55092,7 +55024,7 @@ import_main.default.config({
55092
55024
  quiet: true,
55093
55025
  ignore: ["MISSING_ENV_FILE"]
55094
55026
  });
55095
- const packageVersion = "1.10.0";
55027
+ const packageVersion = "1.11.0";
55096
55028
  function resolvePublicUrls() {
55097
55029
  return {
55098
55030
  focusApiUrl: process.env.TOGGL_FOCUS_API_URL ?? "https://focus.toggl.com",
@@ -55157,4 +55089,4 @@ function bootstrapServer(options = {}) {
55157
55089
  //#endregion
55158
55090
  export { initProductAnalytics as a, shutdownProductAnalytics as c, getProductAnalyticsDistinctId as i, runMcpCli as n, redactUnsafeSentryMessages as o, captureToolInvocation as r, resolveProductAnalyticsDistinctId as s, bootstrapServer as t };
55159
55091
 
55160
- //# sourceMappingURL=src-DKb3gN0f.js.map
55092
+ //# sourceMappingURL=src-ELJOcCjX.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@togglhq/mcp",
3
- "version": "1.10.0",
3
+ "version": "1.11.0",
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",