rhombus-node-mcp
Version:
MCP server for Rhombus API
55 lines (54 loc) • 2.17 kB
JavaScript
import { z } from "zod";
import { INCLUDE_FIELDS_ARG, FILTER_BY_ARG } from "../util.js";
export var UserAccessTrailRequestType;
(function (UserAccessTrailRequestType) {
UserAccessTrailRequestType["GET_ACCESS_EVENTS_BY_USER"] = "get-access-events-by-user";
UserAccessTrailRequestType["GET_ACCESS_EVENTS_BY_EMAIL"] = "get-access-events-by-email";
})(UserAccessTrailRequestType || (UserAccessTrailRequestType = {}));
export const TOOL_ARGS = {
requestType: z
.nativeEnum(UserAccessTrailRequestType)
.describe("The type of access trail request."),
userUuid: z
.string()
.nullable()
.describe("User UUID. Required for 'get-access-events-by-user'."),
email: z
.string()
.nullable()
.describe("User email address. Required for 'get-access-events-by-email'. Will resolve to userUuid automatically."),
startTimeMs: z
.number()
.nullable()
.describe("Start time filter in milliseconds since epoch."),
endTimeMs: z
.number()
.nullable()
.describe("End time filter in milliseconds since epoch."),
limit: z
.number()
.nullable()
.describe("Maximum number of events to return. Defaults to 100."),
includeFields: INCLUDE_FIELDS_ARG,
filterBy: FILTER_BY_ARG,
};
const TOOL_ARGS_SCHEMA = z.object(TOOL_ARGS);
const AccessEventSchema = z.object({
eventUuid: z.string().optional(),
eventType: z.string().optional(),
timestampMs: z.number().optional(),
locationUuid: z.string().optional(),
componentUuid: z.string().optional(),
ownerDeviceUuid: z.string().optional(),
authorizationResult: z.string().optional(),
authenticationResult: z.string().optional(),
});
export const OUTPUT_SCHEMA = z.object({
userUuid: z.string().optional().describe("Resolved user UUID"),
userName: z.string().optional().describe("Resolved user name"),
accessEvents: z
.array(AccessEventSchema)
.optional()
.describe("List of access control events for the user, ordered by time"),
error: z.string().optional().describe("An error message if the request failed."),
});