Skip to content

jango-blockchained/advanced-homeassistant-mcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

🏠 Home Assistant MCP

smithery badge License npm version Docker Bun TypeScript

Bridge the gap between AI assistants and your smart home πŸš€

A powerful, secure, and extensible Model Context Protocol (MCP) server that enables AI assistants like Claude, GPT, and Cursor to seamlessly interact with Home Assistant. Control your lights, climate, automations, and more through natural language commands.


✨ Feature Overview

πŸ€– AI-Powered Smart Home Control

  • Natural Language Processing: Turn "dim the living room lights to 50%" into actual device commands
  • Multi-Assistant Support: Works with Claude, GPT-4, Cursor, and other MCP-compatible assistants
  • Intelligent Context: Remembers device states, relationships, and user preferences
  • Smithery Integration: One-click installation and deployment via Smithery.ai

πŸ›‘οΈ Enterprise-Grade Security

  • Rate Limiting: Protects against abuse with configurable request limits
  • Input Sanitization: Prevents XSS and injection attacks
  • JWT Authentication: Secure token-based access control
  • Security Headers: Comprehensive protection against web vulnerabilities

⚑ High-Performance Architecture

  • Bun Runtime: 4x faster than Node.js with built-in TypeScript support
  • Streaming Responses: Real-time updates for long-running operations
  • Modular Design: Clean separation of concerns with extensible plugin system
  • Multiple Transports: HTTP REST API, WebSocket, and Standard I/O support

🏠 Comprehensive Device Control

  • Lighting Control: Brightness, color temperature, RGB colors, and effects
  • Climate Management: Thermostats, HVAC modes, fan control, and scheduling
  • Automation & Scenes: Trigger automations, activate scenes, and manage routines
  • Device Discovery: Intelligent device listing with filtering and search
  • Notification System: Send alerts through Home Assistant's notification channels
  • Smart Maintenance: Find orphaned devices, analyze usage patterns, energy monitoring
  • Intelligent Scenarios: Auto-detect and manage nobody-home, window/heating conflicts, energy waste

πŸš€ Quick Start

Get up and running in minutes:

# Clone and install
git clone https://github.com/jango-blockchained/advanced-homeassistant-mcp.git
cd advanced-homeassistant-mcp
bun install

# Configure environment
cp .env.example .env
# Edit .env with your Home Assistant details

# Start the server
bun run start:stdio

That's it! Your AI assistant can now control your smart home. πŸ€–βœ¨


πŸ“¦ Installation

Prerequisites

Option 1: Smithery.ai (Recommended for Quick Setup)

Smithery is a registry for MCP servers that makes installation incredibly easy:

# Install to Claude Desktop
npx @smithery/cli install @jango-blockchained/homeassistant-mcp --client claude

# Install to Cursor
npx @smithery/cli install @jango-blockchained/homeassistant-mcp --client cursor

# Install to VS Code
npx @smithery/cli install @jango-blockchained/homeassistant-mcp --client vscode

You'll be prompted to configure:

  • Home Assistant URL
  • Long-lived access token
  • Optional settings (port, debug mode)

See SMITHERY_DEPLOYMENT.md for detailed deployment guide.

Option 2: NPX (Quick Start)

npx @jango-blockchained/homeassistant-mcp@latest

Option 3: Bunx with GitHub (No NPM Login Required)

If you can't login to npm, use Bunx to run directly from GitHub:

# Install Bun first if you don't have it
curl -fsSL https://bun.sh/install | bash

# Then run from GitHub
bunx github:jango-blockchained/advanced-homeassistant-mcp

Alternatively, install directly from Git:

bun add git+https://github.com/jango-blockchained/advanced-homeassistant-mcp.git
homeassistant-mcp

Option 4: Docker (Containerized)

Run the MCP server in a Docker container:

# Pull the latest image
docker pull ghcr.io/jango-blockchained/advanced-homeassistant-mcp:latest

# Run with environment variables
docker run -d \
  -e HOME_ASSISTANT_URL=http://your-ha-instance:8123 \
  -e HOME_ASSISTANT_TOKEN=your_long_lived_access_token \
  -p 4000:4000 \
  --name homeassistant-mcp \
  ghcr.io/jango-blockchained/advanced-homeassistant-mcp:latest

# Or use docker-compose (see docker/ directory for examples)

Available Docker tags:

  • latest - Latest stable release
  • 1.0.x - Specific version
  • dev - Latest development build from main branch

Option 5: Local Installation

