@kadoa/mcp 0.5.21 → 0.5.22

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.
Files changed (3) hide show
  1. package/README.md +6 -3
  2. package/dist/index.js +222 -3
  3. package/package.json +2 -2
package/README.md CHANGED
@@ -68,6 +68,7 @@ Point your client to `https://mcp.kadoa.com/mcp` with OAuth authentication.
68
68
  | `get_workflow` | Get canonical intent, Assistant/session, template ownership, run health, schedule, location, monitoring, and validation details |
69
69
  | `request_workflow_update` | Ask the workflow Assistant to change extraction intent, navigation, sourcing, pagination, or generated behavior without changing the workflow ID |
70
70
  | `get_workflow_assistant` | Get the workflow Assistant's current activity and any pending clarification question |
71
+ | `get_workflow_assistant_timeline` | Read paginated customer-visible Assistant messages and questions for Lighthouse or Julie |
71
72
  | `answer_workflow_assistant_question` | Answer the workflow Assistant's current clarification question and resume it |
72
73
  | `interrupt_workflow_assistant` | Safely interrupt active Assistant work without pausing the workflow schedule |
73
74
  | `resume_workflow_assistant` | Resume an idle/interrupted Lighthouse or Julie session with its persisted persona |
@@ -191,9 +192,11 @@ Assistant session, thread, and job identifiers.
191
192
 
192
193
  > You: Does Kadoa need anything from me?
193
194
 
194
- Claude calls get_workflow_assistant. If a clarification is pending, Claude
195
- shows the question and calls answer_workflow_assistant_question with your
196
- answer. It does not poll or sleep-wait for the Assistant.
195
+ Claude calls get_workflow_assistant. To review the conversation, Claude calls
196
+ get_workflow_assistant_timeline and follows its opaque nextCursor only when
197
+ older messages are needed. If a clarification is pending, Claude shows the
198
+ question and calls answer_workflow_assistant_question with your answer. It does
199
+ not poll or sleep-wait for the Assistant.
197
200
 
198
201
  > You: How does this workflow extract the data now?
199
202
 
package/dist/index.js CHANGED
@@ -45783,6 +45783,14 @@ var import_debug, __require2, FREEFORM_ASSISTANT_ANSWER_KEY = "_freeform", Kadoa
45783
45783
  }
45784
45784
  return data;
45785
45785
  }
45786
+ async getTimeline(workflowId, input = {}) {
45787
+ const response = await this.agentApi.v5AgentWorkflowAssistantTimeline({
45788
+ workflowId,
45789
+ ...input.cursor != null && { cursor: input.cursor },
45790
+ ...input.limit != null && { limit: input.limit }
45791
+ });
45792
+ return response.data.data;
45793
+ }
45786
45794
  async getPauseState(sessionId) {
45787
45795
  const response = await this.agentApi.v5AgentPauseState({ sessionId });
45788
45796
  return response.data.data;
@@ -46050,6 +46058,32 @@ var import_debug, __require2, FREEFORM_ASSISTANT_ANSWER_KEY = "_freeform", Kadoa
46050
46058
  url: toPathString(localVarUrlObj),
46051
46059
  options: localVarRequestOptions
46052
46060
  };
46061
+ },
46062
+ v5AgentWorkflowAssistantTimeline: async (workflowId, cursor, limit, options = {}) => {
46063
+ assertParamExists("v5AgentWorkflowAssistantTimeline", "workflowId", workflowId);
46064
+ const localVarPath = `/v5/agent/workflows/{workflowId}/timeline`.replace(`{${"workflowId"}}`, encodeURIComponent(String(workflowId)));
46065
+ const localVarUrlObj = new URL$1(localVarPath, DUMMY_BASE_URL);
46066
+ let baseOptions;
46067
+ if (configuration) {
46068
+ baseOptions = configuration.baseOptions;
46069
+ }
46070
+ const localVarRequestOptions = { method: "GET", ...baseOptions, ...options };
46071
+ const localVarHeaderParameter = {};
46072
+ const localVarQueryParameter = {};
46073
+ if (cursor !== undefined) {
46074
+ localVarQueryParameter["cursor"] = cursor;
46075
+ }
46076
+ if (limit !== undefined) {
46077
+ localVarQueryParameter["limit"] = limit;
46078
+ }
46079
+ localVarHeaderParameter["Accept"] = "application/json";
46080
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
46081
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
46082
+ localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
46083
+ return {
46084
+ url: toPathString(localVarUrlObj),
46085
+ options: localVarRequestOptions
46086
+ };
46053
46087
  }
