jango-blockchained af3399515a docs: enhance documentation site with improved design and features
- Update MkDocs configuration with advanced theme settings
- Add custom color palette and navigation features
- Expand markdown extensions for better documentation rendering
- Include new documentation sections and plugins
- Add custom CSS for improved site styling
- Update site description and navigation structure
2025-02-05 02:33:05 +01:00
2024-12-11 22:30:27 -08:00

🚀 MCP Server for Home Assistant - Bringing AI-Powered Smart Homes to Life!

License
Bun
TypeScript
Test Coverage
Documentation
Docker


Overview 🌐

Welcome to the Model Context Protocol (MCP) Server for Home Assistant! This robust platform bridges Home Assistant with cutting-edge Language Learning Models (LLMs), enabling natural language interactions and real-time automation of your smart devices. Imagine entering your home, saying:

"Hey MCP, dim the lights and start my evening playlist,"

and watching your home transform instantly—that's the magic that MCP Server delivers!


Key Benefits

🎮 Device Control & Monitoring

  • Voice-Controlled Automation:
    Use simple commands like "Turn on the kitchen lights" or "Set the thermostat to 22°C" without touching a switch.
    Real-World Example:
    In the morning, say "Good morning! Open the blinds and start the coffee machine" to kickstart your day automatically.

  • Real-Time Communication:
    Experience sub-100ms latency updates via Server-Sent Events (SSE) or WebSocket connections, ensuring your dashboard is always current.
    Real-World Example:
    Monitor energy usage instantly during peak hours and adjust remotely for efficient consumption.

  • Seamless Automation:
    Create scene-based rules to synchronize multiple devices effortlessly.
    Real-World Example:
    For movie nights, have MCP dim the lights, adjust the sound system, and launch your favorite streaming app with just one command.

🤖 AI-Powered Enhancements

  • Natural Language Processing (NLP):
    Convert everyday speech into actionable commands—just say, "Prepare the house for dinner," and MCP will adjust lighting, temperature, and even play soft background music.

  • Predictive Automation & Suggestions:
    Receive proactive recommendations based on usage habits and environmental trends.
    Real-World Example:
    When home temperature fluctuates unexpectedly, MCP suggests an optimal setting and notifies you immediately.

  • Anomaly Detection:
    Continuously monitor device activity and alert you to unusual behavior, helping prevent malfunctions or potential security breaches.


Architectural Overview 🏗

Our architecture is engineered for performance, scalability, and security. The following Mermaid diagram illustrates the data flow and component interactions:

graph TD
    subgraph Client
       A[Client Application<br>(Web / Mobile / Voice)]
    end
    subgraph CDN
       B[CDN / Cache]
    end
    subgraph Server
       C[Bun Native Server]
       E[NLP Engine &<br>Language Processing Module]
    end
    subgraph Integration
       D[Home Assistant<br>(Devices, Lights, Thermostats)]
    end

    A -->|HTTP Request| B
    B -- Cache Miss --> C
    C -->|Interpret Command| E
    E -->|Determine Action| D
    D -->|Return State/Action| C
    C -->|Response| B
    B -->|Cached/Processed Response| A

Learn more about our architecture in the Architecture Documentation.


Technical Stack 🔧

Our solution is built on a modern, high-performance stack that powers every feature:

  • Bun:
    A next-generation JavaScript runtime offering rapid startup times, native TypeScript support, and high performance.
    👉 Learn about Bun

  • Bun Native Server:
    Utilizes Bun's built-in HTTP server to efficiently process API requests with sub-100ms response times.
    👉 See the Installation Guide for details.

  • Natural Language Processing (NLP) & LLM Integration:
    Processes and interprets natural language commands using state-of-the-art LLMs and custom NLP modules.
    👉 Find API usage details in the API Documentation.

  • Home Assistant Integration:
    Provides seamless connectivity with Home Assistant, ensuring flawless communication with your smart devices.
    👉 Refer to the Usage Guide for more information.

  • Redis Cache:
    Enables rapid data retrieval and session persistence essential for real-time updates.

  • TypeScript:
    Enhances type safety and developer productivity across the entire codebase.

  • JWT & Security Middleware:
    Protects your ecosystem with JWT-based authentication, request sanitization, rate-limiting, and encryption.

  • Containerization with Docker:
    Enables scalable, isolated deployments for production environments.

For further technical details, check out our Documentation Index.


Installation 🛠

Installing via Smithery

To install Home Assistant MCP Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @jango-blockchained/advanced-homeassistant-mcp --client claude

For a hassle-free, containerized deployment:

# 1. Clone the repository (using a shallow copy for efficiency)
git clone --depth 1 https://github.com/jango-blockchained/homeassistant-mcp.git

# 2. Configure your environment: copy the example file and edit it with your Home Assistant credentials
cp .env.example .env  # Modify .env with your Home Assistant host, tokens, etc.

# 3. Build and run the Docker containers
docker compose up -d --build

# 4. View real-time logs (last 50 log entries)
docker compose logs -f --tail=50

👉 Refer to our Installation Guide for full details.

💻 Bare Metal Installation

For direct deployment on your host machine:

