@togglhq/mcp 1.11.144 → 1.11.146

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-kfccTxGe.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-BuYfRBM-.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.144";
165
+ const packageVersion = "1.11.146";
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-kfccTxGe.js";
2
+ import { n as runMcpCli, t as bootstrapServer } from "./src-BuYfRBM-.js";
3
3
  export { bootstrapServer, runMcpCli };
@@ -35205,7 +35205,8 @@ const OrganizationUserResponseSchema = /* @__PURE__ */ object({
35205
35205
  work_role_id: /* @__PURE__ */ number(),
35206
35206
  workspace_user_id: /* @__PURE__ */ number()
35207
35207
  })),
35208
- custom_field_values: /* @__PURE__ */ optional(/* @__PURE__ */ array(CustomFieldValueSchema))
35208
+ custom_field_values: /* @__PURE__ */ optional(/* @__PURE__ */ array(CustomFieldValueSchema)),
35209
+ 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.")))
35209
35210
  });
35210
35211
  const ProjectBulkArchivePayloadSchema = /* @__PURE__ */ object({ project_ids: /* @__PURE__ */ pipe(/* @__PURE__ */ array(/* @__PURE__ */ number()), /* @__PURE__ */ minLength(1), /* @__PURE__ */ maxLength(100)) });
35211
35212
  const ProjectBulkRestorePayloadSchema = /* @__PURE__ */ object({ project_ids: /* @__PURE__ */ pipe(/* @__PURE__ */ array(/* @__PURE__ */ number()), /* @__PURE__ */ minLength(1), /* @__PURE__ */ maxLength(100)) });
@@ -37301,7 +37302,7 @@ async function getOrganizationTeamsClassic(httpClient, organization_id, { worksp
37301
37302
  })
37302
37303
  }).json();
37303
37304
  }
37304
- 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) {
37305
+ 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) {
37305
37306
  const response = await httpClient.get(`organizations/${organization_id}/users`, {
37306
37307
  signal,
37307
37308
  searchParams: buildSearchParams$2({
@@ -37323,7 +37324,8 @@ async function getOrganizationUsersClassic(httpClient, organization_id, { worksp
37323
37324
  pinned_ids,
37324
37325
  has_group,
37325
37326
  cf_filter,
37326
- include_custom_fields
37327
+ include_custom_fields,
37328
+ include_calendar_integration
37327
37329
  }, true)
37328
37330
  });
37329
37331
  return withResponseMeta(await response.json(), response.headers, response.status);
@@ -38186,7 +38188,7 @@ const PublicMeEntryRequestSchema = /* @__PURE__ */ object$2({
38186
38188
  ]))
38187
38189
  });
38188
38190
  //#endregion
38189
- //#region ../../node_modules/.pnpm/@toggl+queries@2.2.124_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_969a045e6e4f645cea4cd5f88b441655/node_modules/@toggl/queries/dist/org/invitation/requests.mjs
38191
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.2.125_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_dd41a645f19849b5a4873ff5ff27ddc4/node_modules/@toggl/queries/dist/org/invitation/requests.mjs
38190
38192
  async function getInvitations(httpClient, signal) {
38191
38193
  return (await httpClient.get(`invitations`, { signal })).json();
38192
38194
  }
@@ -38203,7 +38205,7 @@ async function resendInvitation(httpClient, organization_id, organization_user_i
38203
38205
  return (await httpClient.post(`organizations/${organization_id}/invitations/${organization_user_id}/resend`, { signal })).json();
38204
38206
  }
38205
38207
  //#endregion
