@burdenoff/mcp-libs 2026.1007.1 → 2026.1007.2
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.
|
@@ -716,8 +716,8 @@ var RESUME_RUN = `
|
|
|
716
716
|
}
|
|
717
717
|
`;
|
|
718
718
|
var RETRY_RUN = `
|
|
719
|
-
mutation RetryNode($id: ID
|
|
720
|
-
retryNode(id: $id
|
|
719
|
+
mutation RetryNode($id: ID!) {
|
|
720
|
+
retryNode(id: $id) {
|
|
721
721
|
id
|
|
722
722
|
nodeId
|
|
723
723
|
nodeType
|
|
@@ -727,25 +727,6 @@ var RETRY_RUN = `
|
|
|
727
727
|
}
|
|
728
728
|
}
|
|
729
729
|
`;
|
|
730
|
-
var CREATE_CREDENTIAL = `
|
|
731
|
-
mutation CreateCredential($input: CreateConnectionInput!) {
|
|
732
|
-
createConnection(input: $input) {
|
|
733
|
-
id
|
|
734
|
-
name
|
|
735
|
-
description
|
|
736
|
-
status
|
|
737
|
-
providerId
|
|
738
|
-
provider {
|
|
739
|
-
id
|
|
740
|
-
key
|
|
741
|
-
name
|
|
742
|
-
authType
|
|
743
|
-
}
|
|
744
|
-
credentialSource
|
|
745
|
-
createdAt
|
|
746
|
-
}
|
|
747
|
-
}
|
|
748
|
-
`;
|
|
749
730
|
var AUTHENTICATE_CREDENTIAL_API_KEY = `
|
|
750
731
|
mutation AuthenticateCredentialApiKey($input: ApiKeyAuthInput!) {
|
|
751
732
|
authenticateWithApiKey(input: $input) {
|
|
@@ -1007,30 +988,6 @@ function registerCredentialTools(server, ctx, track) {
|
|
|
1007
988
|
return jsonResult(data.getProviders);
|
|
1008
989
|
})
|
|
1009
990
|
);
|
|
1010
|
-
server.registerTool(
|
|
1011
|
-
track(mcpToolName(ctx.productName, "credentials_create")),
|
|
1012
|
-
{
|
|
1013
|
-
title: "Create Credential",
|
|
1014
|
-
description: "Create a connection against a provider. Secrets go to the vault; pass a reference, never a raw secret in config.",
|
|
1015
|
-
inputSchema: {
|
|
1016
|
-
name: z.string().describe("Connection name"),
|
|
1017
|
-
providerId: z.string().describe("Provider ID"),
|
|
1018
|
-
description: z.string().optional().describe("Description"),
|
|
1019
|
-
config: z.unknown().optional().describe("Non-secret provider config as JSON"),
|
|
1020
|
-
context: z.unknown().optional().describe("Context JSON"),
|
|
1021
|
-
vaultId: z.string().optional().describe("Vault to store secret material in"),
|
|
1022
|
-
credentialSecretId: z.string().optional().describe("Existing vault secret reference"),
|
|
1023
|
-
managedSecretName: z.string().optional().describe("Managed secret name")
|
|
1024
|
-
}
|
|
1025
|
-
},
|
|
1026
|
-
async (args) => runTool(ctx, "credentials_create", async () => {
|
|
1027
|
-
const data = await ctx.gql.workspace.request(
|
|
1028
|
-
CREATE_CREDENTIAL,
|
|
1029
|
-
{ input: definedInput({ ...args }) }
|
|
1030
|
-
);
|
|
1031
|
-
return jsonResult(data.createConnection);
|
|
1032
|
-
})
|
|
1033
|
-
);
|
|
1034
991
|
server.registerTool(
|
|
1035
992
|
track(mcpToolName(ctx.productName, "credentials_update")),
|
|
1036
993
|
{
|
|
@@ -1123,6 +1080,11 @@ function registerCredentialTools(server, ctx, track) {
|
|
|
1123
1080
|
})
|
|
1124
1081
|
);
|
|
1125
1082
|
}
|
|
1083
|
+
var ISO_DATE_ONLY = /^\d{4}-\d{2}-\d{2}$/;
|
|
1084
|
+
function normalizeDate(value, endOfDay) {
|
|
1085
|
+
if (typeof value !== "string" || !ISO_DATE_ONLY.test(value)) return value;
|
|
1086
|
+
return `${value}T${endOfDay ? "23:59:59" : "00:00:00"}Z`;
|
|
1087
|
+
}
|
|
1126
1088
|
function registerInsightTools(server, ctx, track) {
|
|
1127
1089
|
server.registerTool(
|
|
1128
1090
|
track(mcpToolName(ctx.productName, "dashboard_summary")),
|
|
@@ -1154,8 +1116,13 @@ function registerInsightTools(server, ctx, track) {
|
|
|
1154
1116
|
}
|
|
1155
1117
|
},
|
|
1156
1118
|
async (args) => runTool(ctx, "usage_metrics", async () => {
|
|
1119
|
+
const normalised = {
|
|
1120
|
+
...args,
|
|
1121
|
+
startDate: normalizeDate(args.startDate, false),
|
|
1122
|
+
endDate: normalizeDate(args.endDate, true)
|
|
1123
|
+
};
|
|
1157
1124
|
const data = await ctx.gql.workspace.request(GET_USAGE_METRICS, {
|
|
1158
|
-
input: definedInput(
|
|
1125
|
+
input: definedInput(normalised)
|
|
1159
1126
|
});
|
|
1160
1127
|
return jsonResult(data.usageMetrics);
|
|
1161
1128
|
})
|
|
@@ -1390,10 +1357,14 @@ function registerRunTools(server, ctx, track) {
|
|
|
1390
1357
|
nodeId: z.string().describe("Node ID to retry")
|
|
1391
1358
|
}
|
|
1392
1359
|
},
|
|
1393
|
-
async ({ id, nodeId }) => runTool(ctx, "runs_retry_node", async () => {
|
|
1360
|
+
async ({ id: runId, nodeId }) => runTool(ctx, "runs_retry_node", async () => {
|
|
1361
|
+
const runData = await ctx.gql.workspace.request(GET_RUN, { id: runId });
|
|
1362
|
+
const state = runData.workflowRun?.nodeStates?.find((s) => s.nodeId === nodeId);
|
|
1363
|
+
if (!state) {
|
|
1364
|
+
return errorResult(`No node state found for run ${runId} node ${nodeId}`);
|
|
1365
|
+
}
|
|
1394
1366
|
const data = await ctx.gql.workspace.request(RETRY_RUN, {
|
|
1395
|
-
id
|
|
1396
|
-
nodeId
|
|
1367
|
+
id: state.id
|
|
1397
1368
|
});
|
|
1398
1369
|
return jsonResult(data.retryNode);
|
|
1399
1370
|
})
|
|
@@ -1537,13 +1508,13 @@ function registerWebhookTools(server, ctx, track) {
|
|
|
1537
1508
|
track(mcpToolName(ctx.productName, "webhooks_create")),
|
|
1538
1509
|
{
|
|
1539
1510
|
title: "Create Webhook",
|
|
1540
|
-
description:
|
|
1511
|
+
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).',
|
|
1541
1512
|
inputSchema: {
|
|
1542
1513
|
name: z.string().describe("Registration name"),
|
|
1543
1514
|
workflowKey: z.string().describe("Workflow key to trigger"),
|
|
1544
1515
|
triggerNodeId: z.string().describe("Trigger node ID"),
|
|
1545
|
-
eventSource: z.string().
|
|
1546
|
-
eventType: z.string().
|
|
1516
|
+
eventSource: z.string().describe("Event source identifier"),
|
|
1517
|
+
eventType: z.string().describe("Event type"),
|
|
1547
1518
|
description: z.string().optional().describe("Description"),
|
|
1548
1519
|
config: z.unknown().optional().describe("Source-specific config as JSON"),
|
|
1549
1520
|
payloadMapping: z.unknown().optional().describe("Payload mapping as JSON"),
|