# 1. Install Bun (if not already installed)
curl -fsSL https://bun.sh/install | bash

# 2. Install project dependencies with caching support
bun install --frozen-lockfile

# 3. Launch the server in development mode with hot-reload enabled
bun run dev --watch

Real-World Usage Examples 🔍

📱 Smart Home Dashboard Integration

Integrate MCP's real-time updates into your custom dashboard for a dynamic smart home experience:

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('Real-time update:', data);
    // Update your UI dashboard, e.g., refresh a light intensity indicator.
};

🏠 Voice-Activated Control

Utilize voice commands to trigger actions with minimal effort:

// Establish a WebSocket connection for real-time command processing
const ws = new WebSocket('wss://mcp.yourha.com/ws');

ws.onmessage = ({ data }) => {
    const update = JSON.parse(data);
    if (update.entity_id === 'light.living_room') {
        console.log('Adjusting living room lighting based on voice command...');
        // Additional logic to update your UI or trigger further actions can go here.
    }
};

// Simulate processing a voice command
function simulateVoiceCommand(command) {
    console.log("Processing voice command:", command);
    // Integrate with your actual voice-to-text system as needed.
}

simulateVoiceCommand("Turn off all the lights for bedtime");

👉 Learn more in our Usage Guide.


Update Strategy 🔄

Maintain a seamless operation with zero downtime updates:

# 1. Pull the latest Docker images
docker compose pull

# 2. Rebuild and restart containers smoothly
docker compose up -d --build

# 3. Clean up unused Docker images to free up space
docker system prune -f

For more details, review our Troubleshooting & Updates.


Security Features 🔐

We prioritize the security of your smart home with multiple layers of defense:

  • JWT Authentication 🔑: Secure, token-based API access to prevent unauthorized usage.
  • Request Sanitization 🧼: Automatic filtering and validation of API requests to combat injection attacks.
  • Rate Limiting & Fail2Ban 🚫: Monitors requests to prevent brute force and DDoS attacks.
  • End-to-End Encryption 🔒: Ensures that your commands and data remain private during transmission.

Contributing 🤝

We value community contributions! Here's how you can help improve MCP Server:

  1. Fork the Repository 🍴
    Create your own copy of the project.
  2. Create a Feature Branch 🌿
    git checkout -b feature/your-feature-name
    
  3. Install Dependencies & Run Tests 🧪
    bun install
    bun test --coverage
    
  4. Make Your Changes & Commit 📝
    Follow the Conventional Commits guidelines.
  5. Open a Pull Request 🔀
    Submit your changes for review.

Read more in our Contribution Guidelines.


Roadmap & Future Enhancements 🔮

We're continuously evolving MCP Server. Upcoming features include:

  • AI Assistant Integration (Q4 2024):
    Smarter, context-aware voice commands and personalized automation.
  • Predictive Automation (Q1 2025):
    Enhanced scheduling capabilities powered by advanced AI.
  • Enhanced Security (Q2 2024):
    Introduction of multi-factor authentication, advanced monitoring, and rigorous encryption methods.
  • Performance Optimizations (Q3 2024):
    Reducing latency further, optimizing caching, and improving load balancing.

For more details, see our Roadmap.


Community & Support 🌍

Your feedback and collaboration are vital! Join our community:

  • GitHub Issues: Report bugs or request features via our Issues Page.
  • Discord & Slack: Connect with fellow users and developers in real-time.
  • Documentation: Find comprehensive guides on the MCP Documentation Website.

License 📜

This project is licensed under the MIT License. See LICENSE for full details.


🔋 Batteries included.

MCP Client Integration

This MCP server can be integrated with various clients that support the Model Context Protocol. Below are instructions for different client integrations:

Cursor Integration

The server can be integrated with Cursor by adding the configuration to .cursor/config/config.json:

{
  "mcpServers": {
    "homeassistant-mcp": {
      "command": "bun",
      "args": ["run", "start"],
      "cwd": "${workspaceRoot}",
      "env": {
        "NODE_ENV": "development"
      }
    }
  }
}

Claude Desktop Integration

For Claude Desktop, add the following to your Claude configuration file:

{
  "mcpServers": {
    "homeassistant-mcp": {
      "command": "bun",
      "args": ["run", "start", "--port", "8080"],
      "env": {
        "NODE_ENV": "production"
      }
    }
  }
}

Cline Integration

For Cline-based clients, add the following configuration:

{
  "mcpServers": {
    "homeassistant-mcp": {
      "command": "bun",
      "args": [
        "run",
        "start",
        "--enable-cline",
        "--config",
        "${configDir}/.env"
      ],
      "env": {
        "NODE_ENV": "production",
        "CLINE_MODE": "true"
      }
    }
  }
}

Command Line Usage

Windows

A CMD script is provided in the scripts directory. To use it:

  1. Navigate to the scripts directory
  2. Run start_mcp.cmd

The script will start the MCP server with default configuration.

Description
An advanced MCP server for Home Assistant. 🔋 Batteries included.
Readme Apache-2.0 2.6 MiB
Languages
TypeScript 92.2%
Shell 3.4%
Python 2.3%
JavaScript 1.7%
Dockerfile 0.4%