[APP][Pro] MCP AI Bridge - Control Homey with any AI assistant (Claude, ChatGPT, Gemini, Copilot or Cursor) via the Model Context Protocol

:robot: MCP AI Bridge

Control your Homey Pro with any AI assistant. Claude, ChatGPT, Gemini, Copilot or Cursor. Just ask in plain language.

:speech_balloon: Talk to your Homey like you talk to a person. “Turn off the lights.” “Is the door still open?” “Set the heating to 21.” “Build me a flow for the porch light at sunset.” MCP AI Bridge lets your favorite AI assistant control your Homey Pro directly, in any language you speak. It runs locally on your Homey, works with every major assistant through the open MCP standard, and you stay in full control. Over a hundred actions, your own custom AI commands in the flow editor, no extra cloud. :high_voltage:


:link: Links


:sparkles: What it is

Your Homey already runs your home. Now you can just talk to it.

MCP AI Bridge turns your Homey Pro into something any modern AI assistant can talk to directly. No middleman cloud, no separate integration for each assistant. The app runs a local Model Context Protocol (MCP) server on your Homey, and any MCP-compatible AI connects straight to it over your own network.

Once it is connected you stop digging through menus and just say what you want. The assistant reads the state of your home and changes it for you, in plain language, in any language you speak to it.

MCP is the open standard that Anthropic, OpenAI and Google are building their assistants around. Because the bridge speaks that standard, it is not tied to one vendor. The same Homey endpoint works in Claude, ChatGPT, Gemini, Cursor, Windsurf and more. :globe_showing_europe_africa:

:rocket: Why this MCP app

There is more than one way to reach Homey from the outside. Here is why this one is the one to install.

  • :unlocked: Works with every assistant, not one. It speaks the open Model Context Protocol, so the same endpoint works in Claude, ChatGPT, Gemini, Cursor, Windsurf and any other MCP client. No lock-in.
  • :toolbox: Covers the whole Homey, not just switches. Over a hundred actions across devices, zones, flows, advanced flows, logic, energy, insights, alarms, notifications, apps and system.
  • :puzzle_piece: You build your own AI commands. Expose custom tools to the assistant in the flow editor and send real answers back using live device values. The AI asks, your flow replies.
  • :house: Local first. The AI connects to your Homey’s own address on your network. Nothing is routed through an extra cloud, and your home data is not handed to a third party.
  • :locked: Real security, not an afterthought. Scoped keys per assistant, an access switch to pause or limit everything in one click, a tool blocklist, rate limits, and a security log with source IPs.
  • :eyes: You can see what it does. Every action is auditable, with a diagnostics tab, broken flow detection and a live connections view. Argument values are never logged.

Open standard, full coverage, your own commands, local, and locked down by choice.

:speech_balloon: Just ask

:light_bulb: Lights and climate

  • “Turn off all the lights downstairs.”
  • “Dim the living room to 30 percent.”
  • “Set the bedroom to 19 degrees tonight.”

:magnifying_glass_tilted_left: Check on things

  • “Is the garage door still open?”
  • “Which devices have a low battery?”
  • “Anything offline right now?”

:high_voltage: Energy and history

  • “What used the most power this week?”
  • “Average power use over the last 7 days?”

:hammer_and_wrench: Automations

  • “Make a flow that turns on the porch light at sunset.”
  • “Set the heating to 21 tomorrow at 8 in the morning.”
  • “Watch the front door and tell me when it opens.”

:broom: Housekeeping

  • “Did anything fail in the last hour?”
  • “Restart the Hue app.”
  • “Are any of my flows broken?”

You talk normally. The assistant works out which devices and capabilities you mean and does it.

:toolbox: What it can reach

The bridge exposes your whole Homey through one clean interface:

  • :electric_plug: Devices and every capability they have
  • :house: Zones and rooms
  • :shuffle_tracks_button: Basic flows and Advanced Flows, including creating and editing them
  • :1234: Logic variables
  • :alarm_clock: Alarms and the alarm clock
  • :high_voltage: Energy, live and historical
  • :chart_increasing: Insights, with one-number summaries
  • :bell: Notifications
  • :package: Installed apps, including enable, disable, restart and settings
  • :busts_in_silhouette: Users and presence
  • :desktop_computer: System info, memory, storage and reboot

Over a hundred actions in total, so the assistant can both understand the state of your home and act on it.

:gear: How it works

Under the hood it is a standard MCP server speaking JSON-RPC over local HTTP, using the StreamableHTTP transport from the MCP spec. Because it follows the open standard, the same endpoint works across clients.

Prefer to script against it? There is a plain REST shortcut at POST /tools/{name} and a full OpenAPI 3.1 spec at GET /openapi.json, so it drops right into tools like n8n, Make, or your own code.

Everything stays on your network. The AI connects to your Homey’s local address. No extra cloud in the path. :house:

:electric_plug: How to connect your AI assistant

Every assistant connects to the same address:

http://YOUR-HOMEY-IP:52199/mcp