38206
- //#region ../../node_modules/.pnpm/@toggl+queries@2.2.124_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_969a045e6e4f645cea4cd5f88b441655/node_modules/@toggl/queries/dist/org/utils/requests.mjs
38208
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.2.125_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_dd41a645f19849b5a4873ff5ff27ddc4/node_modules/@toggl/queries/dist/org/utils/requests.mjs
38207
38209
  function buildSearchParams(params, flattenArrays = false) {
38208
38210
  const searchParams = new URLSearchParams();
38209
38211
  Object.entries(params).forEach(([key, value]) => {
@@ -38215,7 +38217,7 @@ function buildSearchParams(params, flattenArrays = false) {
38215
38217
  return searchParams;
38216
38218
  }
38217
38219
  //#endregion
38218
- //#region ../../node_modules/.pnpm/@toggl+queries@2.2.124_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_969a045e6e4f645cea4cd5f88b441655/node_modules/@toggl/queries/dist/org/organization-user/requests.mjs
38220
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.2.125_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_dd41a645f19849b5a4873ff5ff27ddc4/node_modules/@toggl/queries/dist/org/organization-user/requests.mjs
38219
38221
  async function getOrganizationUser(httpClient, organization_id, organization_user_id, signal) {
38220
38222
  return (await httpClient.get(`organizations/${organization_id}/users/${organization_user_id}`, { signal })).json();
38221
38223
  }
@@ -38229,7 +38231,7 @@ async function patchOrganizationUserActive(httpClient, organization_id, organiza
38229
38231
  return (await httpClient.patch(`organizations/${organization_id}/users/${organization_user_id}/active_status/${status}`, { signal })).json();
38230
38232
  }
38231
38233
  //#endregion
38232
- //#region ../../node_modules/.pnpm/@toggl+queries@2.2.124_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_969a045e6e4f645cea4cd5f88b441655/node_modules/@toggl/queries/dist/org/workspace/requests.mjs
38234
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.2.125_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_dd41a645f19849b5a4873ff5ff27ddc4/node_modules/@toggl/queries/dist/org/workspace/requests.mjs
38233
38235
  async function getWorkspaces(httpClient, organization_id, signal) {
38234
38236
  return (await httpClient.get(`organizations/${organization_id}/workspaces`, { signal })).json();
38235
38237
  }
@@ -38238,7 +38240,7 @@ async function getWorkspaceUserMeRoles(httpClient, organization_id, workspace_id
38238
38240
  }
38239
38241
  const WorkingHoursCreateInputSchema = /* @__PURE__ */ object$2({
38240
38242
  working_hours: /* @__PURE__ */ pipe$2(/* @__PURE__ */ number$2(), /* @__PURE__ */ maxValue$1(168)),
38241
- starting_hours: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ number$2(), /* @__PURE__ */ maxValue$1(24))),
38243
+ starting_hours: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ number$2(), /* @__PURE__ */ minValue$1(0), /* @__PURE__ */ maxValue$1(24))),
38242
38244
  weekday: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ number$2(), /* @__PURE__ */ minValue$1(0), /* @__PURE__ */ maxValue$1(6)))
38243
38245
  });
