A side-by-side look at the Home Assistant MCP and MCP Pihole MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Home Assistant MCP for home automation work as a local process; choose MCP Pihole for home automation as a local process. You can also run both side by side in one mcpServers block.
ha_get_config, ha_list_entities, ha_get_state.PIHOLE_URL, PIHOLE_PASSWORD.pihole_get_stats, pihole_get_top_blocked, pihole_get_top_permitted.Rows where the two servers differ are marked.
| Spec | H Home Assistant MCP | |
|---|---|---|
| Category | Home Automation | Home Automation |
| Quality signal | 56/100 · Good | 55/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | None listed | PIHOLE_URLPIHOLE_PASSWORD |
| Verified owner | Community listing | Community listing |
| GitHub stars | 0 | 8 |
| Directory activity | 0 views 0 installs 0 upvotes | 0 views 0 installs 0 upvotes |
| Tools | 80 | 16 |
| Full listing | View Home Assistant MCP | View MCP Pihole |
ha_get_configCore config: version, location, time zone, loaded components.ha_list_entitiesList entities (filter by domain, free-text search, area).ha_get_stateFull state + attributes for one or more entities.ha_get_historyHistorical state changes over a time window. Given only a start time, it runs up to now (Home Assistant alone stops 24 hours after the start); `ha_get_logbook` does the same.ha_list_servicesAvailable services (and their fields for a given domain).ha_list_areasAreas (rooms/zones).ha_list_devicesDevice registry (filter by area / search).ha_get_entity_registryRegistry metadata: platform, area, device, disabled/hidden.ha_render_templateRender a Jinja2 template against live state.ha_list_helpersList stored helpers (input_boolean, input_number, counter, timer, …).ha_list_automationsAutomations with entity_id, unique id, state, last-triggered.ha_get_automationFull automation config (triggers/conditions/actions).pihole_get_statsGet comprehensive Pi-hole statisticspihole_get_top_blockedGet top blocked domainspihole_get_top_permittedGet top permitted domainspihole_get_top_clientsGet top clients by query countpihole_get_query_logGet recent DNS queriespihole_get_blocking_statusCheck if blocking is enabledpihole_enable_blockingEnable DNS blockingpihole_disable_blockingDisable blocking (optionally with timer)pihole_get_whitelistList all whitelisted domainspihole_get_blacklistList all blacklisted domainspihole_add_to_whitelistAdd domain to whitelistpihole_add_to_blacklistAdd domain to blacklistPaste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"home-assistant-mcp-2": {
"command": "npx",
"args": [
"-y",
"@vortitron/home-assistant-mcp"
]
}
}
}
{
"mcpServers": {
"mcp-pihole": {
"command": "npx",
"args": [
"-y",
"mcp-pihole-server"
],
"env": {
"PIHOLE_URL": "YOUR_PIHOLE_URL_HERE",
"PIHOLE_PASSWORD": "YOUR_PIHOLE_PASSWORD_HERE"
}
}
}
}