A Home Assistant Custom Component that provides an MCP (Model Context Protocol) server using HTTP transport, allowing AI assistants like Claude to interact with your Home Assistant instance.
Note: Unlike other Home Assistant MCP servers that use SSE (Server-Sent Events), this implementation uses HTTP transport with OAuth 2.0 authentication, making it suitable for remote access and integration with services like Claude in browser.
- 🌐 HTTP transport (not SSE) - works remotely, not just locally
- 🏠 Full Home Assistant API access
- 🔧 Easy HACS installation
- 📊 Access to entities, states, and services
This plugin requires hass-oidc-auth to be installed and configured for OIDC authentication.
- Open HACS in Home Assistant
- Search for "MCP Server"
- Click "Download"
- Restart Home Assistant
- Configure the integration (see Configuration section below)
- Copy the
custom_components/mcp_serverfolder to your Home Assistantcustom_componentsdirectory - Restart Home Assistant
- Configure the integration (see Configuration section below)
- Go to Settings → Devices & Services
- Click "Add Integration"
- Search for "MCP Server"
- Follow the configuration steps
The MCP server uses OAuth 2.0 Dynamic Client Registration (DCR), which allows Claude to automatically register itself without manual client setup.
-
In Claude (claude.ai):
- Open Profile (bottom left corner)
- Click Settings (gear icon)
- Navigate to "Connectors"
- Click "Add custom connector"
- Enter your MCP server URL:
https://your-home-assistant.com/api/mcp - Click "Connect"
-
Claude will automatically:
- Discover your Home Assistant's OAuth endpoints
- Register itself as an OAuth client
- Redirect you to Home Assistant for authentication
- Request access to your Home Assistant data
-
In Home Assistant:
- Log in if not already authenticated
- Review the permissions requested by Claude
- Click "Authorize" to grant access
That's it! Claude will now be able to interact with your Home Assistant instance through the MCP server.
get_state: Get the current state of any Home Assistant entitycall_service: Call any Home Assistant service (turn on lights, etc.)list_entities: List all entities, optionally filtered by domain
MIT