38244
38246
  const WorkingHoursUpdateInputSchema = /* @__PURE__ */ object$2({
@@ -38249,7 +38251,7 @@ const WorkingHoursUpdateInputSchema = /* @__PURE__ */ object$2({
38249
38251
  });
38250
38252
  const StatusOKSchema = /* @__PURE__ */ object$2({ status: /* @__PURE__ */ string$1() });
38251
38253
  //#endregion
38252
- //#region ../../node_modules/.pnpm/@toggl+queries@2.2.124_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_969a045e6e4f645cea4cd5f88b441655/node_modules/@toggl/queries/dist/org/holiday-calendar/requests.mjs
38254
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.2.125_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_dd41a645f19849b5a4873ff5ff27ddc4/node_modules/@toggl/queries/dist/org/holiday-calendar/requests.mjs
38253
38255
  async function holidayListDates(httpClient, organization_id, { year, country }, signal) {
38254
38256
  return (await httpClient.get(`holidays/organizations/${organization_id}/calendar/dates`, {
38255
38257
  signal,
@@ -38260,12 +38262,12 @@ async function holidayListDates(httpClient, organization_id, { year, country },
38260
38262
  })).json();
38261
38263
  }
38262
38264
  //#endregion
38263
- //#region ../../node_modules/.pnpm/@toggl+queries@2.2.124_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_969a045e6e4f645cea4cd5f88b441655/node_modules/@toggl/queries/dist/shared-data/status/requests.mjs
38265
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.2.125_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_dd41a645f19849b5a4873ff5ff27ddc4/node_modules/@toggl/queries/dist/shared-data/status/requests.mjs
38264
38266
  async function getStatus(httpClient, signal) {
38265
38267
  return (await httpClient.get(`shared_data/api/status`, { signal })).json();
38266
38268
  }
38267
38269
  //#endregion
38268
- //#region ../../node_modules/.pnpm/@toggl+queries@2.2.124_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_969a045e6e4f645cea4cd5f88b441655/node_modules/@toggl/queries/dist/org/timeoff/requests.mjs
38270
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.2.125_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_dd41a645f19849b5a4873ff5ff27ddc4/node_modules/@toggl/queries/dist/org/timeoff/requests.mjs
38269
38271
  async function timeoffListMyEntries(httpClient, organization_id, { from, to }, signal) {
38270
38272
  return (await httpClient.get(`timeoff/organizations/${organization_id}/me`, {
38271
38273
  signal,
@@ -38293,7 +38295,7 @@ async function timeoffDeleteMyEntry(httpClient, organization_id, id, signal) {
38293
38295
  return response.json();
38294
38296
  }
38295
38297
  //#endregion
38296
- //#region ../../node_modules/.pnpm/@toggl+queries@2.2.124_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_969a045e6e4f645cea4cd5f88b441655/node_modules/@toggl/queries/dist/shared-data/working-hours/requests.mjs
38298
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.2.125_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_dd41a645f19849b5a4873ff5ff27ddc4/node_modules/@toggl/queries/dist/shared-data/working-hours/requests.mjs
38297
38299
  async function getMyWorkingHours(httpClient, organization_id, signal) {
38298
38300
  return (await httpClient.get(`shared_data/api/workinghours/${organization_id}/me`, { signal })).json();
38299
38301
  }
@@ -42539,6 +42541,9 @@ async function dismissATemplateEstimateSuggestion(httpClient, organization_id, w
42539
42541
  }
42540
42542
  //#endregion
42541
42543
  //#region ../focus-queries/dist/reports/requests.ts
42544
+ async function getForecastAvailability(httpClient, workspace_id, signal) {
42545
+ return await httpClient.get(`reports/workspaces/${workspace_id}/forecast-availability`, { signal }).json();
42546
+ }
42542
42547
  async function getProfitabilityReport(httpClient, workspace_id, data, response_format, include_dicts, xTogglReportExport, signal) {
42543
42548
  return await httpClient.post(`reports/workspaces/${workspace_id}/profitability`, {
42544
42549
  signal,
@@ -42984,6 +42989,21 @@ async function upsertTimeEntryConstraints(httpClient, workspace_id, data, signal
42984
42989
  }).json();
42985
42990
  }
42986
42991
  //#endregion
42992
+ //#region ../focus-queries/dist/time-entry-groups/requests.ts
42993
+ async function getTimeEntryGroupsUsersClassic(httpClient, organization_id, workspace_id, { start_date, end_date, user_id, page, per_page, order_by }, signal) {
42994
+ return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/time-entries/groups/users`, {
42995
+ signal,
42996
+ searchParams: buildSearchParams$2({
42997
+ start_date,
42998
+ end_date,
42999
+ user_id,
43000
+ page,
43001
+ per_page,
43002
+ order_by
43003
+ })
43004
+ }).json();
43005
+ }
43006
+ //#endregion
42987
43007
  //#region ../focus-queries/dist/time-off/requests.ts
42988
43008
  async function getTimeoffsByUserIds(httpClient, organization_id, { user_id, start_date, end_date }, signal) {
42989
43009
  return await httpClient.get(`organizations/${organization_id}/timeoff`, {
@@ -48034,6 +48054,28 @@ const generatedFocusOperations = [
48034
48054
  ]));
48035
48055
  }
48036
48056
  },
48057
+ {
48058
+ id: "focus.reports.get-forecast-availability",
48059
+ family: "focus",
48060
+ resource: "reports",
48061
+ action: "get-forecast-availability",
48062
+ title: "Get Forecast Availability Reports",
48063
+ description: "Get Forecast Availability Reports.",
48064
+ safety: "read",
48065
+ destructive: false,
48066
+ cli: {
48067
+ group: ["reports"],
48068
+ command: "get-forecast-availability",
48069
+ interactive: "hidden"
48070
+ },
48071
+ mcp: { entityTool: "reports" },
48072
+ inputSchema: /* @__PURE__ */ looseObject({}),
48073
+ execute: (_input, { client }) => client.runGeneratedRequest("getForecastAvailability", () => callGeneratedRequest(getForecastAvailability, [
48074
+ client.httpClient,
48075
+ client.workspaceIdNumber,
48076
+ void 0
48077
+ ]))
48078
+ },
48037
48079
  {
48038
48080
  id: "focus.reports.get-profitability",
48039
48081
  family: "focus",
@@ -51694,6 +51736,40 @@ const generatedFocusOperations = [
51694
51736
  ]));
51695
51737
  }
51696
51738
  },
51739
+ {
51740
+ id: "focus.time-entries.groups-get-users",
51741
+ family: "focus",
51742
+ resource: "time-entries",
51743
+ action: "groups-get-users",
51744
+ title: "Groups Get Users Time Entries",
51745
+ description: "Groups Get Users Time Entries.",
51746
+ safety: "read",
51747
+ destructive: false,
51748
+ cli: {
51749
+ group: ["time-entries", "groups"],
51750
+ command: "get-users",
51751
+ interactive: "hidden"
51752
+ },
51753
+ mcp: { entityTool: "time-entries" },
51754
+ inputSchema: /* @__PURE__ */ looseObject({
51755
+ end_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
51756
+ order_by: /* @__PURE__ */ unknown$1(),
51757
+ page: /* @__PURE__ */ number$2(),
51758
+ per_page: /* @__PURE__ */ unknown$1(),
51759
+ start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
51760
+ user_id: /* @__PURE__ */ number$2()
51761
+ }),
51762
+ execute: (input, { client }) => {
51763
+ const data = input;
51764
+ return client.runGeneratedRequest("getTimeEntryGroupsUsersClassic", () => callGeneratedRequest(getTimeEntryGroupsUsersClassic, [
51765
+ client.httpClient,
51766
+ client.organizationId,
51767
+ client.workspaceIdNumber,
51768
+ data,
51769
+ void 0
51770
+ ]));
51771
+ }
51772
+ },
51697
51773
  {
51698
51774
  id: "focus.time-entries.list",
51699
51775
  family: "focus",
@@ -54741,7 +54817,7 @@ function registerWorkspaceTools(server) {
54741
54817
  //#region src/package-version.ts
54742
54818
  function mcpPackageVersion() {
54743
54819
  try {
54744
- return "1.11.144";
54820
+ return "1.11.146";
54745
54821
  } catch {
54746
54822
  return "unknown";
54747
54823
  }
@@ -54916,7 +54992,7 @@ import_main.default.config({
54916
54992
  quiet: true,
54917
54993
  ignore: ["MISSING_ENV_FILE"]
54918
54994
  });
54919
- const packageVersion = "1.11.144";
54995
+ const packageVersion = "1.11.146";
54920
54996
  function resolvePublicUrls() {
54921
54997
  return {
54922
54998
  focusApiUrl: process.env.TOGGL_FOCUS_API_URL ?? "https://focus.toggl.com",
@@ -54981,4 +55057,4 @@ function bootstrapServer(options = {}) {
54981
55057
  //#endregion
54982
55058
  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 };
54983
55059
 
54984
- //# sourceMappingURL=src-kfccTxGe.js.map
55060
+ //# sourceMappingURL=src-BuYfRBM-.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@togglhq/mcp",
3
- "version": "1.11.144",
3
+ "version": "1.11.146",
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",