leshan-mcp-server
Version:
A standards-compliant MCP server for Leshan LwM2M, exposing Leshan as Model Context Protocol tools.
25 lines (22 loc) • 950 B
JavaScript
import { z } from "zod";
const envSchema = z.object({
LESHAN_URL: z.string().url().default("http://localhost:8084"),
LESHAN_TIMEOUT: z.coerce.number().positive().default(30000),
LESHAN_RETRIES: z.coerce.number().min(1).max(10).default(3),
LESHAN_RETRY_DELAY: z.coerce.number().positive().default(1000),
MAX_CONCURRENT_REQUESTS: z.coerce.number().positive().default(10),
LOG_LEVEL: z.enum(["debug", "info", "warn", "error"]).default("info"),
ENABLE_FILE_LOGGING: z.coerce.boolean().default(true),
NODE_ENV: z.enum(["development", "production", "test"]).default("development"),
});
export function validateEnvironment() {
try {
const env = envSchema.parse(process.env);
return env;
} catch (error) {
console.error("❌ Invalid environment configuration:");
console.error(error.errors.map(e => ` ${e.path.join('.')}: ${e.message}`).join('\n'));
process.exit(1);
}
}
export const env = validateEnvironment();