@togglhq/mcp 1.5.75 → 1.6.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 { n as runMcpCli } from "./src-M9QMiSk3.js";
2
+ import { n as runMcpCli } from "./src-C445W-O4.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-M9QMiSk3.js";
2
+ import { n as runMcpCli, t as bootstrapServer } from "./src-C445W-O4.js";
3
3
  export { bootstrapServer, runMcpCli };
@@ -30700,7 +30700,8 @@ const WorkspaceAssignmentRequestSchema = /* @__PURE__ */ object$2({
30700
30700
  const InvitationsRequestSchema = /* @__PURE__ */ object$2({
30701
30701
  initiating_product: /* @__PURE__ */ string$1(),
30702
30702
  invitations: /* @__PURE__ */ array$1(/* @__PURE__ */ object$2({
30703
- admin: /* @__PURE__ */ boolean$1(),
30703
+ accounts_role_id: /* @__PURE__ */ number$2(),
30704
+ admin: /* @__PURE__ */ pipe$2(/* @__PURE__ */ boolean$1(), /* @__PURE__ */ description$1("A pointer so an omitted flag does not read as admin=false.")),
30704
30705
  email: /* @__PURE__ */ string$1(),
30705
30706
  groups: /* @__PURE__ */ array$1(/* @__PURE__ */ object$2({ group_id: /* @__PURE__ */ number$2() })),
30706
30707
  workspaces: /* @__PURE__ */ array$1(/* @__PURE__ */ object$2({
@@ -30713,8 +30714,8 @@ const InvitationsRequestSchema = /* @__PURE__ */ object$2({
30713
30714
  skip_email: /* @__PURE__ */ boolean$1()
30714
30715
  });
30715
30716
  const PutOrganizationUserRequestSchema = /* @__PURE__ */ object$2({
30717
+ accounts_role_id: /* @__PURE__ */ number$2(),
30716
30718
  active: /* @__PURE__ */ boolean$1(),
30717
- admin: /* @__PURE__ */ boolean$1(),
30718
30719
  groups: /* @__PURE__ */ array$1(GroupAssignmentRequestSchema),
30719
30720
  name: /* @__PURE__ */ string$1(),
30720
30721
  tags: /* @__PURE__ */ array$1(TagAssignmentRequestSchema),
@@ -30737,7 +30738,7 @@ const PublicMeEntryRequestSchema = /* @__PURE__ */ object$2({
30737
30738
  ]))
30738
30739
  });
30739
30740
  //#endregion
30740
- //#region ../../node_modules/.pnpm/@toggl+queries@2.1.9_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_react_73596622a2e5cf08ee2d565001106002/node_modules/@toggl/queries/dist/org/invitation/requests.mjs
30741
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.1.69_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_6aa573ea023c4ca30a2fd33648f077ba/node_modules/@toggl/queries/dist/org/invitation/requests.mjs
30741
30742
  async function getInvitations(httpClient, signal) {
30742
30743
  return (await httpClient.get(`invitations`, { signal })).json();
30743
30744
  }
@@ -30754,7 +30755,7 @@ async function resendInvitation(httpClient, organization_id, organization_user_i
30754
30755
  return (await httpClient.post(`organizations/${organization_id}/invitations/${organization_user_id}/resend`, { signal })).json();
30755
30756
  }
30756
30757
  //#endregion
30757
- //#region ../../node_modules/.pnpm/@toggl+queries@2.1.9_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_react_73596622a2e5cf08ee2d565001106002/node_modules/@toggl/queries/dist/org/utils/requests.mjs
30758
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.1.69_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_6aa573ea023c4ca30a2fd33648f077ba/node_modules/@toggl/queries/dist/org/utils/requests.mjs
30758
30759
  function buildSearchParams$1(params, flattenArrays = false) {
30759
30760
  const searchParams = new URLSearchParams();
30760
30761
  Object.entries(params).forEach(([key, value]) => {
@@ -30766,7 +30767,7 @@ function buildSearchParams$1(params, flattenArrays = false) {
30766
30767
  return searchParams;
30767
30768
  }
30768
30769
  //#endregion
30769
- //#region ../../node_modules/.pnpm/@toggl+queries@2.1.9_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_react_73596622a2e5cf08ee2d565001106002/node_modules/@toggl/queries/dist/org/organization-user/requests.mjs
30770
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.1.69_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_6aa573ea023c4ca30a2fd33648f077ba/node_modules/@toggl/queries/dist/org/organization-user/requests.mjs
30770
30771
  async function getOrganizationUser(httpClient, organization_id, organization_user_id, signal) {
30771
30772
  return (await httpClient.get(`organizations/${organization_id}/users/${organization_user_id}`, { signal })).json();
30772
30773
  }
@@ -30780,19 +30781,10 @@ async function patchOrganizationUserActive(httpClient, organization_id, organiza
30780
30781
  return (await httpClient.patch(`organizations/${organization_id}/users/${organization_user_id}/active_status/${status}`, { signal })).json();
30781
30782
  }
30782
30783
  //#endregion
30783
- //#region ../../node_modules/.pnpm/@toggl+queries@2.1.9_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_react_73596622a2e5cf08ee2d565001106002/node_modules/@toggl/queries/dist/org/workspace/requests.mjs
30784
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.1.69_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_6aa573ea023c4ca30a2fd33648f077ba/node_modules/@toggl/queries/dist/org/workspace/requests.mjs
30784
30785
  async function getWorkspaces(httpClient, organization_id, signal) {
30785
30786
  return (await httpClient.get(`organizations/${organization_id}/workspaces`, { signal })).json();
30786
30787
  }
30787
- async function getWorkspaceTimezone(httpClient, organization_id, workspace_id, signal) {
30788
- return (await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/settings/timezone`, { signal })).json();
30789
- }
30790
- async function putWorkspaceTimezone(httpClient, organization_id, workspace_id, data, signal) {
30791
- return (await httpClient.put(`organizations/${organization_id}/workspaces/${workspace_id}/settings/timezone`, {
30792
- signal,
30793
- json: data
30794
- })).json();
30795
- }
30796
30788
  async function getWorkspaceUserMeRoles(httpClient, organization_id, workspace_id, signal) {
30797
30789
  return (await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/users/me/roles`, { signal })).json();
30798
30790
  }
@@ -30809,7 +30801,7 @@ const WorkingHoursUpdateInputSchema = /* @__PURE__ */ object$2({
30809
30801
  });
30810
30802
  const StatusOKSchema = /* @__PURE__ */ object$2({ status: /* @__PURE__ */ string$1() });
30811
30803
  //#endregion
30812
- //#region ../../node_modules/.pnpm/@toggl+queries@2.1.9_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_react_73596622a2e5cf08ee2d565001106002/node_modules/@toggl/queries/dist/shared-data/utils/requests.mjs
30804
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.1.69_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_6aa573ea023c4ca30a2fd33648f077ba/node_modules/@toggl/queries/dist/shared-data/utils/requests.mjs
30813
30805
  const META_SYMBOL = Symbol.for("querygen:response:meta");
30814
30806
  function withResponseMeta(data, headers, status) {
30815
30807
  if (!data) return data;
@@ -30836,21 +30828,24 @@ function buildSearchParams(params, flattenArrays = false) {
30836
30828
  return searchParams;
30837
30829
  }
30838
30830
  //#endregion
30839
- //#region ../../node_modules/.pnpm/@toggl+queries@2.1.9_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_react_73596622a2e5cf08ee2d565001106002/node_modules/@toggl/queries/dist/shared-data/public-holidays/requests.mjs
30840
- async function getPublicHolidays(httpClient, year, { country } = {}, signal) {
30831
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.1.69_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_6aa573ea023c4ca30a2fd33648f077ba/node_modules/@toggl/queries/dist/shared-data/public-holidays/requests.mjs
30832
+ async function getPublicHolidays(httpClient, year, { country, organization_id } = {}, signal) {
30841
30833
  const response = await httpClient.get(`shared_data/api/publicholidays/${year}`, {
30842
30834
  signal,
30843
- searchParams: buildSearchParams({ country })
30835
+ searchParams: buildSearchParams({
30836
+ country,
30837
+ organization_id
30838
+ })
30844
30839
  });
30845
30840
  return withResponseMeta(await response.json(), response.headers, response.status);
30846
30841
  }
30847
30842
  //#endregion
30848
- //#region ../../node_modules/.pnpm/@toggl+queries@2.1.9_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_react_73596622a2e5cf08ee2d565001106002/node_modules/@toggl/queries/dist/shared-data/status/requests.mjs
30843
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.1.69_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_6aa573ea023c4ca30a2fd33648f077ba/node_modules/@toggl/queries/dist/shared-data/status/requests.mjs
30849
30844
  async function getStatus(httpClient, signal) {
30850
30845
  return (await httpClient.get(`shared_data/api/status`, { signal })).json();
30851
30846
  }
30852
30847
  //#endregion
30853
- //#region ../../node_modules/.pnpm/@toggl+queries@2.1.9_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_react_73596622a2e5cf08ee2d565001106002/node_modules/@toggl/queries/dist/org/timeoff/requests.mjs
30848
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.1.69_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_6aa573ea023c4ca30a2fd33648f077ba/node_modules/@toggl/queries/dist/org/timeoff/requests.mjs
30854
30849
  async function timeoffListMyEntries(httpClient, organization_id, { from, to }, signal) {
30855
30850
  return (await httpClient.get(`timeoff/organizations/${organization_id}/me`, {
30856
30851
  signal,
@@ -30878,7 +30873,7 @@ async function timeoffDeleteMyEntry(httpClient, organization_id, id, signal) {
30878
30873
  return response.json();
30879
30874
  }
30880
30875
  //#endregion
30881
- //#region ../../node_modules/.pnpm/@toggl+queries@2.1.9_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_react_73596622a2e5cf08ee2d565001106002/node_modules/@toggl/queries/dist/shared-data/working-hours/requests.mjs
30876
+ //#region ../../node_modules/.pnpm/@toggl+queries@2.1.69_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_6aa573ea023c4ca30a2fd33648f077ba/node_modules/@toggl/queries/dist/shared-data/working-hours/requests.mjs
30882
30877
  async function getMyWorkingHours(httpClient, organization_id, signal) {
30883
30878
  return (await httpClient.get(`shared_data/api/workinghours/${organization_id}/me`, { signal })).json();
30884
30879
  }
@@ -31714,20 +31709,6 @@ var FocusClient = class {
31714
31709
  data: response.data
31715
31710
  } : response;
31716
31711
  }
31717
- async getOrgWorkspaceTimezone(workspaceId) {
31718
- const response = await this.run("getOrgWorkspaceTimezone", () => getWorkspaceTimezone(this.orgHttp, this.organizationIdNum, workspaceId));
31719
- return response.ok ? {
31720
- ok: true,
31721
- data: response.data
31722
- } : response;
31723
- }
31724
- async updateOrgWorkspaceTimezone(workspaceId, payload) {
31725
- const response = await this.run("updateOrgWorkspaceTimezone", () => putWorkspaceTimezone(this.orgHttp, this.organizationIdNum, workspaceId, payload));
31726
- return response.ok ? {
31727
- ok: true,
31728
- data: response.data
31729
- } : response;
31730
- }
31731
31712
  async getSharedDataStatus() {
31732
31713
  const response = await this.run("getSharedDataStatus", () => getStatus(this.sharedDataHttp));
31733
31714
  return this.softValidateResponse("getSharedDataStatus", StatusOKSchema, response);
@@ -32640,7 +32621,7 @@ function createAuthenticatedClientProxy() {
32640
32621
  } });
32641
32622
  }
32642
32623
  //#endregion
32643
- //#region ../operations/build/safety-PA22Wppt.js
32624
+ //#region ../operations/build/safety-FZlH3SQa.js
32644
32625
  const optionalNumber = /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2());
32645
32626
  const DATE_FIELD_RE = /^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2}))?$/;
32646
32627
  const dateField = (description) => /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ regex(DATE_FIELD_RE, "must be YYYY-MM-DD or RFC3339 datetime (e.g. '2025-01-01' or '2025-01-01T00:00:00Z')"), /* @__PURE__ */ description$1(description));
@@ -33824,71 +33805,6 @@ const orgSharedOperations = [
33824
33805
  return client.getMyWorkspaceRoles(body.workspace_id ?? Number.parseInt(client.workspaceId, 10));
33825
33806
  }
33826
33807
  },
33827
- {
33828
- id: "org.workspaces.get-timezone",
33829
- family: "org",
33830
- resource: "workspaces",
33831
- action: "get-timezone",
33832
- title: "Get workspace timezone",
33833
- description: "Get the workspace-level default timezone (null when unset). Requires organization admin.",
33834
- agentGuidance: "Use when you need the org-wide default timezone for a workspace. When timezone is null, members use their personal timezones.",
33835
- safety: "read",
33836
- destructive: false,
33837
- cli: {
33838
- group: ["organization", "workspaces"],
33839
- command: "get-timezone",
33840
- examples: [{
33841
- description: "Get timezone for the active workspace",
33842
- data: {}
33843
- }, {
33844
- description: "Get timezone for a specific workspace",
33845
- data: { workspace_id: 40770900 }
33846
- }]
33847
- },
33848
- mcp: { entityTool: "org-workspaces" },
33849
- inputSchema: /* @__PURE__ */ object$2({ workspace_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ number$2(), /* @__PURE__ */ description$1("Workspace ID (defaults to profile)"))) }),
33850
- execute: (input, { client }) => {
33851
- const body = input;
33852
- return client.getOrgWorkspaceTimezone(body.workspace_id ?? client.workspaceIdNumber);
33853
- }
33854
- },
33855
- {
33856
- id: "org.workspaces.update-timezone",
33857
- family: "org",
33858
- resource: "workspaces",
33859
- action: "update-timezone",
33860
- title: "Update workspace timezone",
33861
- description: "Set or clear the workspace-level default timezone. Requires organization admin.",
33862
- agentGuidance: "Set timezone to an IANA name (e.g. Europe/London) or clear with clear: true / timezone: null so members fall back to personal timezones.",
33863
- safety: "update",
33864
- destructive: false,
33865
- cli: {
33866
- group: ["organization", "workspaces"],
33867
- command: "update-timezone",
33868
- examples: [{
33869
- description: "Set default timezone for the active workspace",
33870
- data: { timezone: "Europe/London" }
33871
- }, {
33872
- description: "Clear workspace default timezone",
33873
- data: { clear: true }
33874
- }]
33875
- },
33876
- mcp: { entityTool: "org-workspaces" },
33877
- inputSchema: /* @__PURE__ */ object$2({
33878
- workspace_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ number$2(), /* @__PURE__ */ description$1("Workspace ID (defaults to profile)"))),
33879
- timezone: /* @__PURE__ */ optional$1(/* @__PURE__ */ nullable$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ description$1("IANA timezone (e.g. \"Europe/London\"), or null to clear")))),
33880
- clear: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ boolean$1(), /* @__PURE__ */ description$1("Clear workspace default timezone")))
33881
- }),
33882
- execute: (input, { client }) => {
33883
- const body = input;
33884
- const workspaceId = body.workspace_id ?? client.workspaceIdNumber;
33885
- const clearsTimezone = body.clear === true || body.timezone === null;
33886
- if (clearsTimezone && typeof body.timezone === "string") throw new Error("Pass either a timezone string or clear/null, not both");
33887
- if (clearsTimezone) return client.updateOrgWorkspaceTimezone(workspaceId, { timezone: null });
33888
- if (body.timezone === void 0) throw new Error("Pass --timezone <IANA>, --clear true, or timezone: null to remove the default");
33889
- return client.updateOrgWorkspaceTimezone(workspaceId, { timezone: body.timezone });
33890
- }
33891
- },
33892
33808
  {
33893
33809
  id: "shared.status.get",
33894
33810
  family: "shared",
@@ -45014,7 +44930,7 @@ import_main.default.config({
45014
44930
  quiet: true,
45015
44931
  ignore: ["MISSING_ENV_FILE"]
45016
44932
  });
45017
- const packageVersion = "1.5.75";
44933
+ const packageVersion = "1.6.0";
45018
44934
  function resolvePublicUrls() {
45019
44935
  return {
45020
44936
  focusApiUrl: process.env.TOGGL_FOCUS_API_URL ?? "https://focus.toggl.com",
@@ -45079,4 +44995,4 @@ function bootstrapServer(options = {}) {
45079
44995
  //#endregion
45080
44996
  export { runMcpCli as n, bootstrapServer as t };
45081
44997
 
45082
- //# sourceMappingURL=src-M9QMiSk3.js.map
44998
+ //# sourceMappingURL=src-C445W-O4.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@togglhq/mcp",
3
- "version": "1.5.75",
3
+ "version": "1.6.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",