Skip to main content
Glama

Home Assistant MCP Server

integration-light-schema.ts2.37 kB
import { z } from "zod"; export const TimePeriodMapSchema = z.object({ days: z.union([z.string(), z.number()]).optional(), hours: z.union([z.string(), z.number()]).optional(), milliseconds: z.union([z.string(), z.number()]).optional(), minutes: z.union([z.string(), z.number()]).optional(), seconds: z.union([z.string(), z.number()]).optional(), }); export const EntitiesSchema = z.union([ z .string() .regex( /^(?!.+__)(?!_)[\da-z_]+(?<!_)\.(?!_)[\da-z_]+(?<!_)\s?(?:,\s?(?!.+__)(?!_)[\da-z_]+(?<!_)\.(?!_)[\da-z_]+(?<!_))*$/, ), z.array( z.string().regex(/^(?!.+__)(?!_)[\da-z_]+(?<!_)\.(?!_)[\da-z_]+(?<!_)$/), ), ]); export const LightPlatformSchema = z.object({ platform: z.literal("group"), all: z.boolean().optional(), entities: EntitiesSchema, name: z.string().optional(), unique_id: z.string().optional(), entity_namespace: z.string().optional(), scan_interval: z .union([TimePeriodMapSchema, z.string(), z.number()]) .optional(), }); export const LightPlatformItemSchema = z.object({ availability_template: z.string().optional(), effect_list_template: z.string().optional(), effect_template: z.string().optional(), entity_picture_template: z.string().optional(), friendly_name: z.string().optional(), hs_template: z.string().optional(), icon_template: z.string().optional(), level_template: z.string().optional(), max_mireds_template: z.string().optional(), min_mireds_template: z.string().optional(), rgb_template: z.string().optional(), rgbw_template: z.string().optional(), rgbww_template: z.string().optional(), set_level: z.any().optional(), set_rgb: z.any().optional(), set_rgbw: z.any().optional(), set_rgbww: z.any().optional(), set_temperature: z.any().optional(), supports_transition_template: z.string().optional(), temperature_template: z.string().optional(), turn_off: z.any().optional(), turn_on: z.any().optional(), }); export const LightPlatformSchema_1 = z.object({ platform: z.literal("template"), lights: z.record(z.union([z.string(), LightPlatformItemSchema])), entity_namespace: z.string().optional(), scan_interval: z .union([TimePeriodMapSchema, z.string(), z.number()]) .optional(), }); export const IntegrationLightSchema = z.union([ LightPlatformSchema, LightPlatformSchema_1, z.array(z.any()), ]);

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/oleander/home-assistant-mcp-server'

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