HomeMCPBridge
About
Native macOS HomeKit integration for AI assistants via Model Context Protocol
Details
- Author
- rodaddy
- Categories
- Other
Jump to
Setup
Install HomeMCPBridge in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/rodaddy/HomeMCPBridge
Follow the installation instructions in the repository README, then restart your MCP client.
Native macOS HomeKit integration for AI assistants via the Model Context Protocol (MCP).
Control your entire smart home with natural language- no Homebridge, no Home Assistant, no cloud services. Just direct HomeKit access.
HomeMCPBridge is a macOS app that lets AI assistants (Claude, and others that support MCP) control your HomeKit devices directly. Ask your AI to "turn off the living room lights" or "set the bedroom to 50% brightness" and it just works.
- Native HomeKit- Direct access to Apple's HomeKit framework, no bridges or hacks
- MCP Protocol- Works with Claude Code, Claude Desktop, and any MCP-compatible AI
- All Device Types- Lights, switches, outlets, fans, locks, garage doors, thermostats
- Full Control- On/off, brightness, color (hue/saturation), lock/unlock, open/close
- Menu Bar App- Runs quietly in the background with a status window
- Plugin System- Extend with Govee, Scrypted NVR, and more
- Device Linking- Link HomeKit devices with plugin counterparts to avoid duplicates
- MCPPost- Broadcast real-time sensor events to your AI system
- Camera Snapshots- Capture images from HomeKit and Scrypted cameras
- Motion Events- Monitor motion sensors, doorbells, and contact sensors
- macOS 14.0 (Sonoma) or later
- HomeKit-enabled devices configured in the Apple Home app
- An MCP-compatible AI assistant (Claude Code, Claude Desktop, etc.)
Download the latest.dmgfrom theReleasespage.
git clone https://github.com/rodaddy/HomeMCPBridge.git cd HomeMCPBridge
- Go to theHomeMCPBridgetarget >Signing & Capabilities
- Select yourDevelopment Teamfrom the dropdown
- Optionally change theBundle Identifierto your own (e.g.,com.yourname.HomeMCPBridge)
- These values are intentionally left blank in the repo so contributors can set their own
Build and run (Cmd+R) -- select "My Mac (Mac Catalyst)"
Add this to your MCP configuration file:
For Claude Code(.mcp.jsonin your project or~/.claude/mcp.json):
{ "mcpServers": { "homekit": { "command": "/Applications/HomeMCPBridge.app/Contents/MacOS/HomeMCPBridge", "args": [] } } }
For Claude Desktop(~/Library/Application Support/Claude/claude_desktop_config.json):
{ "mcpServers": { "homekit": { "command": "/Applications/HomeMCPBridge.app/Contents/MacOS/HomeMCPBridge", "args": [] } } }
Once configured, you can ask your AI things like:
- "List all my HomeKit devices"
- "Turn on the kitchen lights"
- "Set the living room lamp to 50% brightness"
- "What's the temperature in the garage?"
- "Turn off all the backyard lights"
- "Lock the front door"
- "Is the garage door open?"
- "Capture a snapshot from the front door camera"
- "Is there motion in the backyard?"
- Lights- On/off, brightness, color (hue/saturation)
- Switches- On/off
- Outlets- On/off
- Fans- On/off
- Locks- Lock/unlock
- Garage Doors- Open/close
- Thermostats- Read temperature (control coming soon)
- Sensors- Read values
- Cameras- Capture snapshots
- Motion Sensors- Detect motion/occupancy
- Contact Sensors- Door/window open/close
- Apple HomeKit device count
- Plugin status and device counts
- Device link count
- App settings (menu bar, dock icon)
- Tap (i) to link/unlink devices
- Shows device source (HomeKit, Govee, etc.)
- Indicates linked devices
- Govee - Smart lights and appliances
- Scrypted NVR - Network video recorder cameras
Broadcast real-time sensor events to your AI:
- Configure webhook endpoint URL
- Enable/disable event broadcasting
- View recent events and their status
- Test endpoint connectivity
- MCP configuration snippets
- Plugin setup instructions (Govee, Scrypted)
- MCPPost configuration
- Device linking guide
- All MCP tool calls
- Plugin activity
- Event notifications
- Clear and scroll controls
When you have the same device in both HomeKit and a plugin (like Govee), you can link them so they're treated as one device:
- Go to theDevicestab
- Tap the(i)button on any device
- Select"Link Device..."
- Choose the corresponding device from another source
Linked devices use the most capable source automatically (plugins usually have more features than HomeKit).
MCPPost broadcasts real-time sensor events to a custom HTTP endpoint, enabling your AI system (like Jarvis) to receive push notifications.
- Open HomeMCPBridge
- Go to theMCPPosttab
- Enter your endpoint URL (e.g.,http://localhost:8000/api/events)
- Enable broadcasting with the toggle
- Click "Test Endpoint" to verify
- Motion sensors- Motion detected/cleared
- Occupancy sensors- Room occupancy changes
- Doorbells- Ring events
- Contact sensors- Door/window open/close
{ "event_id": "uuid", "event_type": "motion|occupancy|doorbell|contact", "source": "HomeKit", "timestamp": "2024-01-18T21:00:00Z", "sensor": { "name": "Front Door Motion", "id": "sensor-uuid", "room": "Hallway", "home": "Home" }, "data": { "detected": true, "state": "open", "isOpen": true } }
- Open the Govee Home app on your phone
- Go toSettings > About Us > Apply for API Key
- Wait for approval (usually within a few days)
- Copy your API key from the email
- In HomeMCPBridge, go toPlugins > Goveeand enter your API key
- Enable the Govee plugin
- Install and configure Scrypted on your network
- Note your Scrypted server URL (e.g.,https://mac-mini.local:10443)
- Install the@scrypted/webhookplugin in Scrypted
- For each camera, create a Camera webhook and note the token
- In HomeMCPBridge, go toPlugins > Scryptedand enter credentials
- Usescrypted_set_webhook_tokentool to configure each camera's token
Want to add support for another smart home platform? Here's how to create a custom plugin.
protocol DevicePlugin: AnyObject { var identifier: String { get } var displayName: String { get } var isEnabled: Bool { get set } var isConfigured: Bool { get } var configurationFields: [PluginConfigField] { get } func initialize() async throws func shutdown() async func listDevices() async throws -> [UnifiedDevice] func getDeviceState(deviceId: String) async throws -> [String: Any] func controlDevice(deviceId: String, action: String, value: Any?) async throws -> ControlResult func configure(with credentials: [String: String]) async throws func clearCredentials() }
func application(_ application: UIApplication, didFinishLaunchingWithOptions...) { PluginManager.shared.register(MyPlatformPlugin()) }
- Runs entirely on your Mac
- Communicates directly with your HomeKit devices via Apple's framework
- Does not send any data to external servers (except MCPPost, which you configure)
- Does not require an internet connection for local device control
- Make sure you have devices set up in the Apple Home app
- Grant HomeKit permission when the app first launches
- Try restarting the app
- Check that the device is powered on and connected to your network
- Verify it shows as reachable in the Apple Home app
- Ensure the app is running (check the menu bar)
- Verify the path in your MCP config matches where you installed the app
- Restart your AI assistant after changing the config
- Ensure the @scrypted/webhook plugin is installed
- Create a Camera webhook for each camera in Scrypted
- Usescrypted_set_webhook_tokento configure the tokens
Contributions welcome! Feel free to open issues or submit PRs.
- Built with Apple's HomeKit framework
- Uses theModel Context Protocolby Anthropic
An MCP server to control iOS simulators and real devices, enabling AI assistant integration on macOS.
A free, private, and secure remote MCP server for Home Assistant.
MCP server for Google Cast — discover devices, play media, control volume, launch apps, and manage queues over stdio
A safe-by-default MCP server that exposes your Control4 home automation (lights, scenes, locks, thermostats, and media) as structured tools over HTTP and Claude Desktop STDIO for reliable AI-powered control on your local network.
Control and query the status of Ecovacs cleaning robots using the MCP protocol.
Control AVM FRITZ!Box routers - manage devices, WiFi, network settings, parental controls, and schedule time-delayed actions
Allows an LLM agent to control your Gaggimate espresso machine
An MCP server for the Gaggiuino open-source espresso machine, providing real-time local network access to machine status and shot data.
A Model Context Protocol (MCP) server that provides AI assistants with access to Home Assistant, enabling smart home control and automation management.
Read-only MCP (Model Context Protocol) server for Home Assistant. Gives AI assistants (Claude Desktop, LibreChat, Cline) full observability into your smart home — entity states, automations, scripts, devices, logs, diagnostics — without any write access. Also generates static AI context snapshots for RAG systems, ChatGPT Projects, Qwen, and other tools that accept custom knowledge files. Built in Python, runs anywhere — locally, in Docker, or as an MCP integration.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



