@meetbot/mcp
Version:
Model Context Protocol (MCP) server for Meet.bot booking page API
65 lines • 2.04 kB
JavaScript
import { z } from 'zod';
/**
* Zod schemas for runtime validation of Meet.bot API data
*/
export const BookSlotSchema = z.object({
success: z.boolean(),
page: z.string().url(),
guest_email: z.string().email(),
guest_name: z.string().min(1),
notes: z.string().optional(),
start: z.string().datetime(),
ical_uid: z.string(),
});
export const PageInfoSchema = z.object({
title: z.string(),
duration: z.number().int().positive(),
url: z.string().url(),
owner_name: z.string(),
max_days_into_the_future: z.number().int().positive(),
});
export const SchedulingPageSchema = z.object({
title: z.string(),
duration: z.number().int().positive(),
url: z.string().url(),
});
export const PagesSchema = z.object({
email: z.string().email(),
pages: z.array(SchedulingPageSchema),
});
export const SlotDetailsSchema = z.object({
start: z.string().datetime(),
url: z.string().url().optional(),
});
export const SlotsSchema = z.object({
count: z.number().int().nonnegative(),
duration: z.number().int().positive(),
slots: z.array(SlotDetailsSchema),
});
export const BookSlotRequestSchema = z.object({
page: z.string().url(),
guest_email: z.string().email(),
guest_name: z.string().min(1),
notes: z.string().optional(),
start: z.string().datetime(),
});
export const GetSlotsParamsSchema = z.object({
page: z.string().url(),
count: z.number().int().positive().optional(),
start: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional(),
end: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional(),
timezone: z.string().min(1).optional(),
booking_link: z.boolean().optional(),
});
export const GetInfoParamsSchema = z.object({
page: z.string().url(),
});
export const ApiErrorSchema = z.object({
success: z.literal(false),
error: z.string(),
errors: z.record(z.array(z.string())).optional(),
});
export const MeetbotConfigSchema = z.object({
authToken: z.string().optional(),
});
//# sourceMappingURL=schemas.js.map