Skip to main content
Glama

HomeAssistant MCP

test-automation-ref-strategy.ts2.21 kB
import { z } from 'zod'; import { zodToJsonSchema } from 'zod-to-json-schema'; const hassDictionarySchema = z .record(z.string(), z.unknown()) .describe("Arbitrary Home Assistant data payload"); const automationConditionSchema: z.ZodTypeAny = z.lazy(() => z .object({ alias: z .string() .optional() .describe("Optional condition alias"), condition: z .string() .min(1) .describe("Condition type (state, numeric_state, and/or, etc.)"), conditions: z .array(automationConditionSchema) .optional() .describe("Nested conditions"), }) .passthrough() .describe("Home Assistant condition definition"), ); const automationActionSchema: z.ZodTypeAny = z.lazy(() => z .object({ alias: z .string() .optional() .describe("Optional action alias"), service: z .string() .optional() .describe("Home Assistant service to call"), }) .passthrough() .describe("Home Assistant action step"), ); const automationConfigSchema = z .object({ alias: z .string() .min(1) .describe("Friendly name for the automation"), condition: z .array(automationConditionSchema) .optional() .describe("List of conditions"), action: z .array(automationActionSchema) .min(1, "At least one action is required") .describe("List of actions"), }) .passthrough() .describe("Automation configuration"); const automationConfigTool = { name: "automation_config", description: "Advanced automation configuration and management", parameters: z.object({ action: z .enum(["create", "update", "delete", "duplicate"]) .describe("Action to perform with automation config"), config: automationConfigSchema .optional() .describe("Automation configuration (required for create and update)"), }), }; try { const jsonSchema = zodToJsonSchema(automationConfigTool.parameters, { refStrategy: "none", }); console.log(JSON.stringify(jsonSchema, null, 2)); } catch (error) { console.error('Error:', error instanceof Error ? error.message : error); }

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/jango-blockchained/advanced-homeassistant-mcp'

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