Atlas / MCP servers / tevonsb / Home Assistant

Home AssistantSAFE

mcp/tevonsb/home-assistant-1

A MCP server for Home Assistant

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
14 12r · 2w · 0d
Transport
—
License
Apache-2.0
Stars
576
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

The server uses the MCP protocol to share access to a local Home Assistant instance with an LLM application.

A powerful bridge between your Home Assistant instance and Language Learning Models (LLMs), enabling natural language control and monitoring of your smart home devices through the Model Context Protocol (MCP). This server provides a comprehensive API for managing your entire Home Assistant ecosystem, from device control to system administration.

Features

  • 🎮 Device Control: Control any Home Assistant device through natural language
  • 🔄 Real-time Updates: Get instant updates through Server-Sent Events (SSE)
  • 🤖 Automation Management: Create, update, and manage automations
  • 📊 State Monitoring: Track and query device states
  • 🔐 Secure: Token-based authentication and rate limiting
  • 📱 Mobile Ready: Works with any HTTP-capable client

Real-time Updates with SSE

The server includes a powerful Server-Sent Events (SSE) system that provides real-time updates from your Home Assistant instance. This allows you to:

  • 🔄 Get instant state changes for any device
  • 📡 Monitor automation triggers and executions
  • 🎯 Subscribe to specific domains or entities
  • 📊 Track service calls and script executions

Quick SSE Example

const eventSource = new EventSource(
'http://localhost:3000/subscribe_events?token=YOUR_TOKEN&domain=light'
);

eventSource.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log('Update received:', data);
Read from source at commit 944eed6f9e83OBSERVED · 2026-09-29
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add homeassistant-mcp --env CLAUDE_API_KEY=${CLAUDE_API_KEY} --env HASS_TOKEN=${HASS_TOKEN} --env TEST_HASS_TOKEN=${TEST_HASS_TOKEN} -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "homeassistant-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "CLAUDE_API_KEY": "${CLAUDE_API_KEY}",
        "HASS_TOKEN": "${HASS_TOKEN}",
        "TEST_HASS_TOKEN": "${TEST_HASS_TOKEN}"
      }
    }
  }
}
03

Exposed tools (14)

12 read · 2 write · 0 destructive.

ToolRiskDescription
HACSreadHome Assistant Community Store
addonwriteManage Home Assistant add-ons
automationreadManage Home Assistant automations
automation_configreadAdvanced automation configuration and management
controlreadControl Home Assistant devices and services
get_historyreadGet state history for Home Assistant entities
get_sse_statsreadGet SSE connection statistics
list_devicesreadList all available Home Assistant devices
notifywriteSend notifications through Home Assistant
packagereadManage HACS packages and custom components
scenereadManage and activate Home Assistant scenes
simple_toolreadA simple tool
subscribe_eventsreadSubscribe to Home Assistant events via Server-Sent Events (SSE)
test_toolreadA test tool
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (1 observation(s))
Network
declared (3 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (7)

MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
src/index.ts:26
const HASS_HOST = process.env.HASS_HOST || 'http://192.168.178.63:8123';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
__tests__/ai/nlp/intent-classifier.test.ts:1
import { IntentClassifier } from '../../../src/ai/nlp/intent-classifier.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
__tests__/context/context.test.ts:3
import { DomainSchema } from '../../src/schemas.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
__tests__/context/index.test.ts:2
import { ContextManager, ResourceType, RelationType, ResourceState } from '../../src/context/index.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
__tests__/hass/api.test.ts:1
import { HassInstanceImpl } from '../../src/hass/index.js';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
__tests__/hass/api.test.ts:2
import * as HomeAssistant from '../../src/types/hass.js';
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@digital-alchemy/core, @digital-alchemy/hass, ajv, dotenv, express, express-rate-limit, helmet, litemcp
Why it matters. 24 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass.

Audited 2026-09-29 · audit v0.4.1 · source sha 944eed6f9e83full audit observations/trust-audit/mcp-server/tevonsb__home-assistant-1.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-09-29944eed6f9e83SAFEB89first audit
06

Questions

What is the Home Assistant MCP server?

A MCP server for Home Assistant

What tools does Home Assistant expose?

14 in total: 12 read-only, 2 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is Home Assistant safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does Home Assistant need?

It reads CLAUDE_API_KEY, HASS_TOKEN and TEST_HASS_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How current is this page?

The grade is for one exact copy of the source (944eed6f9e83), read on 2026-09-29. The repository is watched and re-audited when it changes.

Advertisement