homeassistant-mpc
Home Assistant MCP is an MCP server designed to integrate with Home Assistant, allowing AI assistants to interact with smart home devices. It provides tools that enable API verification, state retrieval, and service calls for Home Assistant entities.
Home Assistant MCP
This is an MCP (Model Context Protocol) server that provides tools for integration with Home Assistant, allowing AI assistants to interact with smart home devices.
Setup
Installing via Smithery
To install Home Assistant Integration for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @guilhermelirio/homeassistant-mpc --client claude
Manual Installation
- Install dependencies:
npm install
- Configure environment variables:
- Obtain a Long-Lived Access Token from your Home Assistant
- Configure the environment variables in a
.env
file at the project root:
HOME_ASSISTANT_URL=http://your-home-assistant:8123
HOME_ASSISTANT_TOKEN=your_token_here
Starting the server
npm start
For development:
npm run dev
Available Tools
Home Assistant API Verification
- homeassistant_api: Verifies if the Home Assistant API is online
- Parameters: none
- Example:
homeassistant_api()
Get Entity State
- homeassistant_get_state: Gets the current state of a Home Assistant entity
- Parameters:
entity_id
(entity ID) - Example:
homeassistant_get_state("light.living_room")
- Parameters:
Call Services
- homeassistant_call_service: Calls a service for a Home Assistant entity
- Parameters:
entity_id
(entity ID)domain
(service domain)service
(service to call)
- Example:
homeassistant_call_service("light.living_room", "light", "turn_on")
- Parameters:
Development
This project uses TypeScript and the MCP SDK library to create tools that can be accessed by language models such as Claude, GPT, etc.
To add new tools:
- Create a module in
src/tools/[category]
- Implement your tools following the existing pattern
- Register the module in
src/index.ts
Contributions
Contributions are welcome! Feel free to open issues or submit pull requests.
License
This project is licensed under the MIT License - see the LICENSE file for details.