A production-ready Model Context Protocol (MCP) server for Home Assistant integration with AI assistants like Claude and LM Studio.
mcp-ha-connect is an MCP project maintained in the coffeerunhobby/mcp-ha-connect repository. The maintainer describes its purpose as “A production-ready Model Context Protocol (MCP) server for Home Assistant integration with AI assistants like Claude and LM Studio”. Read the project documentation for the complete scope.
The documented npm package is @coffeerunhobby/mcp-ha-connect. The configuration below comes from the maintainer’s example; adapt its paths and account values to your environment.
The example declares HA_URL, HA_TOKEN, AI_PROVIDER, AI_URL, AI_MODEL. Secret-looking values have been replaced with placeholders. Required and optional labels are shown only when the documentation states them.
Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.
Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.
| Tool | What it does |
|---|---|
| getStates | Get all entity states (paginated, 50/page default). Use includeAttributes=true for full data |
| getState | Get the state of a specific entity by entity_id |
| getEntitiesByDomain | Get entities for a domain (paginated, 50/page default). Use includeAttributes=true for full data |
| searchEntities | Search entities by name/entity_id (paginated, 50/page default). Use includeAttributes=true for full data |
| getAllSensors | Get all sensors (paginated, 50/page default). Use includeAttributes=true for full data |
| listEntities | List entities with filtering (domain, state, search, limit). Use includeAttributes=true for full data |
| getDomainSummary | Get summary statistics for a domain |
| getHistory | Get historical data for an entity |
| listPersons | List all household members with location state (home/away) |
| callService | Call any Home Assistant service |
| entityAction | Simple turn_on/turn_off/toggle actions |
| controlLight | Control lights with brightness, color, temperature |
| controlClimate | Control thermostats with temperature, HVAC mode |
| controlMediaPlayer | Control media players with playback, volume |
| controlCover | Control covers/blinds with position, tilt |
| controlFan | Control fans with speed, oscillation, direction |
| activateScene | Activate a Home Assistant scene |
| runScript | Run a Home Assistant script |
| sendNotification | Send notifications with full mobile app support (actions, priority, images) |
| listNotificationTargets | Discover available mobile app notification targets |
| askOwner | Send the question (plain text, max 256 characters; 1-3 buttons, default Approve / Deny; open up to 7 days) and return a requestId at once |
| getOwnerAnswer | Wait up to 50 s per call: answered (button index and label, time, HA user), pending, timeout, cancelled or unknown |
| cancelOwnerQuestion | Withdraw an open question; the notification changes to "Cancelled" |
| listAutomations | List all automations with status |
| triggerAutomation | Manually trigger an automation |
| enableAutomation | Enable a disabled automation |
| disableAutomation | Disable an automation |
| toggleAutomation | Toggle automation state |
| reloadAutomations | Reload automations from config |
| createAutomation | Create a new automation |
| deleteAutomation | Delete an automation |
| getAutomationTrace | Recent runs of an automation, newest first: trigger, result, errors (automations with an id only) |
| getVersion | Get Home Assistant version and config info |
| restartHomeAssistant | Restart the Home Assistant server |
| getSystemLog | Get system log entries from logbook |
| checkUpdates | Check for available updates |
| listCalendars | List all calendar entities |
| getCalendarEvents | Get events from one or all calendars |
| omada_listSites | List all sites configured on the Omada controller |
| omada_listDevices | List all network devices (APs, switches, gateways) in a site |
| omada_getDevice | Get detailed information about a specific network device |
| omada_searchDevices | Search for devices globally across all sites |
| omada_getSwitchStackDetail | Get detailed information about a switch stack |
| omada_listDevicesStats | Get statistics for global adopted devices with filtering |
| omada_listClients | List all connected clients (devices/users) in a site |
| omada_getClient | Get detailed information about a specific connected client |
| omada_listMostActiveClients | Get the most active clients sorted by total traffic |
| omada_listClientsActivity | Get client activity statistics over time |
| omada_listClientsPastConnections | Get historical client connection data |
| omada_getRateLimitProfiles | Get available rate limit profiles for a site |
| omada_setClientRateLimit | Set custom bandwidth limits for a client (download/upload in Kbps) |
| omada_setClientRateLimitProfile | Apply a rate limit profile to a client |
| omada_disableClientRateLimit | Remove bandwidth limits from a client |
| omada_blockClient | Block a client from the network |
| omada_unblockClient | Unblock a previously blocked client (explains when Omada's API can no longer reach an offline client) |
| omada_listBlockedClients | List blocked clients, offline ones included |
| omada_deleteClient | Delete a client's record (name, history, block) to clear a block unblock can't reach (needs CONFIGURE) |
| omada_cyclePoePort | Power-cycle PoE switch ports (remote-reboots APs/cameras) |
| omada_setSsidEnabled | Turn an SSID (e.g. guest WiFi) on or off by name |
| omada_diagnoseClient | Explain why a device (by MAC) can't get on: block state, MAC groups and the SSID allow/deny lists using them, site MAC filter, IP-MAC binding, DHCP… |
| omada_listMacGroups | List MAC groups with their entries and which SSIDs use them as allow or deny lists (graph mode: omada_read /profiles/mac-groups) |
| omada_setMacGroupEntry | Add a MAC to a MAC group, or rename its entry (needs CONFIGURE) |
| omada_removeMacGroupEntry | Remove a MAC from a MAC group (needs CONFIGURE) |
| omada_getThreatList | Get security threat management list |
| omada_getInternetInfo | Get internet connection configuration for a site |
| omada_getPortForwardingStatus | Get port forwarding rules (User or UPnP) |
| omada_getLanNetworkList | Get LAN network configuration list |
| omada_getLanProfileList | Get LAN profile configuration list |
| omada_getWlanGroupList | Get WLAN group configuration list |
| omada_getSsidList | Get SSID list for a WLAN group |
| omada_getSsidDetail | Get detailed SSID configuration |
| omada_getFirewallSetting | Get firewall configuration for a site |
| omada_getSiteNtpStatus | Get the site's NTP server configuration and status |
| omada_setSiteNtpServers | Replace the site's NTP server list (needs CONFIGURE; dryRun previews the change) |
| analyzeSensors | Analyze sensor data using AI (Ollama) to detect issues and provide recommendations |
{
"mcpServers": {
"homeassistant": {
"command": "npx",
"args": [
"-y",
"@coffeerunhobby/mcp-ha-connect"
],
"env": {
"HA_URL": "http://homeassistant.10.0.0.19.nip.io:8123",
"HA_TOKEN": "YOUR_HA_TOKEN",
"AI_PROVIDER": "ollama",
"AI_URL": "http://ollama.10.0.0.17.nip.io:11434",
"AI_MODEL": "llama2"
}
}
}
}From the project documentation. Replace placeholders and example paths before connecting.
| Variable | Description | Required |
|---|---|---|
| HA_URL | Declared in the maintainer’s client configuration. | Check documentation |
| HA_TOKEN | Declared in the maintainer’s client configuration. | Check documentation |
| AI_PROVIDER | Declared in the maintainer’s client configuration. | Check documentation |
| AI_URL | Declared in the maintainer’s client configuration. | Check documentation |
| AI_MODEL | Declared in the maintainer’s client configuration. | Check documentation |
Enables natural language interaction with Home Assistant entities using the Model Context Protocol.
Integrates with Home Assistant to provide smart home control capabilities via Model Context Protocol (MCP).
A Model Context Protocol (MCP) server that enables AI agents to interact with the 1NCE IoT connectivity management platform through natural language.
Agriculture Robotics tools for AI agents. Capabilities: robot safety check, spray plan calcu...
Amazon Alexa for Claude — Echo devices, announcements, routines, smart home, lists
Connect Claude, Cursor, Codex, and other AI tools to your robotics mission data.