@togglhq/mcp 1.11.159 → 1.11.160

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 getProductAnalyticsDistinctId, c as resolvePublicSentryDsn, i as captureToolInvocation, l as shutdownProductAnalytics, n as runMcpCli, o as initProductAnalytics, r as PUBLIC_SENTRY_PRIVACY_OPTIONS, s as resolveProductAnalyticsDistinctId } from "./src-TudYTshw.js";
2
+ import { a as getProductAnalyticsDistinctId, c as resolvePublicSentryDsn, i as captureToolInvocation, l as shutdownProductAnalytics, n as runMcpCli, o as initProductAnalytics, r as PUBLIC_SENTRY_PRIVACY_OPTIONS, s as resolveProductAnalyticsDistinctId } from "./src-dlt2Z5Qw.js";
3
3
  import * as Sentry from "@sentry/node";
4
4
  //#region src/analytics-tool-metadata.ts
5
5
  /**
@@ -162,7 +162,7 @@ function wrapServerWithProductAnalytics(server) {
162
162
  }
163
163
  //#endregion
164
164
  //#region src/cli.ts
165
- const packageVersion = "1.11.159";
165
+ const packageVersion = "1.11.160";
166
166
  let sentryEnabled = false;
167
167
  let productAnalyticsEnabled = false;
168
168
  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-TudYTshw.js";
2
+ import { n as runMcpCli, t as bootstrapServer } from "./src-dlt2Z5Qw.js";
3
3
  export { bootstrapServer, runMcpCli };
@@ -35225,7 +35225,8 @@ const OrganizationUserResponseSchema = /* @__PURE__ */ object({
35225
35225
  work_role_id: /* @__PURE__ */ number(),
35226
35226
  workspace_user_id: /* @__PURE__ */ number()
35227
35227
  })),
35228
- custom_field_values: /* @__PURE__ */ optional(/* @__PURE__ */ array(CustomFieldValueSchema))
35228
+ custom_field_values: /* @__PURE__ */ optional(/* @__PURE__ */ array(CustomFieldValueSchema)),
35229
+ has_calendar_integration: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ boolean(), /* @__PURE__ */ description("HasCalendarIntegration is true when the member has a calendar connected in Focus. The field is present only when the request sets include_calendar_integration to true and the calendar lookup succeeded. The field is absent when the lookup failed. Absent means unknown. It does not mean false. A member who connected a calendar in another product stays false here until they open the Focus calendar integrations page.")))
35229
35230
  });
35230
35231
  const ProjectBulkArchivePayloadSchema = /* @__PURE__ */ object({ project_ids: /* @__PURE__ */ pipe(/* @__PURE__ */ array(/* @__PURE__ */ number()), /* @__PURE__ */ minLength(1), /* @__PURE__ */ maxLength(100)) });
35231
35232
  const ProjectBulkRestorePayloadSchema = /* @__PURE__ */ object({ project_ids: /* @__PURE__ */ pipe(/* @__PURE__ */ array(/* @__PURE__ */ number()), /* @__PURE__ */ minLength(1), /* @__PURE__ */ maxLength(100)) });
@@ -37321,7 +37322,7 @@ async function getOrganizationTeamsClassic(httpClient, organization_id, { worksp
37321
37322
  })
37322
37323
  }).json();
37323
37324
  }