46054
46088
  };
46055
46089
  }, AgentApiFp = function(configuration) {
@@ -46102,6 +46136,12 @@ var import_debug, __require2, FREEFORM_ASSISTANT_ANSWER_KEY = "_freeform", Kadoa
46102
46136
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
46103
46137
  const localVarOperationServerBasePath = operationServerMap["AgentApi.v5AgentWorkflowAssistantMessage"]?.[localVarOperationServerIndex]?.url;
46104
46138
  return (axios2, basePath) => createRequestFunction(localVarAxiosArgs, axios_default, BASE_PATH, configuration)(axios2, localVarOperationServerBasePath || basePath);
46139
+ },
46140
+ async v5AgentWorkflowAssistantTimeline(workflowId, cursor, limit, options) {
46141
+ const localVarAxiosArgs = await localVarAxiosParamCreator.v5AgentWorkflowAssistantTimeline(workflowId, cursor, limit, options);
46142
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
46143
+ const localVarOperationServerBasePath = operationServerMap["AgentApi.v5AgentWorkflowAssistantTimeline"]?.[localVarOperationServerIndex]?.url;
46144
+ return (axios2, basePath) => createRequestFunction(localVarAxiosArgs, axios_default, BASE_PATH, configuration)(axios2, localVarOperationServerBasePath || basePath);
46105
46145
  }
46106
46146
  };
46107
46147
  }, AgentApi, CrawlerApiAxiosParamCreator = function(configuration) {
@@ -48157,6 +48197,113 @@ var import_debug, __require2, FREEFORM_ASSISTANT_ANSWER_KEY = "_freeform", Kadoa
48157
48197
  };