You can find the exact URL in the app: open MCP AI Bridge → Settings → Connection. The connect wizard fills in your Homey’s IP for you and gives you a ready-to-paste snippet for the main clients. The examples below use <homey-ip> as the Homey IP, replace it with yours.

:house: Local vs cloud. Desktop and CLI assistants (Claude Desktop, Claude Code, Cursor, Windsurf, VS Code Copilot, Gemini CLI) run on your own machine, so they reach your Homey directly on the local network. Cloud assistants (ChatGPT connectors, Claude on the web or phone) run on the provider’s servers and cannot see a private IP like 192.168.x.x. To use those you need to make the server reachable from the internet (a reverse proxy or tunnel) and you should set an API key first. For most people a local client is the easiest start.

:key: Using an API key. If you set an API key in Settings → Security, add an Authorization: Bearer YOUR_KEY header to the config (shown per client below). Without a key, the server is open on your local network only.


Claude Desktop

  1. Open Claude Desktop and go to Settings → Developer → Edit Config.
  2. Add the server to claude_desktop_config.json:
{
  "mcpServers": {
    "homey": {
      "type": "http",
      "url": "http://<homey-ip>:52199/mcp"
    }
  }
}
  1. Save and restart Claude Desktop. You will see the Homey tools appear.

With an API key:

{
  "mcpServers": {
    "homey": {
      "type": "http",
      "url": "http://<homey-ip>:52199/mcp",
      "headers": { "Authorization": "Bearer YOUR_KEY" }
    }
  }
}

Claude Code (CLI)

One command:

claude mcp add --transport http homey http://<homey-ip>:52199/mcp

With an API key:

claude mcp add --transport http homey http://<homey-ip>:52199/mcp \
  --header "Authorization: Bearer YOUR_KEY"

Then restart Claude Code. Check it with claude mcp list.


Cursor

  1. Open Settings → MCP → Add new server, or edit ~/.cursor/mcp.json (global) or .cursor/mcp.json (per project).
  2. Add:
{
  "mcpServers": {
    "homey": {
      "url": "http://<homey-ip>:52199/mcp"
    }
  }
}
  1. Restart Cursor. Enable the server in the MCP settings if it is not on by default.

Windsurf

  1. Open Settings → Cascade → MCP servers, or edit ~/.codeium/windsurf/mcp_config.json.
  2. Add:
{
  "mcpServers": {
    "homey": {
      "serverUrl": "http://<homey-ip>:52199/mcp"
    }
  }
}
  1. Restart Windsurf and refresh the MCP server list.

GitHub Copilot (VS Code)

  1. Create .vscode/mcp.json in your workspace (or add it to your user settings).
  2. Add the server. Note that VS Code uses servers, not mcpServers:
{
  "servers": {
    "homey": {
      "type": "http",
      "url": "http://<homey-ip>:52199/mcp"
    }
  }
}
  1. Open the Copilot Chat panel, switch to Agent mode, and the Homey tools become available. Click the tools icon to enable them.

Gemini (CLI)

  1. Edit ~/.gemini/settings.json.
  2. Add:
{
  "mcpServers": {
    "homey": {
      "httpUrl": "http://<homey-ip>:52199/mcp"
    }
  }
}
  1. Restart the Gemini CLI. Run /mcp to confirm the server and its tools are listed.

ChatGPT (custom connector)

ChatGPT runs in the cloud, so this needs a server URL that OpenAI can reach. Expose the bridge through a reverse proxy or tunnel first, and set an API key in the app.

  1. In ChatGPT, go to Settings → Connectors (Plus, Pro, Team or Enterprise). For tool use you may need to turn on Developer mode under Advanced.
  2. Add a custom connector and paste your public MCP URL, for example https://your-domain.example/mcp.
  3. Add the API key as the connector’s authentication header.
  4. Save, then enable the connector in a chat.

Claude on the web or phone (custom connector)

Same idea as ChatGPT: the web and mobile apps are cloud based, so they need an internet-reachable URL.

  1. Go to Settings → Connectors → Add custom connector.
  2. Paste your public MCP URL and the API key.
  3. Save and enable it in a conversation.

Fallback: mcp-remote

A few clients only support command-based (stdio) MCP servers. For those, bridge to the HTTP server with mcp-remote (needs Node.js installed):

{
  "mcpServers": {
    "homey": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "http://<homey-ip>:52199/mcp", "--allow-http"]
    }
  }
}

With an API key, append the header:

"args": ["-y", "mcp-remote", "http://<homey-ip>:52199/mcp", "--allow-http", "--header", "Authorization: Bearer YOUR_KEY"]

Quick check

Once connected, try a simple read first:

“List my zones.”

If that works, you are good to go. Ask it to turn something off, check a sensor, or build a flow. If a client cannot connect, confirm you are on the same network as your Homey, that the IP and port match the Connection tab, and that any API key matches.

:puzzle_piece: Build your own AI commands with flow cards

This is where it gets fun. The app ships flow cards so your AI and your flows work together both ways, not just the AI reaching into Homey.

