rhombus-node-mcp
Version:
MCP server for Rhombus API
49 lines (48 loc) • 1.86 kB
JavaScript
import { z } from "zod";
import { INCLUDE_FIELDS_ARG, FILTER_BY_ARG } from "../util.js";
export var UserAuditRequestType;
(function (UserAuditRequestType) {
UserAuditRequestType["AUDIT_BY_USER"] = "audit-by-user";
UserAuditRequestType["AUDIT_BY_TARGET"] = "audit-by-target";
})(UserAuditRequestType || (UserAuditRequestType = {}));
export const TOOL_ARGS = {
requestType: z
.nativeEnum(UserAuditRequestType)
.describe("The type of audit request to make."),
userUuid: z
.string()
.nullable()
.describe("User UUID whose actions to audit. Required for 'audit-by-user'. Use user-tool to find this."),
targetUuid: z
.string()
.nullable()
.describe("Target entity UUID (camera, door, policy, etc.) to see what has been done to it. Required for 'audit-by-target'."),
maxResults: z
.number()
.nullable()
.describe("Maximum number of audit events to return. Defaults to 50."),
includeFields: INCLUDE_FIELDS_ARG,
filterBy: FILTER_BY_ARG,
};
const TOOL_ARGS_SCHEMA = z.object(TOOL_ARGS);
const AuditEventSchema = z.object({
uuid: z.string().optional(),
action: z.string().optional(),
displayText: z.string().optional(),
principalName: z.string().optional(),
principalUuid: z.string().optional(),
targetName: z.string().optional(),
targetUuid: z.string().optional(),
timestamp: z.string().optional(),
failure: z.boolean().optional(),
sourceIp: z.string().optional(),
sourceCity: z.string().optional(),
sourceCountry: z.string().optional(),
});
export const OUTPUT_SCHEMA = z.object({
auditEvents: z
.array(AuditEventSchema)
.optional()
.describe("List of audit events, most recent first"),
error: z.string().optional().describe("An error message if the request failed."),
});