48158
48198
  }, TemplatesApi, VariablesApiAxiosParamCreator = function(configuration) {
48159
48199
  return {
48200
+ v4VariablesConnectionsConnectionIdDelete: async (connectionId, options = {}) => {
48201
+ assertParamExists("v4VariablesConnectionsConnectionIdDelete", "connectionId", connectionId);
48202
+ const localVarPath = `/v4/variables/connections/{connectionId}`.replace(`{${"connectionId"}}`, encodeURIComponent(String(connectionId)));
48203
+ const localVarUrlObj = new URL$1(localVarPath, DUMMY_BASE_URL);
48204
+ let baseOptions;
48205
+ if (configuration) {
48206
+ baseOptions = configuration.baseOptions;
48207
+ }
48208
+ const localVarRequestOptions = { method: "DELETE", ...baseOptions, ...options };
48209
+ const localVarHeaderParameter = {};
48210
+ const localVarQueryParameter = {};
48211
+ await setApiKeyToObject(localVarHeaderParameter, "x-api-key", configuration);
48212
+ localVarHeaderParameter["Accept"] = "application/json";
48213
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
48214
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
48215
+ localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
48216
+ return {
48217
+ url: toPathString(localVarUrlObj),
48218
+ options: localVarRequestOptions
48219
+ };
48220
+ },
48221
+ v4VariablesConnectionsConnectionIdPatch: async (connectionId, v4VariablesConnectionsConnectionIdPatchRequest, options = {}) => {
48222
+ assertParamExists("v4VariablesConnectionsConnectionIdPatch", "connectionId", connectionId);
48223
+ const localVarPath = `/v4/variables/connections/{connectionId}`.replace(`{${"connectionId"}}`, encodeURIComponent(String(connectionId)));
48224
+ const localVarUrlObj = new URL$1(localVarPath, DUMMY_BASE_URL);
48225
+ let baseOptions;
48226
+ if (configuration) {
48227
+ baseOptions = configuration.baseOptions;
48228
+ }
48229
+ const localVarRequestOptions = { method: "PATCH", ...baseOptions, ...options };
48230
+ const localVarHeaderParameter = {};
48231
+ const localVarQueryParameter = {};
48232
+ await setApiKeyToObject(localVarHeaderParameter, "x-api-key", configuration);
48233
+ localVarHeaderParameter["Content-Type"] = "application/json";
48234
+ localVarHeaderParameter["Accept"] = "application/json";
48235
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
48236
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
48237
+ localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
48238
+ localVarRequestOptions.data = serializeDataIfNeeded(v4VariablesConnectionsConnectionIdPatchRequest, localVarRequestOptions, configuration);
48239
+ return {
48240
+ url: toPathString(localVarUrlObj),
48241
+ options: localVarRequestOptions
48242
+ };
48243
+ },
48244
+ v4VariablesConnectionsConnectionIdVerifyPost: async (connectionId, options = {}) => {
48245
+ assertParamExists("v4VariablesConnectionsConnectionIdVerifyPost", "connectionId", connectionId);
48246
+ const localVarPath = `/v4/variables/connections/{connectionId}/verify`.replace(`{${"connectionId"}}`, encodeURIComponent(String(connectionId)));
48247
+ const localVarUrlObj = new URL$1(localVarPath, DUMMY_BASE_URL);
48248
+ let baseOptions;
48249
+ if (configuration) {
48250
+ baseOptions = configuration.baseOptions;
48251
+ }
48252
+ const localVarRequestOptions = { method: "POST", ...baseOptions, ...options };
48253
+ const localVarHeaderParameter = {};
48254
+ const localVarQueryParameter = {};
48255
+ await setApiKeyToObject(localVarHeaderParameter, "x-api-key", configuration);
48256
+ localVarHeaderParameter["Accept"] = "application/json";
48257
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
48258
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
48259
+ localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
48260
+ return {
48261
+ url: toPathString(localVarUrlObj),
48262
+ options: localVarRequestOptions
48263
+ };
48264
+ },
48265
+ v4VariablesConnectionsGet: async (options = {}) => {
48266
+ const localVarPath = `/v4/variables/connections`;
48267
+ const localVarUrlObj = new URL$1(localVarPath, DUMMY_BASE_URL);
48268
+ let baseOptions;
48269
+ if (configuration) {
48270
+ baseOptions = configuration.baseOptions;
48271
+ }
48272
+ const localVarRequestOptions = { method: "GET", ...baseOptions, ...options };
48273
+ const localVarHeaderParameter = {};
48274
+ const localVarQueryParameter = {};
48275
+ await setApiKeyToObject(localVarHeaderParameter, "x-api-key", configuration);
48276
+ localVarHeaderParameter["Accept"] = "application/json";
48277
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
48278
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
48279
+ localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
48280
+ return {
48281
+ url: toPathString(localVarUrlObj),
48282
+ options: localVarRequestOptions
48283
+ };
48284
+ },
48285
+ v4VariablesConnectionsPost: async (v4VariablesConnectionsPostRequest, options = {}) => {
48286
+ const localVarPath = `/v4/variables/connections`;
48287
+ const localVarUrlObj = new URL$1(localVarPath, DUMMY_BASE_URL);
48288
+ let baseOptions;
48289
+ if (configuration) {
48290
+ baseOptions = configuration.baseOptions;
48291
+ }
48292
+ const localVarRequestOptions = { method: "POST", ...baseOptions, ...options };
48293
+ const localVarHeaderParameter = {};
48294
+ const localVarQueryParameter = {};
48295
+ await setApiKeyToObject(localVarHeaderParameter, "x-api-key", configuration);
48296
+ localVarHeaderParameter["Content-Type"] = "application/json";
48297
+ localVarHeaderParameter["Accept"] = "application/json";
48298
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
48299
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
48300
+ localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
48301
+ localVarRequestOptions.data = serializeDataIfNeeded(v4VariablesConnectionsPostRequest, localVarRequestOptions, configuration);
48302
+ return {
48303
+ url: toPathString(localVarUrlObj),
48304
+ options: localVarRequestOptions
48305
+ };
48306
+ },
48160
48307
  v4VariablesGet: async (options = {}) => {
48161
48308
  const localVarPath = `/v4/variables/`;
48162
48309
  const localVarUrlObj = new URL$1(localVarPath, DUMMY_BASE_URL);
@@ -48268,6 +48415,36 @@ var import_debug, __require2, FREEFORM_ASSISTANT_ANSWER_KEY = "_freeform", Kadoa
48268
48415
  }, VariablesApiFp = function(configuration) {
48269
48416
  const localVarAxiosParamCreator = VariablesApiAxiosParamCreator(configuration);
48270
48417
  return {
48418
+ async v4VariablesConnectionsConnectionIdDelete(connectionId, options) {
48419
+ const localVarAxiosArgs = await localVarAxiosParamCreator.v4VariablesConnectionsConnectionIdDelete(connectionId, options);
48420
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
48421
+ const localVarOperationServerBasePath = operationServerMap["VariablesApi.v4VariablesConnectionsConnectionIdDelete"]?.[localVarOperationServerIndex]?.url;
48422
+ return (axios2, basePath) => createRequestFunction(localVarAxiosArgs, axios_default, BASE_PATH, configuration)(axios2, localVarOperationServerBasePath || basePath);
48423
+ },
48424
+ async v4VariablesConnectionsConnectionIdPatch(connectionId, v4VariablesConnectionsConnectionIdPatchRequest, options) {
48425
+ const localVarAxiosArgs = await localVarAxiosParamCreator.v4VariablesConnectionsConnectionIdPatch(connectionId, v4VariablesConnectionsConnectionIdPatchRequest, options);
48426
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
48427
+ const localVarOperationServerBasePath = operationServerMap["VariablesApi.v4VariablesConnectionsConnectionIdPatch"]?.[localVarOperationServerIndex]?.url;
48428
+ return (axios2, basePath) => createRequestFunction(localVarAxiosArgs, axios_default, BASE_PATH, configuration)(axios2, localVarOperationServerBasePath || basePath);
48429
+ },
48430
+ async v4VariablesConnectionsConnectionIdVerifyPost(connectionId, options) {
48431
+ const localVarAxiosArgs = await localVarAxiosParamCreator.v4VariablesConnectionsConnectionIdVerifyPost(connectionId, options);
48432
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
48433
+ const localVarOperationServerBasePath = operationServerMap["VariablesApi.v4VariablesConnectionsConnectionIdVerifyPost"]?.[localVarOperationServerIndex]?.url;
48434
+ return (axios2, basePath) => createRequestFunction(localVarAxiosArgs, axios_default, BASE_PATH, configuration)(axios2, localVarOperationServerBasePath || basePath);
48435
+ },
48436
+ async v4VariablesConnectionsGet(options) {
48437
+ const localVarAxiosArgs = await localVarAxiosParamCreator.v4VariablesConnectionsGet(options);
48438
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
48439
+ const localVarOperationServerBasePath = operationServerMap["VariablesApi.v4VariablesConnectionsGet"]?.[localVarOperationServerIndex]?.url;
48440
+ return (axios2, basePath) => createRequestFunction(localVarAxiosArgs, axios_default, BASE_PATH, configuration)(axios2, localVarOperationServerBasePath || basePath);
48441
+ },
48442
+ async v4VariablesConnectionsPost(v4VariablesConnectionsPostRequest, options) {
48443
+ const localVarAxiosArgs = await localVarAxiosParamCreator.v4VariablesConnectionsPost(v4VariablesConnectionsPostRequest, options);
48444
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
48445
+ const localVarOperationServerBasePath = operationServerMap["VariablesApi.v4VariablesConnectionsPost"]?.[localVarOperationServerIndex]?.url;
48446
+ return (axios2, basePath) => createRequestFunction(localVarAxiosArgs, axios_default, BASE_PATH, configuration)(axios2, localVarOperationServerBasePath || basePath);
48447
+ },
48271
48448
  async v4VariablesGet(options) {
48272
48449
  const localVarAxiosArgs = await localVarAxiosParamCreator.v4VariablesGet(options);
48273
48450
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
@@ -50422,7 +50599,7 @@ var import_debug, __require2, FREEFORM_ASSISTANT_ANSWER_KEY = "_freeform", Kadoa
50422
50599
  }));
50423
50600
  return channels;
50424
50601
  }
50425
- }, PUBLIC_API_URI, WSS_API_URI, REALTIME_API_URI, SDK_VERSION = "0.38.0", SDK_NAME = "kadoa-node-sdk", SDK_LANGUAGE = "node", debug6, isDrainControlMessage = (message) => message.type === "control.draining", isRealtimeEvent = (message) => message.type !== "heartbeat" && message.type !== "control.draining", _Realtime = class _Realtime2 {
50602
+ }, PUBLIC_API_URI, WSS_API_URI, REALTIME_API_URI, SDK_VERSION = "0.39.0", SDK_NAME = "kadoa-node-sdk", SDK_LANGUAGE = "node", debug6, isDrainControlMessage = (message) => message.type === "control.draining", isRealtimeEvent = (message) => message.type !== "heartbeat" && message.type !== "control.draining", _Realtime = class _Realtime2 {
50426
50603
  constructor(config2) {
50427
50604
  this.drainingSockets = /* @__PURE__ */ new Set;
50428
50605
  this.lastHeartbeat = Date.now();
@@ -51864,6 +52041,9 @@ var init_dist2 = __esm(() => {
51864
52041
  v5AgentWorkflowAssistantMessage(requestParameters, options) {
51865
52042
  return AgentApiFp(this.configuration).v5AgentWorkflowAssistantMessage(requestParameters.workflowId, requestParameters.workflowAssistantMessageRequest, options).then((request) => request(this.axios, this.basePath));
51866
52043
  }
52044
+ v5AgentWorkflowAssistantTimeline(requestParameters, options) {
52045
+ return AgentApiFp(this.configuration).v5AgentWorkflowAssistantTimeline(requestParameters.workflowId, requestParameters.cursor, requestParameters.limit, options).then((request) => request(this.axios, this.basePath));
52046
+ }
51867
52047
  };
51868
52048
  CrawlerApi = class extends BaseAPI {
51869
52049
  v4CrawlBucketDataFilenameb64Get(requestParameters, options) {
@@ -52095,6 +52275,21 @@ var init_dist2 = __esm(() => {
52095
52275
  }
52096
52276
  };
52097
52277
  VariablesApi = class extends BaseAPI {
52278
+ v4VariablesConnectionsConnectionIdDelete(requestParameters, options) {
52279
+ return VariablesApiFp(this.configuration).v4VariablesConnectionsConnectionIdDelete(requestParameters.connectionId, options).then((request) => request(this.axios, this.basePath));
52280
+ }
52281
+ v4VariablesConnectionsConnectionIdPatch(requestParameters, options) {
52282
+ return VariablesApiFp(this.configuration).v4VariablesConnectionsConnectionIdPatch(requestParameters.connectionId, requestParameters.v4VariablesConnectionsConnectionIdPatchRequest, options).then((request) => request(this.axios, this.basePath));
52283
+ }
52284
+ v4VariablesConnectionsConnectionIdVerifyPost(requestParameters, options) {
52285
+ return VariablesApiFp(this.configuration).v4VariablesConnectionsConnectionIdVerifyPost(requestParameters.connectionId, options).then((request) => request(this.axios, this.basePath));
52286
+ }
52287
+ v4VariablesConnectionsGet(options) {
52288
+ return VariablesApiFp(this.configuration).v4VariablesConnectionsGet(options).then((request) => request(this.axios, this.basePath));
52289
+ }
52290
+ v4VariablesConnectionsPost(requestParameters = {}, options) {
52291
+ return VariablesApiFp(this.configuration).v4VariablesConnectionsPost(requestParameters.v4VariablesConnectionsPostRequest, options).then((request) => request(this.axios, this.basePath));
52292
+ }
52098
52293
  v4VariablesGet(options) {
52099
52294
  return VariablesApiFp(this.configuration).v4VariablesGet(options).then((request) => request(this.axios, this.basePath));
52100
52295
  }
@@ -53387,6 +53582,30 @@ function registerTools(server, ctx, capabilities) {
53387
53582
  pendingQuestion: pauseState?.pendingQuestion ?? null
53388
53583
  });
53389
53584
  }));
53585
+ server.registerTool("get_workflow_assistant_timeline", {
53586
+ description: "Read the customer-visible conversation history for a workflow Assistant, including user messages, Assistant messages, and clarification questions with answers. " + "Works for both Shelly/Lighthouse and Julie workflows. Use get_workflow_history instead for configuration revisions. Results are chronological within each page; use nextCursor to request older items when hasMore is true.",
53587
+ inputSchema: strictSchema({
53588
+ workflowId: exports_external.string().min(1).describe("The workflow ID"),
53589
+ cursor: exports_external.string().min(1).optional().describe("Opaque nextCursor from the previous page"),
53590
+ limit: exports_external.preprocess(coerceNumber(), exports_external.number().int().min(1).max(100)).optional().describe("Maximum history items to return (default: 50, maximum: 100)")
53591
+ }),
53592
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true }
53593
+ }, withErrorHandling("get_workflow_assistant_timeline", async (args) => {
53594
+ const timeline = await ctx.client.assistant.getTimeline(args.workflowId, {
53595
+ cursor: args.cursor,
53596
+ limit: args.limit
53597
+ });
53598
+ if (timeline.workflowId !== args.workflowId) {
53599
+ return errorResult(`The Assistant timeline returned workflow ID '${timeline.workflowId}' instead of '${args.workflowId}'.`);
53600
+ }
53601
+ return jsonResult({
53602
+ workflowId: timeline.workflowId,
53603
+ sessionId: timeline.sessionId,
53604
+ items: timeline.items,
53605
+ pagination: timeline.pagination,
53606
+ dashboardUrl: workflowDashboardUrl(timeline.workflowId)
53607
+ });
53608
+ }));
53390
53609
  server.registerTool("answer_workflow_assistant_question", {
53391
53610
  description: "Answer the workflow Assistant's currently pending clarification question and resume it. " + "Use `answer` for a freeform response, or `answers` for the structured key/value response described by get_workflow_assistant. Provide exactly one. The question ID must still be current.",
53392
53611
  inputSchema: strictSchema({
@@ -54742,7 +54961,7 @@ var package_default;
54742
54961
  var init_package = __esm(() => {
54743
54962
  package_default = {
54744
54963
  name: "@kadoa/mcp",
54745
- version: "0.5.21",
54964
+ version: "0.5.22",
54746
54965
  description: "Kadoa MCP Server — manage workflows from Claude Desktop, Cursor, and other MCP clients",
54747
54966
  type: "module",
54748
54967
  main: "dist/index.js",
@@ -54766,7 +54985,7 @@ var init_package = __esm(() => {
54766
54985
  prepublishOnly: "bun run check-types && bun run test:unit && bun run build"
54767
54986
  },
54768
54987
  dependencies: {
54769
- "@kadoa/node-sdk": "^0.38.0",
54988
+ "@kadoa/node-sdk": "^0.39.0",
54770
54989
  "@modelcontextprotocol/sdk": "^1.26.0",
54771
54990
  express: "^5.2.1",
54772
54991
  "express-rate-limit": "^8.2.1",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kadoa/mcp",
3
- "version": "0.5.21",
3
+ "version": "0.5.22",
4
4
  "description": "Kadoa MCP Server — manage workflows from Claude Desktop, Cursor, and other MCP clients",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -24,7 +24,7 @@
24
24
  "prepublishOnly": "bun run check-types && bun run test:unit && bun run build"
25
25
  },
26
26
  "dependencies": {
27
- "@kadoa/node-sdk": "^0.38.0",
27
+ "@kadoa/node-sdk": "^0.39.0",
28
28
  "@modelcontextprotocol/sdk": "^1.26.0",
29
29
  "express": "^5.2.1",
30
30
  "express-rate-limit": "^8.2.1",