Skip to main content
Glama

Smart Home MCP Server

by vmm

Smart Home MCP Server

A Model Context Protocol (MCP) server that enables LLMs to control smart home devices through natural language commands.

Features

  • Device Control: Control TP-Link Kasa smart plugs and bulbs
  • Natural Language Interface: Human-friendly device names and commands
  • Scene Management: Predefined lighting scenes (bright, dim, warm, cool, party, relax, bedtime)
  • Real-time Status: Get current device states and capabilities
  • Room-based Control: Organize devices by room for targeted control

Prerequisites

  1. REST API Server: The smart home REST API must be running on http://localhost:3001
  2. Device Discovery: Devices must be registered in the device registry
  3. Network Access: Ensure the MCP server can reach your smart home network

Installation

cd /Users/veli/Documents/Cline/MCP/smart-home-mcp npm install npm run build

Usage

Claude Desktop Integration

Add this to your Claude Desktop configuration:

{ "mcpServers": { "smart-home": { "command": "/Users/veli/Documents/Cline/MCP/smart-home-mcp/build/index.js" } } }

Available Tools

1. list_devices

List all smart home devices with their current status.

Example: "Show me all my smart home devices"

2. control_light

Control smart lights with various actions:

  • Power: Turn lights on/off
  • Brightness: Adjust brightness (1-100%)
  • Color: Set RGB color values
  • Color Temperature: Set warm/cool white (2500-9000K)

Examples:

  • "Turn on the elizabeth night lamp"
  • "Set the holiday lights to 50% brightness"
  • "Make the bedroom light red"
  • "Set the living room light to warm white"
3. control_plug

Control smart plugs (on/off only).

Example: "Turn off the holiday lights plug"

4. set_scene

Apply predefined lighting scenes:

  • bright: 100% brightness, 4000K
  • dim: 20% brightness, 2700K
  • warm: 70% brightness, 2500K
  • cool: 80% brightness, 6500K
  • party: 100% brightness, magenta color
  • relax: 40% brightness, 2200K
  • bedtime: 10% brightness, 2000K

Examples:

  • "Set a relaxing scene"
  • "Apply bedtime lighting"
  • "Make it bright in the living room"
5. get_device_status

Get detailed status of a specific device.

Example: "What's the status of the elizabeth night lamp?"

Device Names

The server uses friendly device names from the device registry:

  • holiday-lights - HS103 Smart Plug
  • elizabeth-night-lamp - KL125 Smart Bulb
  • guest-bedroom-lamp - KL125 Smart Bulb
  • And more...

API Integration

The MCP server communicates with the REST API at http://localhost:3001/api:

  • GET /devices - List all devices
  • POST /devices/{name}/control - Control device
  • POST /devices/{name}/power - Set power state

Development

Building

npm run build

Testing

Make sure the REST API server is running:

# From the main project directory cd /Users/veli/code/automation/home-automation npx tsx packages/smart-home-api/src/app.ts

Debugging

The MCP server logs to stderr, so you can see debug output when running with Claude Desktop.

Example Conversations

User: "Turn on all the lights and set them to a warm, cozy scene"

Assistant: I'll turn on your lights and set them to a warm, cozy ambiance.

Uses set_scene with "warm" to apply 70% brightness and 2500K color temperature to all lights

User: "What devices do I have available?"

Assistant: Here are your smart home devices:

Uses list_devices to show all registered devices with their current status

User: "Turn off the holiday lights"

Assistant: I'll turn off the holiday lights for you.

Uses control_plug to turn off the holiday-lights device

Troubleshooting

  1. MCP Server Not Found: Ensure the path in Claude Desktop config is correct
  2. API Connection Failed: Verify the REST API is running on port 3001
  3. Device Not Found: Check device names in the registry match the friendly names
  4. Network Issues: Ensure firewall allows communication between networks

Next Steps

  • Add Tuya device support
  • Implement advanced scene management
  • Add device grouping and automation rules
  • Integrate with N8N for complex workflows
-
security - not tested
F
license - not found
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

Enables control of TP-Link Kasa smart home devices through natural language commands. Supports device control, lighting scenes, room-based organization, and real-time status monitoring for smart plugs and bulbs.

  1. Features
    1. Prerequisites
      1. Installation
        1. Usage
          1. Claude Desktop Integration
          2. Available Tools
        2. Device Names
          1. API Integration
            1. Development
              1. Building
              2. Testing
              3. Debugging
            2. Example Conversations
              1. Troubleshooting
                1. Next Steps

                  MCP directory API

                  We provide all the information about MCP servers via our MCP API.

                  curl -X GET 'https://glama.ai/api/mcp/v1/servers/vmm/homer-mcp'

                  If you have feedback or need assistance with the MCP directory API, please join our Discord server