Skip to main content
Glama

HomeAssistant MCP

index.ts2.66 kB
import { loadEnvironmentVariables } from "./loadEnv"; // Load environment variables from the appropriate files loadEnvironmentVariables(); // Home Assistant Configuration export const HASS_CONFIG = { HOST: process.env.HASS_HOST || "http://homeassistant.local:8123", TOKEN: process.env.HASS_TOKEN, SOCKET_URL: process.env.HASS_SOCKET_URL || "ws://homeassistant.local:8123/api/websocket", BASE_URL: process.env.HASS_HOST || "http://homeassistant.local:8123", SOCKET_TOKEN: process.env.HASS_TOKEN, }; // Server Configuration export const SERVER_CONFIG = { PORT: parseInt(process.env.PORT || "3000", 10), NODE_ENV: process.env.NODE_ENV || "development", DEBUG: process.env.DEBUG === "true", LOG_LEVEL: process.env.LOG_LEVEL || "info", }; // AI Configuration export const AI_CONFIG = { PROCESSOR_TYPE: process.env.PROCESSOR_TYPE || "claude", OPENAI_API_KEY: process.env.OPENAI_API_KEY, }; // Rate Limiting Configuration export const RATE_LIMIT_CONFIG = { REGULAR: parseInt(process.env.RATE_LIMIT_REGULAR || "100", 10), WEBSOCKET: parseInt(process.env.RATE_LIMIT_WEBSOCKET || "1000", 10), }; // Security Configuration export const SECURITY_CONFIG = { JWT_SECRET: process.env.JWT_SECRET || "default_secret_key_change_in_production", CORS_ORIGINS: ( process.env.CORS_ORIGINS || "http://localhost:3000,http://localhost:8123" ) .split(",") .map((origin) => origin.trim()), }; // Test Configuration export const TEST_CONFIG = { HASS_HOST: process.env.TEST_HASS_HOST || "http://localhost:8123", HASS_TOKEN: process.env.TEST_HASS_TOKEN || "test_token", HASS_SOCKET_URL: process.env.TEST_HASS_SOCKET_URL || "ws://localhost:8123/api/websocket", PORT: parseInt(process.env.TEST_PORT || "3001", 10), }; // Mock Configuration (for testing) export const MOCK_CONFIG = { SERVICES: process.env.MOCK_SERVICES === "true", RESPONSES_DIR: process.env.MOCK_RESPONSES_DIR || "__tests__/mock-responses", }; // Validate required configuration function validateConfig() { const missingVars: string[] = []; if (!HASS_CONFIG.TOKEN) missingVars.push("HASS_TOKEN"); if (!SECURITY_CONFIG.JWT_SECRET) missingVars.push("JWT_SECRET"); if (missingVars.length > 0) { throw new Error( `Missing required environment variables: ${missingVars.join(", ")}`, ); } } // Export configuration validation export const validateConfiguration = validateConfig; // Export all configurations as a single object export const AppConfig = { HASS: HASS_CONFIG, SERVER: SERVER_CONFIG, AI: AI_CONFIG, RATE_LIMIT: RATE_LIMIT_CONFIG, SECURITY: SECURITY_CONFIG, TEST: TEST_CONFIG, MOCK: MOCK_CONFIG, };

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