A modern, beautiful home automation dashboard built with React, Tailwind CSS, and MCP (Model Context Protocol) integration.
MyHomeServer is a comprehensive home automation control center that provides a unified interface for managing all your smart home devices. Built with modern web technologies and leveraging the power of MCP servers for seamless integration with various home automation systems.
- πΉ Camera Management: 2 Tapo ONVIF cameras (Kitchen: 192.168.0.164, Living: 192.168.0.206) + Ring doorbell
- β‘ Energy Monitoring: 3 Tapo P115 plugs (Aircon, Kitchen rice cooker 1200W, Server) + power tracking
- π¨ Lighting Control: Tapo L900 RGB lightstrip (192.168.0.174) with color/brightness control
- π€οΈ Weather Integration: Netatmo weather station with Vienna conditions (8.5Β°C, light snow)
- π Security Systems: Ring front door with motion detection and camera events
- π Smart Home Hub: 8 total devices integrated across your network
- π¨ Lighting Control: Smart lighting effects and control (when lighting devices added)
- π€ AI Integration: Local LLM for automation (when AI services configured)
- π§ MCP Client Bridge: Connect to any MCP server via stdio JSON-RPC
- π Auto-Discovery: Automatically finds and registers available MCP servers
- π Universal Integration: HTTP API bridge to MCP servers
- Beautiful Dark UI: Modern, professional dark theme designed for 24/7 monitoring
- Real-time Updates: Live data from all connected devices
- Responsive Design: Works perfectly on desktop, tablet, and mobile
- MCP Client Bridge: Full stdio MCP client with HTTP bridge for arbitrary MCP servers
- Auto-Discovery: Automatically discovers and registers 50+ MCP servers in workspace
- Type-Safe: Built with TypeScript for reliability and maintainability
- Arbitrary MCP Support: Connect to any MCP server via stdio JSON-RPC protocol
- React 18 with TypeScript
- Tailwind CSS for styling (dark theme only)
- React Query for data fetching and caching
- Lucide React for consistent iconography
- Vite for fast development and building
- FastAPI with complete MCP client implementation
- MCP Client Bridge: HTTP β stdio JSON-RPC protocol bridge
- Auto-Discovery: Scans workspace for 50+ MCP servers automatically
- Process Management: Start/stop/monitor MCP server processes
- Connection Pooling: Efficient MCP server connection management
- Error Handling: Comprehensive error recovery and reconnection logic
- MCP Protocol: Full stdio JSON-RPC 2.0 implementation with protocol version
2025-11-25 - Async I/O: Proper asyncio subprocess handling with StreamReader/StreamWriter
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β MyHomeServer ββββββ MCP Client ββββββ MCP Servers β
β (React UI) β β Bridge (HTTP β β β (stdio) β
βββββββββββββββββββ β stdio JSON-RPC) β β β
βββββββββββββββββββ β β’ Tapo Camera β
βββββββββββββββββββ β β’ Netatmo β
β FastAPI β βββββββββββββββββββ β β’ Ring β
β (MCP Client) ββββββ Auto-Discovery βββββ β’ Home Assistantβ
β β β Registry β β β’ Local LLM β
βββββββββββββββββββ β (50+ servers) β β β’ ... 45+ more β
βββββββββββββββββββ βββββββββββββββββββ
myhomeserver/
βββ frontend/ # React application
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β βββ hooks/ # Custom React hooks
β β βββ services/ # API service layer
β β βββ types/ # TypeScript definitions
β β βββ utils/ # Utility functions
β βββ public/
β βββ package.json
β βββ tailwind.config.js
β βββ vite.config.ts
βββ backend/ # FastAPI MCP client
β βββ app/
β β βββ main.py # FastAPI app + MCP initialization
β β βββ config.py # App configuration
β β βββ api/ # HTTP API endpoints
β β β βββ __init__.py
β β β βββ mcp.py # MCP bridge endpoints
β β βββ mcp/ # MCP client implementation
β β β βββ __init__.py
β β β βββ client.py # MCP stdio client
β β β βββ registry.py # Server registry & discovery
β β βββ utils/ # Error handling, etc.
β βββ requirements.txt
β βββ start.py # Startup script
βββ docs/ # Documentation
β βββ README.md # This file
β βββ PRD.md # Product Requirements
β βββ CHANGELOG.md # Version history
β βββ api/ # API documentation
βββ shared/ # Shared types/config
MyHomeServer integrates with multiple MCP servers for comprehensive smart home control. See MCP Integrations Documentation for detailed setup and usage guides.
| Server | Purpose | Repository | Port |
|---|---|---|---|
| Tapo Camera MCP | Cameras & Energy | tapo-camera-mcp |
7778-7780 |
| Netatmo Weather MCP | Weather & Sensors | netatmo-weather-mcp |
7781 |
| Ring MCP | Security Systems | ring-mcp |
7782 |
| Home Assistant MCP | Smart Home Hub (Nest) | home-assistant-mcp |
7783 (HA not installed) |
| Local LLM MCP | AI Intelligence | local-llm-mcp |
7784 |
MyHomeServer provides a unified API that aggregates data from all MCP servers:
# Dashboard & Overview
GET /api/dashboard # System overview
# Device Management
GET /api/cameras # Camera management
GET /api/energy # Energy monitoring
GET /api/weather # Weather data
GET /api/security # Security systems
GET /api/devices # All smart devices
# AI & Automation
POST /api/voice/command # Voice commands
GET /api/ai/insights # AI insights
GET /api/ai/suggestions # Automation suggestions
POST /api/ai/automation # Create automationsMyHomeServer includes a complete MCP client implementation that bridges HTTP requests to MCP server stdio communication. This allows interaction with any MCP server in the ecosystem.
π Technical Implementation Details - Complete technical documentation of the MCP client architecture, protocol implementation, and integration patterns.
GET /api/v1/mcp/servers # List all discovered MCP servers
POST /api/v1/mcp/servers/{name}/initialize # Start/initialize MCP server
POST /api/v1/mcp/servers/{name}/shutdown # Stop MCP server
GET /api/v1/mcp/health # MCP system health checkGET /api/v1/mcp/servers/{name}/tools # List server tools
POST /api/v1/mcp/tools/call # Call a tool on any server
{
"server": "tapo-camera-mcp",
"tool": "list_cameras",
"arguments": {}
}GET /api/v1/mcp/servers/{name}/resources # List server resources
POST /api/v1/mcp/resources/read # Read resource content
{
"server": "plex-mcp",
"uri": "plex://libraries"
}GET /api/v1/mcp/servers/{name}/prompts # List server prompts
POST /api/v1/mcp/prompts/get # Get prompt content
{
"server": "ai-assistant-mcp",
"prompt": "code_review",
"arguments": {"language": "python"}
}MyHomeServer automatically discovers 50+ MCP servers in the workspace, including:
| Category | Examples | Count |
|---|---|---|
| Camera | tapo-camera-mcp, ring-mcp | 8 servers |
| Energy | Smart plugs, power monitoring | 5 servers |
| Weather | netatmo-weather-mcp, sensors | 3 servers |
| Security | Ring doorbell, alarms | 4 servers |
| Smart Home | home-assistant-mcp (Nest) | 3 servers |
| Lighting | Philips Hue, smart bulbs | 4 servers |
| Media | Plex, Jellyfin, media servers | 6 servers |
| AI | Local LLMs, AI assistants | 7 servers |
| Network | Tailscale, VPN management | 3 servers |
| Development | Build tools, deployment | 12 servers |
| Virtualization | VM management, containers | 4 servers |
- React + Vite project setup
- Tailwind CSS configuration (dark theme)
- Basic component library
- API client layer setup
- Layout system (sidebar, header)
- Camera grid component
- Live video streaming
- PTZ controls
- Recording management
- Tapo MCP integration
- Smart device grid
- Energy charts and analytics
- Device controls
- Cost tracking
- Weather display components
- Netatmo sensor integration
- Local weather API
- Forecast display
- Ring doorbell interface
- Nest/Home Assistant integration
- Security event timeline
- Smart home automation
- Local LLM integration
- Smart automation suggestions
- Voice commands
- Predictive insights
- Node.js 18+
- Python 3.9+
- MCP Servers (strongly recommended for full functionality):
tapo-camera-mcp(port 7778) - Cameras, energy monitoring, smart plugsring-mcp(port 7782) - Doorbell cameras and security systemshome-assistant-mcp(port 7783) - Smart home hubs and Nest devicesnetatmo-mcp(port 7781) - Weather sensors and indoor air qualitylocal-llm-mcp(port 7784) - AI assistance and automation
MyHomeServer includes comprehensive testing for physical smart home devices:
# Run complete device integration tests
cd tests
python test_devices.py
# Tests the following devices:
# - 2 Tapo cameras (live streaming, PTZ control)
# - 2 USB cameras (OpenCV integration)
# - 3 Tapo smart plugs (power monitoring, remote control)
# - 1 Tapo lightstrip (RGB lighting control)
# - 1 Philips Hue bridge (lighting automation)
# - 1 Netatmo weather station (environmental monitoring)Test Results Summary:
- Device connectivity verification
- Functional testing (camera streaming, plug control, etc.)
- MCP server integration validation
- Cross-device integration testing
MyHomeServer integrates with existing MCP servers in your d:\Dev\repos workspace:
# Quick start all services
.\start-all.ps1
# Or start MCP servers individually:
cd ../tapo-camera-mcp
python -m tapo_camera_mcp.server # Starts on ports 7778, 7779, 7780
cd ../ring-mcp
python -m ring_mcp.server # Starts on port 7782
cd ../home-assistant-mcp
python -m home_assistant_mcp.server # Starts on port 7783
# Then start MyHomeServer:
cd myhomeserver/frontend
npm run dev:full# Start everything with one command
.\start-all.ps1
# Choose option 3 to start both MyHomeServer services
# Or start individual services:
.\start-all.ps1
# Choose option 1 for backend only
# Choose option 2 for frontend only# Backend setup
cd backend
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
python start.py
# Frontend setup (new terminal)
cd frontend
npm install
npm run dev# First start MCP servers (from d:\Dev\repos)
cd ../tapo-camera-mcp
python -m tapo_camera_mcp.server
# Then start MyHomeServer as aboveCreate a .env file in the backend directory:
# MyHomeServer Configuration
DEBUG=True
LOG_LEVEL=INFO
# MCP Server URLs (optional - defaults provided)
TAPO_CAMERA_URL=http://localhost:7778
NETATMO_URL=http://localhost:7781
RING_URL=http://localhost:7782
HOME_ASSISTANT_URL=http://localhost:7783
LOCAL_LLM_URL=http://localhost:7784- Frontend Dashboard: http://localhost:5173 (React + Tailwind CSS)
- Backend API: http://localhost:10500
- API Documentation: http://localhost:10500/docs
- Health Check: http://localhost:10500/health
- Start MCP servers (if available) for full functionality
- Run backend with
python start.py - Run frontend with
npm run dev - Access dashboard at http://localhost:5173
- Check API health at http://localhost:10500/health
- Root Cause: Missing PostCSS configuration for Tailwind CSS processing
- Symptoms: Page loads with white background, no styling, plain HTML appearance
- Solution: Ensure
frontend/postcss.config.jsexists with proper configuration - Prevention: Always verify PostCSS config when using Tailwind with Vite
- Root Cause: Previous development sessions leaving processes running
- Symptoms: "Port already in use" errors, services not starting
- Solution: Use
.\start-clean.ps1which automatically terminates conflicting processes - Prevention: Always use clean startup script for development
- Symptoms: Frontend shows "Backend: Disconnected" or API errors
- Verification: Test with
Invoke-WebRequest http://localhost:10500/health - Solution: Ensure backend is running on port 10500, check CORS settings
- Symptoms: MCP status shows "0/X online" or connection failures
- Verification: Check if MCP servers are running in workspace
- Solution: Start individual MCP servers manually if auto-discovery fails
- Performance: <2s page load times
- Reliability: 99.9% uptime with MCP fallbacks
- Scalability: Support for 100+ devices
- Responsiveness: Mobile-first design
- Accessibility: WCAG 2.1 AA compliance
- MCP Integration: 57 servers discovered, 3+ healthy connections
- Protocol Compliance: MCP
2025-11-25specification fully implemented
- β FastAPI Backend: Fully operational on port 10500
- β MCP Discovery: 57 servers auto-discovered from workspace
- β MCP Client: Complete stdio JSON-RPC implementation
- β Ring MCP: Full handshake complete, 18 tools available
- β API Integration: Dashboard and device endpoints operational
- β Error Handling: Graceful degradation when servers unavailable
- π Tapo Camera MCP: Initialize timeout (server-specific issue)
- π Home Assistant MCP: Initialize timeout (server-specific issue)
- Backend: Online and responsive
- MCP Servers: 3/57 healthy (Ring MCP fully operational)
- API Endpoints: All endpoints responding correctly
- Frontend: React UI fully functional with live data
This project is in active development. See docs/PRD.md for detailed requirements and roadmap.
See CHANGELOG.md for a complete list of changes and version history.
- Help System - Comprehensive user and technical documentation
- Troubleshooting - Common issues and solutions
- Technical Documentation - Architecture and API details
This project is part of the Home Automation MCP ecosystem. See individual MCP server repositories for licensing information.
Built with β€οΈ for the smart home revolution