# Install globally
bun add -g @jango-blockchained/homeassistant-mcp

# Or locally
bun add homeassistant-mcp

# Run
homeassistant-mcp

Option 6: From Source (Most Flexible)

git clone https://github.com/jango-blockchained/advanced-homeassistant-mcp.git
cd advanced-homeassistant-mcp
bun install
bun run build
bun run start:stdio

πŸ› οΈ Usage

AI Assistant Integration

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "homeassistant-mcp": {
      "command": "bunx",
      "args": ["github:jango-blockchained/advanced-homeassistant-mcp"]
    }
  }
}

Or use npx:

{
  "mcpServers": {
    "homeassistant-mcp": {
      "command": "npx",
      "args": ["@jango-blockchained/homeassistant-mcp@latest"]
    }
  }
}

VS Code + Claude Extension

The .vscode/settings.json is pre-configured for immediate use.

Cursor

Add to .cursor/config/config.json:

{
  "mcpServers": {
    "homeassistant-mcp": {
      "command": "bunx",
      "args": ["github:jango-blockchained/advanced-homeassistant-mcp"]
    }
  }
}

Or with npx:

{
  "mcpServers": {
    "homeassistant-mcp": {
      "command": "npx",
      "args": ["@jango-blockchained/homeassistant-mcp@latest"]
    }
  }
}

API Usage

Start the HTTP server:

bun run start -- --http

Available endpoints:

  • POST /api/tools/call - Execute tools
  • GET /api/resources/list - List resources
  • GET /api/health - Health check
  • WebSocket /api/ws - Real-time updates

Configuration

Create a .env file:

# Home Assistant
HASS_HOST=http://your-ha-instance:8123
HASS_TOKEN=your_long_lived_access_token

# Server
PORT=3000
NODE_ENV=production

# Security
JWT_SECRET=your-secret-key
RATE_LIMIT_WINDOW=15
RATE_LIMIT_MAX=50

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   AI Assistant  │◄──►│   MCP Server    │◄──►│ Home Assistant  β”‚
β”‚  (Claude/GPT)   β”‚    β”‚                 β”‚    β”‚                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚ β”‚  Transport  β”‚ β”‚
                       β”‚ β”‚   Layer     β”‚ β”‚
                       β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
                       β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
                       β”‚ β”‚ Middleware  β”‚ β”‚
                       β”‚ β”‚   Layer     β”‚ β”‚
                       β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
                       β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
                       β”‚ β”‚   Tools     β”‚ β”‚
                       β”‚ β”‚   Layer     β”‚ β”‚
                       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Core Components

  • Transport Layer: HTTP, WebSocket, Stdio
  • Middleware Layer: Security, validation, logging
  • Tools Layer: Device control, automation, notifications
  • Resource Manager: State management and caching

Built-in Tools (34 Total)

🎨 Aurora Sound-to-Light (10 tools) ✨ NEW!

  • 🎡 Audio Analysis: Extract BPM, beats, mood, frequency data
  • πŸ” Device Scanning: Find Aurora-compatible lights
  • πŸ“Š Device Profiling: Measure latency & capabilities for sync
  • 🎬 Timeline Rendering: Generate pre-rendered light shows
  • ▢️ Playback Control: Play/pause/stop/seek timelines
  • πŸ“‹ Timeline Management: List, export, import timelines
  • πŸ“ˆ Status Monitoring: System status and statistics
  • 🎯 Smart Synchronization: Device-specific timing compensation
  • 🌈 Capability-Aware: RGB, tunable white, brightness-only support
  • 🎢 Beat Detection: Lights pulse in sync with music

🎨 Aurora is a complete sound-to-light synchronization system that transforms your Home Assistant lights into a professional light show synchronized to music!

🏠 Device Control (13 tools)

  • πŸ”¦ Lights Control: Brightness, color temp, RGB, effects
  • 🌑️ Climate Control: HVAC modes, temperature, fan control
  • πŸ“Ί Media Players: Playback, volume, sources, sound modes
  • πŸͺŸ Covers: Blinds, curtains, garage doors, position control
  • πŸ”’ Locks: Lock/unlock with code support
  • πŸ’¨ Fans: Speed, oscillation, direction, presets
  • πŸ€– Vacuums: Cleaning, docking, spot clean, fan speed
  • 🚨 Alarm Control: Arm/disarm modes, security management
  • πŸŽ›οΈ Generic Control: Universal device control interface

βš™οΈ Automation & Scenes (3 tools)

  • 🎬 Scenes: Activate predefined scenes
  • βš™οΈ Automations: List, toggle, trigger automations
  • πŸ”§ Automation Config: Create/update/delete complex automations

