Skip to main content
Glama
options.tsβ€’2.05 kB
import { z } from 'zod'; import { logger } from '@core/index.js'; export function validateCliOptions(opts: any): void { // Remove debug logging for CLI validation to reduce noise const cliOptionShape = z.object({ verbose: z.boolean().optional().default(true), mode: z .enum(['cli', 'mcp', 'api', 'ui'], { errorMap: () => ({ message: 'Mode must be either cli, mcp, api, or ui' }), }) .optional() .default('cli'), strict: z.boolean().optional().default(false), newSession: z.union([z.boolean(), z.string()]).optional(), port: z.string().optional(), uiPort: z.string().optional(), host: z.string().optional(), mcpTransportType: z .enum(['stdio', 'sse', 'streamable-http'], { errorMap: () => ({ message: 'MCP transport type must be stdio, sse, or streamable-http' }), }) .optional() .default('stdio'), mcpPort: z.string().optional(), mcpHost: z.string().optional(), mcpDnsRebindingProtection: z.boolean().optional(), }); const cliOptionSchema = cliOptionShape; const result = cliOptionSchema.safeParse({ verbose: opts.verbose, mode: opts.mode, strict: opts.strict, newSession: opts.newSession, port: opts.port, uiPort: opts.uiPort, host: opts.host, mcpTransportType: opts.mcpTransportType, mcpPort: opts.mcpPort, mcpHost: opts.mcpHost, mcpDnsRebindingProtection: opts.mcpDnsRebindingProtection, }); if (!result.success) { throw result.error; } // CLI options validated - no logging to reduce noise } export function handleCliOptionsError(error: unknown): never { if (error instanceof z.ZodError) { logger.error('Invalid command-line options detected:'); error.errors.forEach(err => { const fieldName = err.path.join('.') || 'Unknown Option'; logger.error(`- Option '${fieldName}': ${err.message}`); }); logger.error('Please check your command-line arguments or run with --help for usage details.'); } else { logger.error( `Validation error: ${error instanceof Error ? error.message : JSON.stringify(error)}` ); } process.exit(1); }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/campfirein/cipher'

If you have feedback or need assistance with the MCP directory API, please join our Discord server