@lumibase/mcp-server 0.24.1 → 0.26.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/dist/index.cjs +32 -32
- package/dist/index.js +32 -32
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -271,14 +271,14 @@ var policySchema = import_zod3.z.object({
|
|
|
271
271
|
ipDeny: import_zod3.z.array(import_zod3.z.string()).optional(),
|
|
272
272
|
validFrom: import_zod3.z.string().datetime().nullable().optional(),
|
|
273
273
|
validUntil: import_zod3.z.string().datetime().nullable().optional(),
|
|
274
|
-
rules: import_zod3.z.record(import_zod3.z.unknown()).optional()
|
|
274
|
+
rules: import_zod3.z.record(import_zod3.z.string(), import_zod3.z.unknown()).optional()
|
|
275
275
|
});
|
|
276
276
|
var permissionSchema = import_zod3.z.object({
|
|
277
277
|
collection: import_zod3.z.string().min(1).max(64),
|
|
278
278
|
action: import_zod3.z.enum(["create", "read", "update", "delete", "share"]),
|
|
279
|
-
permissions: import_zod3.z.record(import_zod3.z.unknown()).optional(),
|
|
280
|
-
validation: import_zod3.z.record(import_zod3.z.unknown()).optional(),
|
|
281
|
-
presets: import_zod3.z.record(import_zod3.z.unknown()).optional(),
|
|
279
|
+
permissions: import_zod3.z.record(import_zod3.z.string(), import_zod3.z.unknown()).optional(),
|
|
280
|
+
validation: import_zod3.z.record(import_zod3.z.string(), import_zod3.z.unknown()).optional(),
|
|
281
|
+
presets: import_zod3.z.record(import_zod3.z.string(), import_zod3.z.unknown()).optional(),
|
|
282
282
|
fields: import_zod3.z.array(import_zod3.z.string()).optional()
|
|
283
283
|
});
|
|
284
284
|
function registerAccessTools(server, client) {
|
|
@@ -420,7 +420,7 @@ function registerAccessTools(server, client) {
|
|
|
420
420
|
"dry_run_access_import",
|
|
421
421
|
{
|
|
422
422
|
description: "Validate an RBAC manifest import without applying it. Returns the planned changes.",
|
|
423
|
-
inputSchema: { manifest: import_zod3.z.record(import_zod3.z.unknown()).describe("RBAC manifest from export_access.") }
|
|
423
|
+
inputSchema: { manifest: import_zod3.z.record(import_zod3.z.string(), import_zod3.z.unknown()).describe("RBAC manifest from export_access.") }
|
|
424
424
|
},
|
|
425
425
|
async ({ manifest }) => run(() => client.post("/access/import?dryRun=true", manifest))
|
|
426
426
|
);
|
|
@@ -429,7 +429,7 @@ function registerAccessTools(server, client) {
|
|
|
429
429
|
{
|
|
430
430
|
description: "Apply an RBAC manifest import. High-impact \u2014 changes roles/policies/permissions. Pass confirm=true.",
|
|
431
431
|
inputSchema: {
|
|
432
|
-
manifest: import_zod3.z.record(import_zod3.z.unknown()).describe("RBAC manifest from export_access."),
|
|
432
|
+
manifest: import_zod3.z.record(import_zod3.z.string(), import_zod3.z.unknown()).describe("RBAC manifest from export_access."),
|
|
433
433
|
mode: import_zod3.z.enum(["merge", "replace-managed", "replace-all"]).optional().describe("Import mode (default merge)."),
|
|
434
434
|
confirm: import_zod3.z.literal(true).describe(confirmDescription)
|
|
435
435
|
}
|
|
@@ -458,7 +458,7 @@ var materializeSchema = import_zod4.z.object({
|
|
|
458
458
|
refreshStrategy: import_zod4.z.enum(["auto", "cron", "manual"]).optional(),
|
|
459
459
|
refreshCron: import_zod4.z.string().optional(),
|
|
460
460
|
projection: import_zod4.z.object({ fields: import_zod4.z.array(import_zod4.z.string()).optional(), orderBy: import_zod4.z.string().optional() }).optional(),
|
|
461
|
-
filter: import_zod4.z.record(import_zod4.z.unknown()).optional()
|
|
461
|
+
filter: import_zod4.z.record(import_zod4.z.string(), import_zod4.z.unknown()).optional()
|
|
462
462
|
});
|
|
463
463
|
function registerAdminTools(server, client) {
|
|
464
464
|
server.registerTool(
|
|
@@ -527,16 +527,16 @@ var import_zod5 = require("zod");
|
|
|
527
527
|
var intentSchema = import_zod5.z.object({
|
|
528
528
|
name: import_zod5.z.string().min(1).max(120),
|
|
529
529
|
collection: import_zod5.z.string().min(1).max(120),
|
|
530
|
-
rules: import_zod5.z.array(import_zod5.z.record(import_zod5.z.unknown())).describe("SLO rules (required_fields, freshness, translations, link_health, \u2026)."),
|
|
530
|
+
rules: import_zod5.z.array(import_zod5.z.record(import_zod5.z.string(), import_zod5.z.unknown())).describe("SLO rules (required_fields, freshness, translations, link_health, \u2026)."),
|
|
531
531
|
schedule: import_zod5.z.string().describe("5-field cron expression for reconciliation cadence."),
|
|
532
|
-
budget: import_zod5.z.record(import_zod5.z.unknown()).optional(),
|
|
532
|
+
budget: import_zod5.z.record(import_zod5.z.string(), import_zod5.z.unknown()).optional(),
|
|
533
533
|
autonomyCap: import_zod5.z.number().int().min(0).max(4).optional().describe("Max autonomy level L0\u2013L4 for this intent."),
|
|
534
|
-
maintenanceWindow: import_zod5.z.record(import_zod5.z.unknown()).nullable().optional()
|
|
534
|
+
maintenanceWindow: import_zod5.z.record(import_zod5.z.string(), import_zod5.z.unknown()).nullable().optional()
|
|
535
535
|
});
|
|
536
536
|
var flowNode = import_zod5.z.object({
|
|
537
537
|
id: import_zod5.z.string(),
|
|
538
538
|
key: import_zod5.z.string(),
|
|
539
|
-
options: import_zod5.z.record(import_zod5.z.unknown()).optional(),
|
|
539
|
+
options: import_zod5.z.record(import_zod5.z.string(), import_zod5.z.unknown()).optional(),
|
|
540
540
|
next: import_zod5.z.string().nullable().optional(),
|
|
541
541
|
onError: import_zod5.z.string().nullable().optional()
|
|
542
542
|
});
|
|
@@ -545,7 +545,7 @@ var flowSchema = import_zod5.z.object({
|
|
|
545
545
|
description: import_zod5.z.string().optional(),
|
|
546
546
|
status: import_zod5.z.enum(["active", "inactive", "draft"]).optional(),
|
|
547
547
|
triggerType: import_zod5.z.enum(["webhook", "event", "schedule", "manual"]),
|
|
548
|
-
triggerOptions: import_zod5.z.record(import_zod5.z.unknown()).optional(),
|
|
548
|
+
triggerOptions: import_zod5.z.record(import_zod5.z.string(), import_zod5.z.unknown()).optional(),
|
|
549
549
|
graph: import_zod5.z.object({
|
|
550
550
|
entry: import_zod5.z.string().optional(),
|
|
551
551
|
nodes: import_zod5.z.array(flowNode).optional()
|
|
@@ -603,7 +603,7 @@ function registerAgentTools(server, client) {
|
|
|
603
603
|
description: "Trigger a manual run of a flow with an optional input payload.",
|
|
604
604
|
inputSchema: {
|
|
605
605
|
id: idPathSegmentSchema,
|
|
606
|
-
input: import_zod5.z.record(import_zod5.z.unknown()).optional().describe("Initial context passed to the flow.")
|
|
606
|
+
input: import_zod5.z.record(import_zod5.z.string(), import_zod5.z.unknown()).optional().describe("Initial context passed to the flow.")
|
|
607
607
|
}
|
|
608
608
|
},
|
|
609
609
|
async ({ id, input }) => run(() => client.post(`/flows/${encodePathSegment(id)}/run`, input ?? {}))
|
|
@@ -644,7 +644,7 @@ function registerApiKeyTools(server, client) {
|
|
|
644
644
|
name: import_zod6.z.string().min(1).max(96),
|
|
645
645
|
description: import_zod6.z.string().max(512).optional(),
|
|
646
646
|
expiresAt: import_zod6.z.string().datetime().nullable().optional(),
|
|
647
|
-
metadata: import_zod6.z.record(import_zod6.z.unknown()).optional()
|
|
647
|
+
metadata: import_zod6.z.record(import_zod6.z.string(), import_zod6.z.unknown()).optional()
|
|
648
648
|
}
|
|
649
649
|
},
|
|
650
650
|
async (input) => run(() => client.post("/api-keys", input))
|
|
@@ -773,7 +773,7 @@ function registerCdcTools(server, client) {
|
|
|
773
773
|
{
|
|
774
774
|
description: "Rewind a subscription checkpoint inside the retention window (resets dead/stale back to active).",
|
|
775
775
|
inputSchema: {
|
|
776
|
-
subscription_id:
|
|
776
|
+
subscription_id: idPathSegmentSchema.describe("Subscription id."),
|
|
777
777
|
occurred_after: import_zod7.z.string().optional().describe("ISO timestamp to rewind to (within retention)."),
|
|
778
778
|
cursor: import_zod7.z.string().optional().describe("Exact cursor token to rewind to.")
|
|
779
779
|
}
|
|
@@ -783,7 +783,7 @@ function registerCdcTools(server, client) {
|
|
|
783
783
|
if (args.cursor) body.cursor = args.cursor;
|
|
784
784
|
if (args.occurred_after) body.occurred_after = args.occurred_after;
|
|
785
785
|
const result = await client.post(
|
|
786
|
-
`/cdc/subscriptions/${
|
|
786
|
+
`/cdc/subscriptions/${encodePathSegment(args.subscription_id)}/replay`,
|
|
787
787
|
body
|
|
788
788
|
);
|
|
789
789
|
return { content: [{ type: "text", text: JSON.stringify(result) }] };
|
|
@@ -830,7 +830,7 @@ var fieldInputSchema = import_zod8.z.object({
|
|
|
830
830
|
width: import_zod8.z.enum(["half", "full", "fill"]).optional(),
|
|
831
831
|
sortOrder: import_zod8.z.number().int().optional(),
|
|
832
832
|
group: import_zod8.z.string().optional(),
|
|
833
|
-
options: import_zod8.z.record(import_zod8.z.unknown()).optional(),
|
|
833
|
+
options: import_zod8.z.record(import_zod8.z.string(), import_zod8.z.unknown()).optional(),
|
|
834
834
|
defaultValue: import_zod8.z.unknown().optional()
|
|
835
835
|
});
|
|
836
836
|
function formatError2(err) {
|
|
@@ -982,10 +982,10 @@ var presetSchema = import_zod9.z.object({
|
|
|
982
982
|
userId: import_zod9.z.string().nullable().optional(),
|
|
983
983
|
roleId: import_zod9.z.string().nullable().optional(),
|
|
984
984
|
layout: import_zod9.z.string().optional(),
|
|
985
|
-
layoutQuery: import_zod9.z.record(import_zod9.z.unknown()).optional(),
|
|
986
|
-
layoutOptions: import_zod9.z.record(import_zod9.z.unknown()).optional(),
|
|
985
|
+
layoutQuery: import_zod9.z.record(import_zod9.z.string(), import_zod9.z.unknown()).optional(),
|
|
986
|
+
layoutOptions: import_zod9.z.record(import_zod9.z.string(), import_zod9.z.unknown()).optional(),
|
|
987
987
|
search: import_zod9.z.string().nullable().optional(),
|
|
988
|
-
filter: import_zod9.z.record(import_zod9.z.unknown()).optional(),
|
|
988
|
+
filter: import_zod9.z.record(import_zod9.z.string(), import_zod9.z.unknown()).optional(),
|
|
989
989
|
icon: import_zod9.z.string().nullable().optional(),
|
|
990
990
|
color: import_zod9.z.string().nullable().optional(),
|
|
991
991
|
refreshInterval: import_zod9.z.number().int().min(0).optional()
|
|
@@ -1055,7 +1055,7 @@ function registerContentConfigTools(server, client) {
|
|
|
1055
1055
|
description: "Create or update a setting (upsert by key).",
|
|
1056
1056
|
inputSchema: {
|
|
1057
1057
|
key: idPathSegmentSchema,
|
|
1058
|
-
value: import_zod9.z.record(import_zod9.z.unknown()).describe("Arbitrary JSON value object for the setting."),
|
|
1058
|
+
value: import_zod9.z.record(import_zod9.z.string(), import_zod9.z.unknown()).describe("Arbitrary JSON value object for the setting."),
|
|
1059
1059
|
scope: import_zod9.z.string().optional()
|
|
1060
1060
|
}
|
|
1061
1061
|
},
|
|
@@ -1203,7 +1203,7 @@ var extensionSchema = import_zod12.z.object({
|
|
|
1203
1203
|
type: import_zod12.z.enum(EXTENSION_TYPES),
|
|
1204
1204
|
enabled: import_zod12.z.boolean().optional(),
|
|
1205
1205
|
bundleUrl: import_zod12.z.string().min(1).describe("https:, http:, or data:text/javascript bundle URL."),
|
|
1206
|
-
manifest: import_zod12.z.record(import_zod12.z.string()).optional(),
|
|
1206
|
+
manifest: import_zod12.z.record(import_zod12.z.string(), import_zod12.z.string()).optional(),
|
|
1207
1207
|
capabilities: import_zod12.z.array(import_zod12.z.string()).optional()
|
|
1208
1208
|
});
|
|
1209
1209
|
function registerExtensionTools(server, client) {
|
|
@@ -1286,7 +1286,7 @@ function registerExtensionTools(server, client) {
|
|
|
1286
1286
|
inputSchema: {
|
|
1287
1287
|
extensionId: import_zod12.z.string().min(1),
|
|
1288
1288
|
marketplaceSlug: import_zod12.z.string().min(1),
|
|
1289
|
-
publisher: import_zod12.z.record(import_zod12.z.unknown()).optional(),
|
|
1289
|
+
publisher: import_zod12.z.record(import_zod12.z.string(), import_zod12.z.unknown()).optional(),
|
|
1290
1290
|
signature: import_zod12.z.string().optional(),
|
|
1291
1291
|
signatureAlg: import_zod12.z.string().optional(),
|
|
1292
1292
|
publisherKeyId: import_zod12.z.string().optional(),
|
|
@@ -1318,8 +1318,8 @@ var fieldInputSchema2 = import_zod13.z.object({
|
|
|
1318
1318
|
precision: import_zod13.z.number().int().positive().optional(),
|
|
1319
1319
|
scale: import_zod13.z.number().int().min(0).optional(),
|
|
1320
1320
|
special: import_zod13.z.array(import_zod13.z.string()).optional(),
|
|
1321
|
-
options: import_zod13.z.record(import_zod13.z.unknown()).optional(),
|
|
1322
|
-
displayOptions: import_zod13.z.record(import_zod13.z.unknown()).optional(),
|
|
1321
|
+
options: import_zod13.z.record(import_zod13.z.string(), import_zod13.z.unknown()).optional(),
|
|
1322
|
+
displayOptions: import_zod13.z.record(import_zod13.z.string(), import_zod13.z.unknown()).optional(),
|
|
1323
1323
|
conditions: import_zod13.z.array(import_zod13.z.unknown()).optional(),
|
|
1324
1324
|
required: import_zod13.z.boolean().optional().default(false),
|
|
1325
1325
|
readonly: import_zod13.z.boolean().optional().default(false),
|
|
@@ -1419,7 +1419,7 @@ var panelQueryShape = {
|
|
|
1419
1419
|
aggregate: import_zod14.z.enum(AGGREGATES).describe("Aggregate function. `field` is required for everything except `count`."),
|
|
1420
1420
|
field: import_zod14.z.string().min(1).optional().describe("Field to aggregate (required unless aggregate=count)."),
|
|
1421
1421
|
groupBy: import_zod14.z.string().min(1).optional().describe("Field to group rows by (produces a series)."),
|
|
1422
|
-
filter: import_zod14.z.record(import_zod14.z.unknown()).optional().describe('Directus-style condition rule, e.g. { status: { _eq: "published" } }.'),
|
|
1422
|
+
filter: import_zod14.z.record(import_zod14.z.string(), import_zod14.z.unknown()).optional().describe('Directus-style condition rule, e.g. { status: { _eq: "published" } }.'),
|
|
1423
1423
|
dateRange: dateRangeSchema.optional(),
|
|
1424
1424
|
limit: import_zod14.z.number().int().min(1).max(1e3).optional().describe("Max grouped rows to return (default 50).")
|
|
1425
1425
|
};
|
|
@@ -1455,7 +1455,7 @@ function registerInsightsTools(server, client) {
|
|
|
1455
1455
|
inputSchema: {
|
|
1456
1456
|
dashboardId: idPathSegmentSchema,
|
|
1457
1457
|
panelId: idPathSegmentSchema,
|
|
1458
|
-
filter: import_zod14.z.record(import_zod14.z.unknown()).optional().describe("Override the panel filter for this run (Directus-style condition rule)."),
|
|
1458
|
+
filter: import_zod14.z.record(import_zod14.z.string(), import_zod14.z.unknown()).optional().describe("Override the panel filter for this run (Directus-style condition rule)."),
|
|
1459
1459
|
dateRange: dateRangeSchema.optional().describe("Override the panel date range for this run.")
|
|
1460
1460
|
}
|
|
1461
1461
|
},
|
|
@@ -1557,7 +1557,7 @@ function registerItemTools(server, client) {
|
|
|
1557
1557
|
description: "Create a new item in a collection.",
|
|
1558
1558
|
inputSchema: {
|
|
1559
1559
|
collection: collectionNameSchema,
|
|
1560
|
-
data: import_zod15.z.record(import_zod15.z.unknown()).describe("Field values for the new item"),
|
|
1560
|
+
data: import_zod15.z.record(import_zod15.z.string(), import_zod15.z.unknown()).describe("Field values for the new item"),
|
|
1561
1561
|
status: import_zod15.z.enum(["draft", "published"]).optional().default("draft")
|
|
1562
1562
|
}
|
|
1563
1563
|
},
|
|
@@ -1580,7 +1580,7 @@ function registerItemTools(server, client) {
|
|
|
1580
1580
|
inputSchema: {
|
|
1581
1581
|
collection: collectionNameSchema,
|
|
1582
1582
|
id: idPathSegmentSchema,
|
|
1583
|
-
data: import_zod15.z.record(import_zod15.z.unknown()).describe("Fields to update")
|
|
1583
|
+
data: import_zod15.z.record(import_zod15.z.string(), import_zod15.z.unknown()).describe("Fields to update")
|
|
1584
1584
|
}
|
|
1585
1585
|
},
|
|
1586
1586
|
async ({ collection, id, data: itemData }) => {
|
|
@@ -1793,7 +1793,7 @@ function registerPermissionTools(server, client) {
|
|
|
1793
1793
|
inputSchema: {
|
|
1794
1794
|
collection: import_zod19.z.string().min(1),
|
|
1795
1795
|
action: import_zod19.z.enum(["create", "read", "update", "delete", "share"]),
|
|
1796
|
-
item: import_zod19.z.record(import_zod19.z.unknown()).optional().describe("Item payload to evaluate row-level rules against.")
|
|
1796
|
+
item: import_zod19.z.record(import_zod19.z.string(), import_zod19.z.unknown()).optional().describe("Item payload to evaluate row-level rules against.")
|
|
1797
1797
|
}
|
|
1798
1798
|
},
|
|
1799
1799
|
async (input) => run(() => client.post("/permissions/check", input))
|
|
@@ -1815,7 +1815,7 @@ var relationInputSchema = {
|
|
|
1815
1815
|
junctionOneField: import_zod20.z.string().nullable().optional(),
|
|
1816
1816
|
sortField: import_zod20.z.string().nullable().optional(),
|
|
1817
1817
|
onDelete: import_zod20.z.enum(["restrict", "cascade", "set null", "no action"]).optional(),
|
|
1818
|
-
meta: import_zod20.z.record(import_zod20.z.unknown()).optional()
|
|
1818
|
+
meta: import_zod20.z.record(import_zod20.z.string(), import_zod20.z.unknown()).optional()
|
|
1819
1819
|
};
|
|
1820
1820
|
function registerRelationTools(server, client) {
|
|
1821
1821
|
server.registerTool(
|
|
@@ -2115,7 +2115,7 @@ var webhookSchema = import_zod24.z.object({
|
|
|
2115
2115
|
url: import_zod24.z.string().url(),
|
|
2116
2116
|
actions: import_zod24.z.array(import_zod24.z.string()).optional().describe("Item events that trigger the webhook (e.g. create, update, delete)."),
|
|
2117
2117
|
collections: import_zod24.z.array(import_zod24.z.string()).optional().describe("Collections to filter on (empty = all)."),
|
|
2118
|
-
headers: import_zod24.z.record(import_zod24.z.string()).optional(),
|
|
2118
|
+
headers: import_zod24.z.record(import_zod24.z.string(), import_zod24.z.string()).optional(),
|
|
2119
2119
|
status: import_zod24.z.enum(["active", "inactive"]).optional(),
|
|
2120
2120
|
secret: import_zod24.z.string().nullable().optional()
|
|
2121
2121
|
});
|
package/dist/index.js
CHANGED
|
@@ -270,14 +270,14 @@ var policySchema = z3.object({
|
|
|
270
270
|
ipDeny: z3.array(z3.string()).optional(),
|
|
271
271
|
validFrom: z3.string().datetime().nullable().optional(),
|
|
272
272
|
validUntil: z3.string().datetime().nullable().optional(),
|
|
273
|
-
rules: z3.record(z3.unknown()).optional()
|
|
273
|
+
rules: z3.record(z3.string(), z3.unknown()).optional()
|
|
274
274
|
});
|
|
275
275
|
var permissionSchema = z3.object({
|
|
276
276
|
collection: z3.string().min(1).max(64),
|
|
277
277
|
action: z3.enum(["create", "read", "update", "delete", "share"]),
|
|
278
|
-
permissions: z3.record(z3.unknown()).optional(),
|
|
279
|
-
validation: z3.record(z3.unknown()).optional(),
|
|
280
|
-
presets: z3.record(z3.unknown()).optional(),
|
|
278
|
+
permissions: z3.record(z3.string(), z3.unknown()).optional(),
|
|
279
|
+
validation: z3.record(z3.string(), z3.unknown()).optional(),
|
|
280
|
+
presets: z3.record(z3.string(), z3.unknown()).optional(),
|
|
281
281
|
fields: z3.array(z3.string()).optional()
|
|
282
282
|
});
|
|
283
283
|
function registerAccessTools(server, client) {
|
|
@@ -419,7 +419,7 @@ function registerAccessTools(server, client) {
|
|
|
419
419
|
"dry_run_access_import",
|
|
420
420
|
{
|
|
421
421
|
description: "Validate an RBAC manifest import without applying it. Returns the planned changes.",
|
|
422
|
-
inputSchema: { manifest: z3.record(z3.unknown()).describe("RBAC manifest from export_access.") }
|
|
422
|
+
inputSchema: { manifest: z3.record(z3.string(), z3.unknown()).describe("RBAC manifest from export_access.") }
|
|
423
423
|
},
|
|
424
424
|
async ({ manifest }) => run(() => client.post("/access/import?dryRun=true", manifest))
|
|
425
425
|
);
|
|
@@ -428,7 +428,7 @@ function registerAccessTools(server, client) {
|
|
|
428
428
|
{
|
|
429
429
|
description: "Apply an RBAC manifest import. High-impact \u2014 changes roles/policies/permissions. Pass confirm=true.",
|
|
430
430
|
inputSchema: {
|
|
431
|
-
manifest: z3.record(z3.unknown()).describe("RBAC manifest from export_access."),
|
|
431
|
+
manifest: z3.record(z3.string(), z3.unknown()).describe("RBAC manifest from export_access."),
|
|
432
432
|
mode: z3.enum(["merge", "replace-managed", "replace-all"]).optional().describe("Import mode (default merge)."),
|
|
433
433
|
confirm: z3.literal(true).describe(confirmDescription)
|
|
434
434
|
}
|
|
@@ -457,7 +457,7 @@ var materializeSchema = z4.object({
|
|
|
457
457
|
refreshStrategy: z4.enum(["auto", "cron", "manual"]).optional(),
|
|
458
458
|
refreshCron: z4.string().optional(),
|
|
459
459
|
projection: z4.object({ fields: z4.array(z4.string()).optional(), orderBy: z4.string().optional() }).optional(),
|
|
460
|
-
filter: z4.record(z4.unknown()).optional()
|
|
460
|
+
filter: z4.record(z4.string(), z4.unknown()).optional()
|
|
461
461
|
});
|
|
462
462
|
function registerAdminTools(server, client) {
|
|
463
463
|
server.registerTool(
|
|
@@ -526,16 +526,16 @@ import { z as z5 } from "zod";
|
|
|
526
526
|
var intentSchema = z5.object({
|
|
527
527
|
name: z5.string().min(1).max(120),
|
|
528
528
|
collection: z5.string().min(1).max(120),
|
|
529
|
-
rules: z5.array(z5.record(z5.unknown())).describe("SLO rules (required_fields, freshness, translations, link_health, \u2026)."),
|
|
529
|
+
rules: z5.array(z5.record(z5.string(), z5.unknown())).describe("SLO rules (required_fields, freshness, translations, link_health, \u2026)."),
|
|
530
530
|
schedule: z5.string().describe("5-field cron expression for reconciliation cadence."),
|
|
531
|
-
budget: z5.record(z5.unknown()).optional(),
|
|
531
|
+
budget: z5.record(z5.string(), z5.unknown()).optional(),
|
|
532
532
|
autonomyCap: z5.number().int().min(0).max(4).optional().describe("Max autonomy level L0\u2013L4 for this intent."),
|
|
533
|
-
maintenanceWindow: z5.record(z5.unknown()).nullable().optional()
|
|
533
|
+
maintenanceWindow: z5.record(z5.string(), z5.unknown()).nullable().optional()
|
|
534
534
|
});
|
|
535
535
|
var flowNode = z5.object({
|
|
536
536
|
id: z5.string(),
|
|
537
537
|
key: z5.string(),
|
|
538
|
-
options: z5.record(z5.unknown()).optional(),
|
|
538
|
+
options: z5.record(z5.string(), z5.unknown()).optional(),
|
|
539
539
|
next: z5.string().nullable().optional(),
|
|
540
540
|
onError: z5.string().nullable().optional()
|
|
541
541
|
});
|
|
@@ -544,7 +544,7 @@ var flowSchema = z5.object({
|
|
|
544
544
|
description: z5.string().optional(),
|
|
545
545
|
status: z5.enum(["active", "inactive", "draft"]).optional(),
|
|
546
546
|
triggerType: z5.enum(["webhook", "event", "schedule", "manual"]),
|
|
547
|
-
triggerOptions: z5.record(z5.unknown()).optional(),
|
|
547
|
+
triggerOptions: z5.record(z5.string(), z5.unknown()).optional(),
|
|
548
548
|
graph: z5.object({
|
|
549
549
|
entry: z5.string().optional(),
|
|
550
550
|
nodes: z5.array(flowNode).optional()
|
|
@@ -602,7 +602,7 @@ function registerAgentTools(server, client) {
|
|
|
602
602
|
description: "Trigger a manual run of a flow with an optional input payload.",
|
|
603
603
|
inputSchema: {
|
|
604
604
|
id: idPathSegmentSchema,
|
|
605
|
-
input: z5.record(z5.unknown()).optional().describe("Initial context passed to the flow.")
|
|
605
|
+
input: z5.record(z5.string(), z5.unknown()).optional().describe("Initial context passed to the flow.")
|
|
606
606
|
}
|
|
607
607
|
},
|
|
608
608
|
async ({ id, input }) => run(() => client.post(`/flows/${encodePathSegment(id)}/run`, input ?? {}))
|
|
@@ -643,7 +643,7 @@ function registerApiKeyTools(server, client) {
|
|
|
643
643
|
name: z6.string().min(1).max(96),
|
|
644
644
|
description: z6.string().max(512).optional(),
|
|
645
645
|
expiresAt: z6.string().datetime().nullable().optional(),
|
|
646
|
-
metadata: z6.record(z6.unknown()).optional()
|
|
646
|
+
metadata: z6.record(z6.string(), z6.unknown()).optional()
|
|
647
647
|
}
|
|
648
648
|
},
|
|
649
649
|
async (input) => run(() => client.post("/api-keys", input))
|
|
@@ -772,7 +772,7 @@ function registerCdcTools(server, client) {
|
|
|
772
772
|
{
|
|
773
773
|
description: "Rewind a subscription checkpoint inside the retention window (resets dead/stale back to active).",
|
|
774
774
|
inputSchema: {
|
|
775
|
-
subscription_id:
|
|
775
|
+
subscription_id: idPathSegmentSchema.describe("Subscription id."),
|
|
776
776
|
occurred_after: z7.string().optional().describe("ISO timestamp to rewind to (within retention)."),
|
|
777
777
|
cursor: z7.string().optional().describe("Exact cursor token to rewind to.")
|
|
778
778
|
}
|
|
@@ -782,7 +782,7 @@ function registerCdcTools(server, client) {
|
|
|
782
782
|
if (args.cursor) body.cursor = args.cursor;
|
|
783
783
|
if (args.occurred_after) body.occurred_after = args.occurred_after;
|
|
784
784
|
const result = await client.post(
|
|
785
|
-
`/cdc/subscriptions/${
|
|
785
|
+
`/cdc/subscriptions/${encodePathSegment(args.subscription_id)}/replay`,
|
|
786
786
|
body
|
|
787
787
|
);
|
|
788
788
|
return { content: [{ type: "text", text: JSON.stringify(result) }] };
|
|
@@ -829,7 +829,7 @@ var fieldInputSchema = z8.object({
|
|
|
829
829
|
width: z8.enum(["half", "full", "fill"]).optional(),
|
|
830
830
|
sortOrder: z8.number().int().optional(),
|
|
831
831
|
group: z8.string().optional(),
|
|
832
|
-
options: z8.record(z8.unknown()).optional(),
|
|
832
|
+
options: z8.record(z8.string(), z8.unknown()).optional(),
|
|
833
833
|
defaultValue: z8.unknown().optional()
|
|
834
834
|
});
|
|
835
835
|
function formatError2(err) {
|
|
@@ -981,10 +981,10 @@ var presetSchema = z9.object({
|
|
|
981
981
|
userId: z9.string().nullable().optional(),
|
|
982
982
|
roleId: z9.string().nullable().optional(),
|
|
983
983
|
layout: z9.string().optional(),
|
|
984
|
-
layoutQuery: z9.record(z9.unknown()).optional(),
|
|
985
|
-
layoutOptions: z9.record(z9.unknown()).optional(),
|
|
984
|
+
layoutQuery: z9.record(z9.string(), z9.unknown()).optional(),
|
|
985
|
+
layoutOptions: z9.record(z9.string(), z9.unknown()).optional(),
|
|
986
986
|
search: z9.string().nullable().optional(),
|
|
987
|
-
filter: z9.record(z9.unknown()).optional(),
|
|
987
|
+
filter: z9.record(z9.string(), z9.unknown()).optional(),
|
|
988
988
|
icon: z9.string().nullable().optional(),
|
|
989
989
|
color: z9.string().nullable().optional(),
|
|
990
990
|
refreshInterval: z9.number().int().min(0).optional()
|
|
@@ -1054,7 +1054,7 @@ function registerContentConfigTools(server, client) {
|
|
|
1054
1054
|
description: "Create or update a setting (upsert by key).",
|
|
1055
1055
|
inputSchema: {
|
|
1056
1056
|
key: idPathSegmentSchema,
|
|
1057
|
-
value: z9.record(z9.unknown()).describe("Arbitrary JSON value object for the setting."),
|
|
1057
|
+
value: z9.record(z9.string(), z9.unknown()).describe("Arbitrary JSON value object for the setting."),
|
|
1058
1058
|
scope: z9.string().optional()
|
|
1059
1059
|
}
|
|
1060
1060
|
},
|
|
@@ -1202,7 +1202,7 @@ var extensionSchema = z12.object({
|
|
|
1202
1202
|
type: z12.enum(EXTENSION_TYPES),
|
|
1203
1203
|
enabled: z12.boolean().optional(),
|
|
1204
1204
|
bundleUrl: z12.string().min(1).describe("https:, http:, or data:text/javascript bundle URL."),
|
|
1205
|
-
manifest: z12.record(z12.string()).optional(),
|
|
1205
|
+
manifest: z12.record(z12.string(), z12.string()).optional(),
|
|
1206
1206
|
capabilities: z12.array(z12.string()).optional()
|
|
1207
1207
|
});
|
|
1208
1208
|
function registerExtensionTools(server, client) {
|
|
@@ -1285,7 +1285,7 @@ function registerExtensionTools(server, client) {
|
|
|
1285
1285
|
inputSchema: {
|
|
1286
1286
|
extensionId: z12.string().min(1),
|
|
1287
1287
|
marketplaceSlug: z12.string().min(1),
|
|
1288
|
-
publisher: z12.record(z12.unknown()).optional(),
|
|
1288
|
+
publisher: z12.record(z12.string(), z12.unknown()).optional(),
|
|
1289
1289
|
signature: z12.string().optional(),
|
|
1290
1290
|
signatureAlg: z12.string().optional(),
|
|
1291
1291
|
publisherKeyId: z12.string().optional(),
|
|
@@ -1317,8 +1317,8 @@ var fieldInputSchema2 = z13.object({
|
|
|
1317
1317
|
precision: z13.number().int().positive().optional(),
|
|
1318
1318
|
scale: z13.number().int().min(0).optional(),
|
|
1319
1319
|
special: z13.array(z13.string()).optional(),
|
|
1320
|
-
options: z13.record(z13.unknown()).optional(),
|
|
1321
|
-
displayOptions: z13.record(z13.unknown()).optional(),
|
|
1320
|
+
options: z13.record(z13.string(), z13.unknown()).optional(),
|
|
1321
|
+
displayOptions: z13.record(z13.string(), z13.unknown()).optional(),
|
|
1322
1322
|
conditions: z13.array(z13.unknown()).optional(),
|
|
1323
1323
|
required: z13.boolean().optional().default(false),
|
|
1324
1324
|
readonly: z13.boolean().optional().default(false),
|
|
@@ -1418,7 +1418,7 @@ var panelQueryShape = {
|
|
|
1418
1418
|
aggregate: z14.enum(AGGREGATES).describe("Aggregate function. `field` is required for everything except `count`."),
|
|
1419
1419
|
field: z14.string().min(1).optional().describe("Field to aggregate (required unless aggregate=count)."),
|
|
1420
1420
|
groupBy: z14.string().min(1).optional().describe("Field to group rows by (produces a series)."),
|
|
1421
|
-
filter: z14.record(z14.unknown()).optional().describe('Directus-style condition rule, e.g. { status: { _eq: "published" } }.'),
|
|
1421
|
+
filter: z14.record(z14.string(), z14.unknown()).optional().describe('Directus-style condition rule, e.g. { status: { _eq: "published" } }.'),
|
|
1422
1422
|
dateRange: dateRangeSchema.optional(),
|
|
1423
1423
|
limit: z14.number().int().min(1).max(1e3).optional().describe("Max grouped rows to return (default 50).")
|
|
1424
1424
|
};
|
|
@@ -1454,7 +1454,7 @@ function registerInsightsTools(server, client) {
|
|
|
1454
1454
|
inputSchema: {
|
|
1455
1455
|
dashboardId: idPathSegmentSchema,
|
|
1456
1456
|
panelId: idPathSegmentSchema,
|
|
1457
|
-
filter: z14.record(z14.unknown()).optional().describe("Override the panel filter for this run (Directus-style condition rule)."),
|
|
1457
|
+
filter: z14.record(z14.string(), z14.unknown()).optional().describe("Override the panel filter for this run (Directus-style condition rule)."),
|
|
1458
1458
|
dateRange: dateRangeSchema.optional().describe("Override the panel date range for this run.")
|
|
1459
1459
|
}
|
|
1460
1460
|
},
|
|
@@ -1556,7 +1556,7 @@ function registerItemTools(server, client) {
|
|
|
1556
1556
|
description: "Create a new item in a collection.",
|
|
1557
1557
|
inputSchema: {
|
|
1558
1558
|
collection: collectionNameSchema,
|
|
1559
|
-
data: z15.record(z15.unknown()).describe("Field values for the new item"),
|
|
1559
|
+
data: z15.record(z15.string(), z15.unknown()).describe("Field values for the new item"),
|
|
1560
1560
|
status: z15.enum(["draft", "published"]).optional().default("draft")
|
|
1561
1561
|
}
|
|
1562
1562
|
},
|
|
@@ -1579,7 +1579,7 @@ function registerItemTools(server, client) {
|
|
|
1579
1579
|
inputSchema: {
|
|
1580
1580
|
collection: collectionNameSchema,
|
|
1581
1581
|
id: idPathSegmentSchema,
|
|
1582
|
-
data: z15.record(z15.unknown()).describe("Fields to update")
|
|
1582
|
+
data: z15.record(z15.string(), z15.unknown()).describe("Fields to update")
|
|
1583
1583
|
}
|
|
1584
1584
|
},
|
|
1585
1585
|
async ({ collection, id, data: itemData }) => {
|
|
@@ -1792,7 +1792,7 @@ function registerPermissionTools(server, client) {
|
|
|
1792
1792
|
inputSchema: {
|
|
1793
1793
|
collection: z19.string().min(1),
|
|
1794
1794
|
action: z19.enum(["create", "read", "update", "delete", "share"]),
|
|
1795
|
-
item: z19.record(z19.unknown()).optional().describe("Item payload to evaluate row-level rules against.")
|
|
1795
|
+
item: z19.record(z19.string(), z19.unknown()).optional().describe("Item payload to evaluate row-level rules against.")
|
|
1796
1796
|
}
|
|
1797
1797
|
},
|
|
1798
1798
|
async (input) => run(() => client.post("/permissions/check", input))
|
|
@@ -1814,7 +1814,7 @@ var relationInputSchema = {
|
|
|
1814
1814
|
junctionOneField: z20.string().nullable().optional(),
|
|
1815
1815
|
sortField: z20.string().nullable().optional(),
|
|
1816
1816
|
onDelete: z20.enum(["restrict", "cascade", "set null", "no action"]).optional(),
|
|
1817
|
-
meta: z20.record(z20.unknown()).optional()
|
|
1817
|
+
meta: z20.record(z20.string(), z20.unknown()).optional()
|
|
1818
1818
|
};
|
|
1819
1819
|
function registerRelationTools(server, client) {
|
|
1820
1820
|
server.registerTool(
|
|
@@ -2114,7 +2114,7 @@ var webhookSchema = z24.object({
|
|
|
2114
2114
|
url: z24.string().url(),
|
|
2115
2115
|
actions: z24.array(z24.string()).optional().describe("Item events that trigger the webhook (e.g. create, update, delete)."),
|
|
2116
2116
|
collections: z24.array(z24.string()).optional().describe("Collections to filter on (empty = all)."),
|
|
2117
|
-
headers: z24.record(z24.string()).optional(),
|
|
2117
|
+
headers: z24.record(z24.string(), z24.string()).optional(),
|
|
2118
2118
|
status: z24.enum(["active", "inactive"]).optional(),
|
|
2119
2119
|
secret: z24.string().nullable().optional()
|
|
2120
2120
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lumibase/mcp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.0",
|
|
4
4
|
"description": "LumiBase MCP server — lets AI assistants manage the full LumiBase Content OS: collections, fields, items, relations, RBAC (roles/policies/permissions/API keys), users & teams, intents, flows, webhooks, translations & translation memory, search, media & transform presets, read-only insights, presets, editorial workflow, content releases, share links, read-only deployments, extensions, and site administration.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -26,11 +26,11 @@
|
|
|
26
26
|
"access": "public"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
30
|
-
"zod": "^
|
|
29
|
+
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
30
|
+
"zod": "^4.4.3"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@types/node": "^
|
|
33
|
+
"@types/node": "^26.2.0",
|
|
34
34
|
"tsup": "^8.5.1",
|
|
35
35
|
"typescript": "^5.6.2",
|
|
36
36
|
"vitest": "^4.1.10"
|