Skip to main content
Glama
config.ts1.76 kB
/** * Configuration Management */ import { z } from 'zod'; import { LogLevel, logger } from './utils/logger.js'; const ConfigSchema = z.object({ // DBGp server settings dbgpPort: z.number().int().positive().default(9003), dbgpHost: z.string().default('0.0.0.0'), commandTimeout: z.number().int().positive().default(30000), // Path mappings for Docker pathMappings: z.record(z.string(), z.string()).optional(), // Variable inspection limits maxDepth: z.number().int().positive().default(3), maxChildren: z.number().int().positive().default(128), maxData: z.number().int().positive().default(2048), // Logging logLevel: z.enum(['debug', 'info', 'warn', 'error']).default('info'), }); export type Config = z.infer<typeof ConfigSchema>; export function loadConfig(): Config { const rawConfig: Record<string, unknown> = { dbgpPort: parseInt(process.env.XDEBUG_PORT || '9003', 10), dbgpHost: process.env.XDEBUG_HOST || '0.0.0.0', commandTimeout: parseInt(process.env.COMMAND_TIMEOUT || '30000', 10), maxDepth: parseInt(process.env.MAX_DEPTH || '3', 10), maxChildren: parseInt(process.env.MAX_CHILDREN || '128', 10), maxData: parseInt(process.env.MAX_DATA || '2048', 10), logLevel: process.env.LOG_LEVEL || 'info', }; // Parse path mappings from JSON if provided if (process.env.PATH_MAPPINGS) { try { rawConfig.pathMappings = JSON.parse(process.env.PATH_MAPPINGS); } catch { logger.warn('Failed to parse PATH_MAPPINGS environment variable'); } } const config = ConfigSchema.parse(rawConfig); // Apply log level logger.setLevel(config.logLevel as LogLevel); return config; } export function getDefaultConfig(): Config { return ConfigSchema.parse({}); }

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/kpanuragh/xdebug-mcp'

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