:studio_microphone: Give the AI its own command

  • Trigger: “An AI agent calls a custom tool.” The assistant calls a tool you define, your flow runs whatever logic you want, and you reply with “Return a response to the AI agent” using live device values and flow tokens. The AI asks, your flow answers.

:eyes: See and react to what the AI does

  • Trigger: “The AI controls a device.” Fires whenever the assistant changes a device, with the name, capability and value as tokens. Perfect for a quick “AI just set the thermostat to 19” notification.

:police_car_light: Catch problems early

  • Trigger: “A flow becomes broken.” Know the moment an automation breaks, for example after you removed a device.
  • Trigger: “An AI tool call fails.” Know when the assistant hits an error.
  • Trigger: “A security event occurs.” Get the source IP and reason when someone is denied or tries to connect without a key.
  • Condition: “There is a broken flow.” Use it in a daily check flow.

:brain: Give the AI memory from your flows

  • Action: “Remember a value for the AI.” A flow writes context the assistant can recall later.
  • Condition: “A remembered value is.” A flow reads that memory back.

You are not limited to the built in tools. You design your own AI commands in the flow editor.

:bullseye: Real world examples

:bar_chart: A custom AI tool that answers with live data

  1. Trigger: An AI agent calls a custom tool.
  2. Action: Return a response to the AI agent, using a flow token like the current power usage.

Now you can ask “how much power am I using right now” and the assistant gets the real number back from your flow.

:person_running: Let the AI know nobody is home

  1. When everyone leaves, your presence flow runs “Remember a value for the AI”, key nobody_home, value true.
  2. Later you ask the assistant to do something, and it can check that context first.

:wrench: Get told when a flow breaks

  1. Trigger: A flow becomes broken.
  2. Action: send yourself a notification with the flow name.

:locked: You stay in control

The bridge is local first and locked down by choice:

  • :green_circle: Access mode switch. Flip the whole bridge to full, write only, read only, or off in one click. Pause the AI or keep it read only while you are away.
  • :key: Scoped API keys. Give each assistant its own key with read, write or full rights.
  • :prohibited: Tool blocklist. Disable specific risky tools entirely, like deleting devices or rebooting Homey, even for a full key.
  • :shield: IP whitelist and rate limits, with a separate tighter limit for destructive actions.
  • :memo: Security log. Every denied or unauthorized attempt is recorded with its source IP, right in the settings.
  • :satellite_antenna: Active connections view. See who is connected, from which IP, and for how long.

By default, with nothing configured, it stays open on your trusted local network, the same as before. The controls are there when you want them.

:bar_chart: See what is happening

The settings page is organized into tabs: Status, Connection, Security, Memory, Schedules, Events, Diagnostics and About. Browse what the AI remembers, what it has scheduled, which devices it watches, recent activity, broken flows, and the security log. Everything the assistant does is auditable, and argument values are never logged, so nothing sensitive leaks into the history.

:white_check_mark: Works with

Claude (Desktop, Code, mobile), ChatGPT, Google Gemini, GitHub Copilot, Cursor, Windsurf, and any other MCP client. The text to speech and LED ring tools work on Homey Pro (Early 2019) and older models.

:inbox_tray: Get it

  1. :mobile_phone_with_arrow: Install from the App Store: MCP AI Bridge | Homey
  2. :test_tube: Or try the latest test build: MCP AI Bridge | Homey
  3. :gear: Open the app settings and run the connect wizard.
  4. :speech_balloon: Paste the config into your assistant and start talking to your home.

Questions, ideas and bug reports are very welcome in this topic. If the app makes your home a little easier to live with, a reply or a thumbs up helps other people find it. :raising_hands:


Changelog

2.0.0

  • AI memory: the assistant remembers facts across chats, like zone IDs and your preferences.
  • Devices and insight: device health scan, find devices by capability, batch control, and insight summaries as a single number.
  • Scheduling: have the AI run actions later, once or repeating, all visible and cancelable.
  • Events and webhooks: watch a device for changes and forward them to approved webhook URLs.
  • Automation templates with a dry run preview, plus a flow validator.
  • New flow cards: AI controls a device, a flow becomes broken, an AI tool fails, a security event occurs, remember a value, check a remembered value, and is any flow broken.
  • Security: access mode switch (full/write/read/off), scoped API keys, tool blocklist, destructive rate limit, and a security log with source IPs.
  • Rebuilt settings page with tabs for Status, Connection, Security, Memory, Schedules, Events, Diagnostics and About, fully in English and Dutch.
  • Diagnostics: activity log, broken flow detection, and active connections view.

1.4.x

  • Added Gemini to the supported assistants. Settings page translated to NL and EN. Tool notes for speech and LED ring on supported models. Security and bug fixes, simplified store description.

1.3.0

  • Renamed to MCP AI Bridge. Added flow cards to build custom AI tools with a real response callback, optional API key auth, REST shortcuts, and an OpenAPI spec.

1.0.0

  • First release: control Homey Pro from any AI agent over the Model Context Protocol.
1 Like