Hubitat MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Hubitat MCP Serverturn on the living room lights"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Hubitat MCP Server
A production-ready Model Context Protocol (MCP) server for Hubitat home automation hubs. Control and manage your Hubitat devices directly from Claude Desktop or any MCP-compatible AI assistant.
Features
✅ List all devices — Get a complete inventory of your Hubitat devices with IDs, names, types, and current state
✅ Get device details — Retrieve full device information including capabilities, attributes, and available commands
✅ Send commands — Turn devices on/off, toggle, set brightness/levels, and execute custom commands
✅ Query device state — Check attribute values (temperature, switch state, battery level, etc.)
✅ Search devices — Find devices by name, type, or room
✅ List available commands — See what commands each device supports
Related MCP server: Home Assistant MCP Server
Requirements
Hubitat Elevation Hub with Maker API installed
Python 3.10+
MCP Python SDK v2.x
Internet connectivity (for Claude Desktop integration)
Installation
1. Clone or download the server
git clone https://github.com/yourusername/hubitat-mcp-server.git
cd hubitat-mcp-server2. Install dependencies
pip install mcp requests python-dotenv3. Configure your Hubitat credentials
Get your Maker API details from your Hubitat hub:
Log into your Hubitat hub at
http://[hub-ip]:8080Go to Apps → Maker API
Note your App ID and Access Token
Create a .env file:
HUBITAT_TOKEN=your_access_token_here
HUBITAT_BASE_URL=http://[HUB_IP]/apps/api/[APP_ID] # Replace with your hub IP and App IDOr set environment variables directly:
export HUBITAT_TOKEN="your_token"
export HUBITAT_BASE_URL="http://[HUB_IP]/apps/api/[APP_ID]"4. Test the server locally
python3 hubitat-mcp-server.pyThe server will listen on stdio and wait for MCP protocol messages.
Integration with Claude Desktop
Add the server to your Claude Desktop configuration:
File: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"hubitat": {
"command": "python3",
"args": ["/path/to/hubitat-mcp-server.py"],
"env": {
"HUBITAT_TOKEN": "your_token_here",
"HUBITAT_BASE_URL": "http://[HUB_IP]/apps/api/[APP_ID]"
}
}
}
}Restart Claude Desktop. The Hubitat tools will now be available.
Usage Examples
List all devices
Claude: "List all my Hubitat devices"The server returns all 64 devices (or however many you have) with:
Device ID
Name (label)
Type
Room assignment
Current state/attributes
Available capabilities
Control a device
Claude: "Turn on the kitchen light"The server finds the "Kitchen Light" device and sends the on command.
Check device state
Claude: "What's the temperature in the living room?"The server queries the temperature sensor and returns the current value.
Search for devices
Claude: "Show me all motion sensors"The server searches for devices matching "motion" and returns all matches.
Set brightness
Claude: "Set the family room light to 50% brightness"The server sends setLevel command with value 50 to the appropriate dimmer.
Available Tools
The server exposes these MCP tools to Claude:
list_devices
Returns all devices with basic info (id, name, type, room, capabilities, status).
get_device
Get detailed information about a specific device.
Parameters:
device_id(string): The device ID
send_command
Send a command to a device.
Parameters:
device_id(string): The device IDcommand(string): Command name (on, off, toggle, setLevel, etc.)value(string, optional): Command parameter (e.g., brightness level)
list_device_commands
List all available commands for a device.
Parameters:
device_id(string): The device ID
get_device_attribute
Get the current value of a specific device attribute.
Parameters:
device_id(string): The device IDattribute(string): Attribute name (switch, level, temperature, etc.)
search_devices
Search for devices by name, type, or room.
Parameters:
query(string): Search term
Architecture
The server uses:
MCP Python SDK 2.x — Model Context Protocol implementation
Hubitat Maker API — Direct access to devices and commands
Async/await — Non-blocking I/O for responsiveness
JSON serialization — Standard protocol messages
Limitations
Read-only for some attributes — Some device states (like battery level) are read-only
Command validation — The server doesn't validate commands before sending; invalid commands will error at the Hubitat end
Real-time updates — Device state is fetched on-demand; there's no push notification system for state changes
Local network only — Requires direct access to your Hubitat hub (same LAN or VPN)
For cloud access, you can:
Use Hubitat's cloud API instead of local
Set up a reverse proxy (Caddy, nginx, etc.) with HTTPS
Use a VPN to access your home network remotely
Troubleshooting
"Device not found" error
Check the device ID is correct
Run
list_devicesto see all available IDs
"Failed to fetch devices from Hubitat"
Verify your
HUBITAT_TOKENandHUBITAT_BASE_URLCheck that the Maker API app is enabled on your hub
Ensure your device running the server can reach the hub IP
Commands don't work
Check the command name is correct for that device type
Run
list_device_commands device_idto see available commandsSome devices may require parameters (e.g.,
setLevelneeds a brightness value)
Server won't start
Ensure Python 3.10+ is installed:
python3 --versionInstall dependencies:
pip install mcp requestsCheck for syntax errors:
python3 -m py_compile hubitat-mcp-server.py
Development
Running in debug mode
HUBITAT_TOKEN=token HUBITAT_BASE_URL=url python3 -u hubitat-mcp-server.pyTesting individual tools
You can test the server's Python functions directly:
from hubitat_mcp_server import list_devices, get_device, send_command
# List devices
devices = list_devices()
# Get a specific device
device = get_device("140")
# Send a command
result = send_command("140", "on")Contributing
Contributions are welcome! Potential improvements:
Support for device/driver configuration
Real-time WebSocket updates
Batch command execution
Device grouping/scenes
Temperature/humidity/motion sensor subscriptions
Custom driver support
License
MIT License — Feel free to use, modify, and distribute.
Support
For issues, feature requests, or questions:
Check the Hubitat Maker API documentation
Verify your token and hub URL
Run
list_devicesto confirm connectivityOpen an issue with device ID and command you're trying to run
Changelog
v1.0.0 (2026-09-05)
Initial release
List, get, and control devices
Search and attribute queries
Full MCP protocol support
Enjoy automating your Hubitat home with Claude!
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent
Automate 1,000+ services from any MCP-compatible AI agent: build Applets, run actions and queries.
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
Manage Superlist tasks and lists in plain language from any MCP-compatible AI agent.
Related MCP Servers
- FlicenseNot gradedqualityFmaintenanceEnables AI assistants to control and query smart home devices through Homey Pro via an HTTP-based MCP server.2-
- AlicenseNot gradedqualityDmaintenanceEnables Claude Desktop to read and control Home Assistant devices via natural language, with configurable safety restrictions on sensitive actions.2MIT
- AlicenseNot gradedqualityDmaintenanceEnables natural language control of ESP8266 and Raspberry Pi IoT devices via Claude Desktop using the MCP protocol.MIT
- AlicenseAqualityDmaintenanceEnables monitoring and control of SwitchBot devices (temperature sensors, plugs, bots) via Claude Desktop or Home Assistant.1022MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/jgitta/hubitat-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server