UNPKG

@seliseblocks/mcp-server

Version:

A Model Context Protocol (MCP) server for managing schemas in SELISE Blocks platform, built with TypeScript.

42 lines 2.09 kB
import { z } from 'zod'; export const ModuleGenerationSchema = z.object({ moduleName: z.string().describe('The name of the module (e.g., "user-management", "product-catalog")'), displayName: z.string().describe('The display name for the module (e.g., "User Management", "Product Catalog")'), route: z.string().describe('The route path (e.g., "/users", "/products")'), fields: z.array(z.object({ name: z.string().describe('Field name in camelCase'), displayName: z.string().describe('Display name for the field'), type: z.enum(['string', 'number', 'boolean', 'date', 'email', 'url']).describe('Field type'), required: z.boolean().default(true).describe('Whether the field is required'), validation: z.string().optional().describe('Additional validation rules') })).describe('Array of fields for the module'), features: z.object({ list: z.boolean().default(true).describe('Generate list page'), add: z.boolean().default(true).describe('Generate add form'), edit: z.boolean().default(false).describe('Generate edit form'), delete: z.boolean().default(false).describe('Generate delete functionality'), details: z.boolean().default(false).describe('Generate details page') }).default({ list: true, add: true, edit: false, delete: false, details: false }), navigation: z.object({ addToMenu: z.boolean().default(true).describe('Add to navigation menu'), icon: z.string().optional().describe('Icon name for the menu item'), position: z.enum(['after-inventory', 'after-iam', 'custom']).default('after-inventory').describe('Position in navigation menu') }).default({ addToMenu: true, position: 'after-inventory' }) }); export const FieldSchema = z.object({ name: z.string(), displayName: z.string(), type: z.enum(['string', 'number', 'boolean', 'date', 'email', 'url']), required: z.boolean(), validation: z.string().optional() }); //# sourceMappingURL=templateType.js.map