@sanlim/home-assistant-switch-mcp-server
Version:
A MCP server for Home Assistant switch services.
29 lines (28 loc) • 1.15 kB
JavaScript
import { z } from "zod";
import { BaseToolsController } from "./base/BaseToolsController.js";
export class HomeAssistantStateToolsController extends BaseToolsController {
service;
constructor(server, service) {
super(server);
this.service = service;
}
registerTools() {
this.registerStateServiceHandler();
}
registerStateServiceHandler() {
this.server.tool("home-assistant-states", "Get Home Assistant entity states. Can get all states, a specific entity state, or search by friendly name", {
entity_id: z.string().optional().describe("The entity ID to get state for (e.g., 'switch.living_room_light')"),
friendly_name: z.string().optional().describe("Search for entities by friendly name (e.g., 'living room')"),
}, async ({ entity_id, friendly_name }) => {
const text = await this.service.getStates({ entity_id, friendly_name });
return {
content: [
{
type: "text",
text: text,
},
],
};
});
}
}