37324
- async function getOrganizationUsersClassic(httpClient, organization_id, { workspaces, user_account_ids, org_user_ids, groups, toggl_products, active_status, roles, only_admins, filter, sort_dir, page, per_page, tag_ids, include_working_hours, include_rates, pinned_ids, has_group, cf_filter, include_custom_fields } = {}, signal) {
37325
+ async function getOrganizationUsersClassic(httpClient, organization_id, { workspaces, user_account_ids, org_user_ids, groups, toggl_products, active_status, roles, only_admins, filter, sort_dir, page, per_page, tag_ids, include_working_hours, include_rates, pinned_ids, has_group, cf_filter, include_custom_fields, include_calendar_integration } = {}, signal) {
37325
37326
  const response = await httpClient.get(`organizations/${organization_id}/users`, {
37326
37327
  signal,
37327
37328
  searchParams: buildSearchParams$2({
@@ -37343,7 +37344,8 @@ async function getOrganizationUsersClassic(httpClient, organization_id, { worksp
37343
37344
  pinned_ids,
37344
37345
  has_group,
37345
37346
  cf_filter,
37346
- include_custom_fields
37347
+ include_custom_fields,
37348
+ include_calendar_integration
37347
37349
  }, true)
37348
37350
  });
37349
37351
  return withResponseMeta(await response.json(), response.headers, response.status);
@@ -38206,7 +38208,7 @@ const PublicMeEntryRequestSchema = /* @__PURE__ */ object$2({
38206
38208
  ]))
38207
38209
  });
38208
38210
  //#endregion
38209
- //#region ../../node_modules/.pnpm/@toggl+queries@2.2.142_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_f752d01d71076b351f7ec965111f4ebb/node_modules/@toggl/queries/dist/org/invitation/requests.mjs
38211
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.2.144_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_5591596a5951128a01d17dfee9a3fece/node_modules/@toggl/queries/dist/org/invitation/requests.mjs
38210
38212
  async function getInvitations(httpClient, signal) {
38211
38213
  return (await httpClient.get(`invitations`, { signal })).json();
38212
38214
  }
@@ -38223,7 +38225,7 @@ async function resendInvitation(httpClient, organization_id, organization_user_i
38223
38225
  return (await httpClient.post(`organizations/${organization_id}/invitations/${organization_user_id}/resend`, { signal })).json();
38224
38226
  }
38225
38227
  //#endregion
38226
- //#region ../../node_modules/.pnpm/@toggl+queries@2.2.142_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_f752d01d71076b351f7ec965111f4ebb/node_modules/@toggl/queries/dist/org/utils/requests.mjs
38228
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.2.144_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_5591596a5951128a01d17dfee9a3fece/node_modules/@toggl/queries/dist/org/utils/requests.mjs
38227
38229
  function buildSearchParams(params, flattenArrays = false) {
38228
38230
  const searchParams = new URLSearchParams();
38229
38231
  Object.entries(params).forEach(([key, value]) => {
@@ -38235,7 +38237,7 @@ function buildSearchParams(params, flattenArrays = false) {
38235
38237
  return searchParams;
38236
38238
  }
38237
38239
  //#endregion
38238
- //#region ../../node_modules/.pnpm/@toggl+queries@2.2.142_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_f752d01d71076b351f7ec965111f4ebb/node_modules/@toggl/queries/dist/org/organization-user/requests.mjs
38240
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.2.144_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_5591596a5951128a01d17dfee9a3fece/node_modules/@toggl/queries/dist/org/organization-user/requests.mjs
38239
38241
  async function getOrganizationUser(httpClient, organization_id, organization_user_id, signal) {
38240
38242
  return (await httpClient.get(`organizations/${organization_id}/users/${organization_user_id}`, { signal })).json();
38241
38243
  }
@@ -38249,7 +38251,7 @@ async function patchOrganizationUserActive(httpClient, organization_id, organiza
38249
38251
  return (await httpClient.patch(`organizations/${organization_id}/users/${organization_user_id}/active_status/${status}`, { signal })).json();
38250
38252
  }
38251
38253
  //#endregion
38252
- //#region ../../node_modules/.pnpm/@toggl+queries@2.2.142_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_f752d01d71076b351f7ec965111f4ebb/node_modules/@toggl/queries/dist/org/workspace/requests.mjs
38254
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.2.144_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_5591596a5951128a01d17dfee9a3fece/node_modules/@toggl/queries/dist/org/workspace/requests.mjs
38253
38255
  async function getWorkspaces(httpClient, organization_id, signal) {
38254
38256
  return (await httpClient.get(`organizations/${organization_id}/workspaces`, { signal })).json();
38255
38257
  }
@@ -38269,7 +38271,7 @@ const WorkingHoursUpdateInputSchema = /* @__PURE__ */ object$2({
38269
38271
  });
38270
38272
  const StatusOKSchema = /* @__PURE__ */ object$2({ status: /* @__PURE__ */ string$1() });
38271
38273
  //#endregion
38272
- //#region ../../node_modules/.pnpm/@toggl+queries@2.2.142_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_f752d01d71076b351f7ec965111f4ebb/node_modules/@toggl/queries/dist/org/holiday-calendar/requests.mjs
38274
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.2.144_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_5591596a5951128a01d17dfee9a3fece/node_modules/@toggl/queries/dist/org/holiday-calendar/requests.mjs
38273
38275
  async function holidayListDates(httpClient, organization_id, { year, country }, signal) {
38274
38276
  return (await httpClient.get(`holidays/organizations/${organization_id}/calendar/dates`, {
38275
38277
  signal,
@@ -38280,12 +38282,12 @@ async function holidayListDates(httpClient, organization_id, { year, country },
38280
38282
  })).json();
38281
38283
  }
38282
38284
  //#endregion
38283
- //#region ../../node_modules/.pnpm/@toggl+queries@2.2.142_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_f752d01d71076b351f7ec965111f4ebb/node_modules/@toggl/queries/dist/shared-data/status/requests.mjs
38285
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.2.144_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_5591596a5951128a01d17dfee9a3fece/node_modules/@toggl/queries/dist/shared-data/status/requests.mjs
38284
38286
  async function getStatus(httpClient, signal) {
38285
38287
  return (await httpClient.get(`shared_data/api/status`, { signal })).json();
38286
38288
  }
38287
38289
  //#endregion
38288
- //#region ../../node_modules/.pnpm/@toggl+queries@2.2.142_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_f752d01d71076b351f7ec965111f4ebb/node_modules/@toggl/queries/dist/org/timeoff/requests.mjs
38290
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.2.144_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_5591596a5951128a01d17dfee9a3fece/node_modules/@toggl/queries/dist/org/timeoff/requests.mjs
38289
38291
  async function timeoffListMyEntries(httpClient, organization_id, { from, to }, signal) {
38290
38292
  return (await httpClient.get(`timeoff/organizations/${organization_id}/me`, {
38291
38293
  signal,
@@ -38313,7 +38315,7 @@ async function timeoffDeleteMyEntry(httpClient, organization_id, id, signal) {
38313
38315
  return response.json();
38314
38316
  }
38315
38317
  //#endregion
38316
- //#region ../../node_modules/.pnpm/@toggl+queries@2.2.142_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_f752d01d71076b351f7ec965111f4ebb/node_modules/@toggl/queries/dist/shared-data/working-hours/requests.mjs
38318
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.2.144_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_5591596a5951128a01d17dfee9a3fece/node_modules/@toggl/queries/dist/shared-data/working-hours/requests.mjs
38317
38319
  async function getMyWorkingHours(httpClient, organization_id, signal) {
38318
38320
  return (await httpClient.get(`shared_data/api/workinghours/${organization_id}/me`, { signal })).json();
38319
38321
  }
@@ -42559,6 +42561,9 @@ async function dismissATemplateEstimateSuggestion(httpClient, organization_id, w
42559
42561
  }
42560
42562
  //#endregion
42561
42563
  //#region ../focus-queries/dist/reports/requests.ts
42564
+ async function getForecastAvailability(httpClient, workspace_id, signal) {
42565
+ return await httpClient.get(`reports/workspaces/${workspace_id}/forecast-availability`, { signal }).json();
42566
+ }
42562
42567
  async function getProfitabilityReport(httpClient, workspace_id, data, response_format, include_dicts, xTogglReportExport, signal) {
42563
42568
  return await httpClient.post(`reports/workspaces/${workspace_id}/profitability`, {
42564
42569
  signal,
@@ -43004,6 +43009,21 @@ async function upsertTimeEntryConstraints(httpClient, workspace_id, data, signal
43004
43009
  }).json();
43005
43010
  }
43006
43011
  //#endregion
43012
+ //#region ../focus-queries/dist/time-entry-groups/requests.ts
43013
+ async function getTimeEntryGroupsUsersClassic(httpClient, organization_id, workspace_id, { start_date, end_date, user_id, page, per_page, order_by }, signal) {
43014
+ return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries/groups/users`, {
43015
+ signal,
43016
+ searchParams: buildSearchParams$2({
43017
+ start_date,
43018
+ end_date,
43019
+ user_id,
43020
+ page,
43021
+ per_page,
43022
+ order_by
43023
+ })
43024
+ }).json();
43025
+ }
43026
+ //#endregion
43007
43027
  //#region ../focus-queries/dist/time-off/requests.ts
43008
43028
  async function getTimeoffsByUserIds(httpClient, organization_id, { user_id, start_date, end_date }, signal) {
43009
43029
  return await httpClient.get(`organizations/${organization_id}/timeoff`, {
@@ -44474,6 +44494,13 @@ const generatedFocusOperations = [
44474
44494
  icon: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44475
44495
  name: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
44476
44496
  project_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44497
+ recurrence: /* @__PURE__ */ optional$1(/* @__PURE__ */ picklist$1([
44498
+ "daily",
44499
+ "weekly",
44500
+ "daily_workdays",
44501
+ "monthly"
44502
+ ])),
44503
+ start_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1())),
44477
44504
  tag_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
44478
44505
  target_seconds: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
44479
44506
  task_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
@@ -48047,6 +48074,28 @@ const generatedFocusOperations = [
48047
48074
  ]));
48048
48075
  }
48049
48076
  },
48077
+ {
48078
+ id: "focus.reports.get-forecast-availability",
48079
+ family: "focus",
48080
+ resource: "reports",
48081
+ action: "get-forecast-availability",
48082
+ title: "Get Forecast Availability Reports",
48083
+ description: "Get Forecast Availability Reports.",
48084
+ safety: "read",
48085
+ destructive: false,
48086
+ cli: {
48087
+ group: ["reports"],
48088
+ command: "get-forecast-availability",
48089
+ interactive: "hidden"
48090
+ },
48091
+ mcp: { entityTool: "reports" },
48092
+ inputSchema: /* @__PURE__ */ looseObject({}),
48093
+ execute: (_input, { client }) => client.runGeneratedRequest("getForecastAvailability", () => callGeneratedRequest(getForecastAvailability, [
48094
+ client.httpClient,
48095
+ client.workspaceIdNumber,
48096
+ void 0
48097
+ ]))
48098
+ },
48050
48099
  {
48051
48100
  id: "focus.reports.get-profitability",
48052
48101
  family: "focus",
@@ -51707,6 +51756,40 @@ const generatedFocusOperations = [
51707
51756
  ]));
51708
51757
  }
51709
51758
  },
51759
+ {
51760
+ id: "focus.time-entries.groups-get-users",
51761
+ family: "focus",
51762
+ resource: "time-entries",
51763
+ action: "groups-get-users",
51764
+ title: "Groups Get Users Time Entries",
51765
+ description: "Groups Get Users Time Entries.",
51766
+ safety: "read",
51767
+ destructive: false,
51768
+ cli: {
51769
+ group: ["time-entries", "groups"],
51770
+ command: "get-users",
51771
+ interactive: "hidden"
51772
+ },
51773
+ mcp: { entityTool: "time-entries" },
51774
+ inputSchema: /* @__PURE__ */ looseObject({
51775
+ end_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
51776
+ order_by: /* @__PURE__ */ unknown$1(),
51777
+ page: /* @__PURE__ */ number$2(),
51778
+ per_page: /* @__PURE__ */ unknown$1(),
51779
+ start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
51780
+ user_id: /* @__PURE__ */ number$2()
51781
+ }),
51782
+ execute: (input, { client }) => {
51783
+ const data = input;
51784
+ return client.runGeneratedRequest("getTimeEntryGroupsUsersClassic", () => callGeneratedRequest(getTimeEntryGroupsUsersClassic, [
51785
+ client.httpClient,
51786
+ client.organizationId,
51787
+ client.workspaceIdNumber,
51788
+ data,
51789
+ void 0
51790
+ ]));
51791
+ }
51792
+ },
51710
51793
  {
51711
51794
  id: "focus.time-entries.list",
51712
51795
  family: "focus",
@@ -54754,7 +54837,7 @@ function registerWorkspaceTools(server) {
54754
54837
  //#region src/package-version.ts
54755
54838
  function mcpPackageVersion() {
54756
54839
  try {
54757
- return "1.11.159";
54840
+ return "1.11.160";
54758
54841
  } catch {
54759
54842
  return "unknown";
54760
54843
  }
@@ -54929,7 +55012,7 @@ import_main.default.config({
54929
55012
  quiet: true,
54930
55013
  ignore: ["MISSING_ENV_FILE"]
54931
55014
  });
54932
- const packageVersion = "1.11.159";
55015
+ const packageVersion = "1.11.160";
54933
55016
  function resolvePublicUrls() {
54934
55017
  return {
54935
55018
  focusApiUrl: process.env.TOGGL_FOCUS_API_URL ?? "https://focus.toggl.com",
@@ -54994,4 +55077,4 @@ function bootstrapServer(options = {}) {
54994
55077
  //#endregion
54995
55078
  export { getProductAnalyticsDistinctId as a, resolvePublicSentryDsn as c, captureToolInvocation as i, shutdownProductAnalytics as l, runMcpCli as n, initProductAnalytics as o, PUBLIC_SENTRY_PRIVACY_OPTIONS as r, resolveProductAnalyticsDistinctId as s, bootstrapServer as t };
54996
55079
 
54997
- //# sourceMappingURL=src-TudYTshw.js.map
55080
+ //# sourceMappingURL=src-dlt2Z5Qw.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@togglhq/mcp",
3
- "version": "1.11.159",
3
+ "version": "1.11.160",
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",