# Home Assistant MCP Server
A Model Context Protocol (MCP) server that provides access to Home Assistant entities and services.
## Features
- **List Entities**: Browse all your Home Assistant devices (lights, switches, sensors, etc.)
- **Get Entity State**: Check the current state and attributes of any entity
- **Call Services**: Control devices (turn lights on/off, adjust climate, etc.)
- **List Services**: Discover available Home Assistant services
## Installation
```bash
npm install
npm run build
```
## Configuration
Set the following environment variables:
- `HASS_HOST`: Your Home Assistant URL (e.g., `https://your-instance.ui.nabu.casa`)
- `HASS_TOKEN`: Your Home Assistant long-lived access token
## Usage with VS Code
Add to your VS Code `settings.json`:
```json
{
"github.copilot.chat.mcp.servers": {
"homeassistant": {
"command": "node",
"args": ["C:/Repos/HomeAssistant-mcp/dist/index.js"],
"env": {
"HASS_HOST": "https://your-instance.ui.nabu.casa",
"HASS_TOKEN": "your-long-lived-token"
}
}
}
}
```
## Available Tools
### list_entities
List all Home Assistant entities, optionally filtered by domain.
**Parameters:**
- `domain` (optional): Filter by domain (e.g., "light", "switch", "sensor")
### get_entity_state
Get the current state and attributes of a specific entity.
**Parameters:**
- `entity_id` (required): The entity ID (e.g., "light.living_room")
### call_service
Call a Home Assistant service to control devices.
**Parameters:**
- `domain` (required): Service domain (e.g., "light", "switch")
- `service` (required): Service name (e.g., "turn_on", "turn_off")
- `entity_id` (optional): Target entity ID
- `data` (optional): Additional service data (brightness, color, etc.)
### list_services
List all available Home Assistant services.
## License
MIT