πŸ”§ System Management (6 tools)

  • πŸ“‹ Device Discovery: List and filter devices by domain/area
  • πŸ“± Notifications: Multi-channel alert system
  • πŸ“Š History: Query historical state data
  • πŸ“¦ Add-on Management: Install, configure, control add-ons
  • πŸ“¦ Package Management: HACS integration and custom components
  • πŸ”” Event Subscription: Real-time SSE event streaming

🧠 Smart Features (2 tools)

  • πŸ”§ Maintenance Tool: Spook-like maintenance features

    • Find orphaned/unavailable devices
    • Analyze light usage patterns by room
    • Monitor energy consumption
    • Device health checks with battery warnings
    • Entity cleanup recommendations
  • 🧠 Smart Scenarios: Intelligent automation detection

    • Nobody home: Auto turn off lights, reduce climate
    • Window/heating conflicts: Auto disable heating
    • Energy saving: Detect daytime lights, standby power
    • Generate automation configs

πŸ“– See Complete Tools Reference for detailed documentation

MCP Features

  • πŸ“ Prompts: Pre-defined prompt templates for common home automation tasks

    • Morning/evening routines
    • Energy saving suggestions
    • Security setup
    • Climate optimization
    • Media control
    • Troubleshooting helpers
  • πŸ“Š Resources: Direct access to Home Assistant states and configurations

    • Device lists by type (lights, climate, sensors, etc.)
    • Area/room configurations
    • Automation and scene listings
    • Dashboard summaries with current home status
  • πŸ› οΈ 24 Comprehensive Tools: Full device control and smart automation

    • See Complete Tools Reference for all available tools
    • Device control, automation, system management, and smart features
    • Natural language to Home Assistant API translation

🎯 Example Commands

Once integrated, your AI assistant can understand commands like:

Device Control:

"Turn off all lights in the bedroom"
"Set the thermostat to 72Β°F"
"Play music on the living room speaker"
"Open the garage door"
"Lock all doors"
"Start the robot vacuum"
"Set the bedroom fan to 50%"

Automation & Scenes:

"Activate the movie scene"
"Trigger the morning routine automation"
"Show me all my automations"

Information & Monitoring:

"What's the current temperature in the living room?"
"Show me all unavailable devices"
"Which lights are currently on?"

Notifications:

"Notify everyone that dinner is ready"
"Send an alert to my phone"

Smart Maintenance:

"Check my Home Assistant health"
"Find orphaned or unavailable devices"
"Analyze my light usage patterns"
"Show me my energy consumption"
"Which devices have low battery?"

Aurora Sound-to-Light: ✨ NEW!

"Analyze this music file and sync my lights"
"Scan for lights that can do Aurora effects"
"Profile my living room lights for synchronization"
"Create a light show for this song"
"Play the timeline I just created"
"Pause the light show"
"Show me Aurora status"

Smart Scenarios:

"I'm leaving home, activate away mode"
"Are any windows open with heating on?"
"Check for energy-wasting issues"
"Turn off everything, I'm going on vacation"
"What can I do to save energy?"

You can also use prompts for guided assistance:

"Help me set up a morning routine"
"Show me energy saving tips"
"How do I control my media players?"


🀝 Contributing

We welcome contributions! Here's how to get involved:

  1. 🍴 Fork the repository
  2. 🌿 Create a feature branch
  3. πŸ’» Make your changes
  4. πŸ§ͺ Add tests if applicable
  5. πŸ“ Update documentation
  6. πŸ”„ Submit a pull request

Development Setup

bun install
bun run build
bun test

Code Style

  • TypeScript with strict mode
  • ESLint for code quality
  • Prettier for formatting
  • Husky for pre-commit hooks

Releases

This project uses automated releases to GitHub, npm, and Docker. See AUTOMATED_RELEASES.md for details.

Quick Release:

  1. Go to Actions β†’ Version Bump and Release
  2. Click Run workflow
  3. Select version bump type (patch/minor/major)
  4. The system automatically:
    • πŸ“¦ Creates a GitHub release
    • πŸ“€ Publishes to npm
    • 🐳 Builds and pushes Docker image

πŸ“„ License

MIT License - see LICENSE for details.


πŸ™ Acknowledgments

Built with ❀️ using:


Transform your smart home into an AI-powered experience

About

An advanced MCP server for Home Assistant. πŸ”‹ Batteries included.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors 6