@burdenoff/mcp-libs 2026.1007.1 → 2026.1007.3

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.
@@ -777,8 +777,8 @@ var RESUME_RUN = `
777
777
  }
778
778
  `;
779
779
  var RETRY_RUN = `
780
- mutation RetryNode($id: ID!, $nodeId: String!) {
781
- retryNode(id: $id, nodeId: $nodeId) {
780
+ mutation RetryNode($id: ID!) {
781
+ retryNode(id: $id) {
782
782
  id
783
783
  nodeId
784
784
  nodeType
@@ -1075,7 +1075,7 @@ function registerCredentialTools(server, ctx, track) {
1075
1075
  description: "Create a connection against a provider. Secrets go to the vault; pass a reference, never a raw secret in config.",
1076
1076
  inputSchema: {
1077
1077
  name: zod.z.string().describe("Connection name"),
1078
- providerId: zod.z.string().describe("Provider ID"),
1078
+ providerId: zod.z.string().describe('Provider ID or key (e.g. "openai")'),
1079
1079
  description: zod.z.string().optional().describe("Description"),
1080
1080
  config: zod.z.unknown().optional().describe("Non-secret provider config as JSON"),
1081
1081
  context: zod.z.unknown().optional().describe("Context JSON"),
@@ -1184,6 +1184,11 @@ function registerCredentialTools(server, ctx, track) {
1184
1184
  })
1185
1185
  );
1186
1186
  }
1187
+ var ISO_DATE_ONLY = /^\d{4}-\d{2}-\d{2}$/;
1188
+ function normalizeDate(value, endOfDay) {
1189
+ if (typeof value !== "string" || !ISO_DATE_ONLY.test(value)) return value;
1190
+ return `${value}T${endOfDay ? "23:59:59" : "00:00:00"}Z`;
1191
+ }
1187
1192
  function registerInsightTools(server, ctx, track) {
1188
1193
  server.registerTool(
1189
1194
  track(mcpToolName(ctx.productName, "dashboard_summary")),
@@ -1215,8 +1220,13 @@ function registerInsightTools(server, ctx, track) {
1215
1220
  }
1216
1221
  },
1217
1222
  async (args) => runTool(ctx, "usage_metrics", async () => {
1223
+ const normalised = {
1224
+ ...args,
1225
+ startDate: normalizeDate(args.startDate, false),
1226
+ endDate: normalizeDate(args.endDate, true)
1227
+ };
1218
1228
  const data = await ctx.gql.workspace.request(GET_USAGE_METRICS, {
1219
- input: definedInput({ ...args })
1229
+ input: definedInput(normalised)
1220
1230
  });
1221
1231
  return jsonResult(data.usageMetrics);
1222
1232
  })
@@ -1451,10 +1461,14 @@ function registerRunTools(server, ctx, track) {
1451
1461
  nodeId: zod.z.string().describe("Node ID to retry")
1452
1462
  }
1453
1463
  },
1454
- async ({ id, nodeId }) => runTool(ctx, "runs_retry_node", async () => {
1464
+ async ({ id: runId, nodeId }) => runTool(ctx, "runs_retry_node", async () => {
1465
+ const runData = await ctx.gql.workspace.request(GET_RUN, { id: runId });
1466
+ const state = runData.workflowRun?.nodeStates?.find((s) => s.nodeId === nodeId);
1467
+ if (!state) {
1468
+ return errorResult(`No node state found for run ${runId} node ${nodeId}`);
1469
+ }
1455
1470
  const data = await ctx.gql.workspace.request(RETRY_RUN, {
1456
- id,
1457
- nodeId
1471
+ id: state.id
1458
1472
  });
1459
1473
  return jsonResult(data.retryNode);
1460
1474
  })
@@ -1598,13 +1612,13 @@ function registerWebhookTools(server, ctx, track) {
1598
1612
  track(mcpToolName(ctx.productName, "webhooks_create")),
1599
1613
  {
1600
1614
  title: "Create Webhook",
1601
- description: "Register an event source that triggers a workflow. triggerNodeId names the trigger node the event enters at.",
1615
+ description: 'Register an event source that triggers a workflow. triggerNodeId names the trigger node the event enters at. eventSource and eventType are required by the server schema (CreateEventRegistrationInput!); marking them optional in the tool wrapper produced a "Field eventSource of required type String! was not provided" error on every call (BOFF-8204).',
1602
1616
  inputSchema: {
1603
1617
  name: zod.z.string().describe("Registration name"),
1604
1618
  workflowKey: zod.z.string().describe("Workflow key to trigger"),
1605
1619
  triggerNodeId: zod.z.string().describe("Trigger node ID"),
1606
- eventSource: zod.z.string().optional().describe("Event source identifier"),
1607
- eventType: zod.z.string().optional().describe("Event type"),
1620
+ eventSource: zod.z.string().describe("Event source identifier"),
1621
+ eventType: zod.z.string().describe("Event type"),
1608
1622
  description: zod.z.string().optional().describe("Description"),
1609
1623
  config: zod.z.unknown().optional().describe("Source-specific config as JSON"),
1610
1624
  payloadMapping: zod.z.unknown().optional().describe("Payload mapping as JSON"),