# \[APP\]\[Pro\] MCP AI Bridge: talk to your Homey with Claude, ChatGPT, Gemini, Copilot, Cursor, Mistral, Ollama, LM Studio, n8n, Home Assistant or any AI, also from Telegram and WhatsApp

**URL:** <https://community.homey.app/t/app-pro-mcp-ai-bridge-talk-to-your-homey-with-claude-chatgpt-gemini-copilot-cursor-mistral-ollama-lm-studio-n8n-home-assistant-or-any-ai-also-from-telegram-and-whatsapp/155930>\
**Category:** Apps\
**Tags:** app, flow, homey-pro, ai, mcp\
**Created:** [June 8, 2026, 4:20pm UTC](https://community.homey.app/t/app-pro-mcp-ai-bridge-talk-to-your-homey-with-claude-chatgpt-gemini-copilot-cursor-mistral-ollama-lm-studio-n8n-home-assistant-or-any-ai-also-from-telegram-and-whatsapp/155930 "2026-06-08T16:20:44Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![weide43](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/weide43/32/79186_2.png) [@weide43](https://community.homey.app/u/weide43)\
**Post date:** [June 8, 2026, 4:20pm UTC](https://community.homey.app/t/app-pro-mcp-ai-bridge-talk-to-your-homey-with-claude-chatgpt-gemini-copilot-cursor-mistral-ollama-lm-studio-n8n-home-assistant-or-any-ai-also-from-telegram-and-whatsapp/155930/1 "2026-06-08T16:20:44Z")

</div>

# 🤖 MCP AI Bridge

### Talk to your Homey Pro with Claude, ChatGPT, Gemini, Copilot or any other AI assistant. In plain language, in your own language.

> 💬 “Turn off the lights downstairs.” “Is the back door still open?” “What used the most power this week?” “Build me a flow that turns on the porch light at sunset.” MCP AI Bridge runs on your Homey itself and lets any AI assistant read and operate your whole home: 190 actions over devices, flows, energy, dashboards and more. Talk to it from your computer, from Claude or ChatGPT on your phone, from Telegram or WhatsApp, or let your flows ask a model a question. You decide per assistant what it may do. No extra cloud, no subscription. ⚡

> 🧪 **Version 5.0 is in test right now.** This post describes 5.0. Until Athom approves it, the App Store installs 4.20.3; take the test version below to get everything here.

**What you need:** a Homey Pro from 2023 or newer (or Homey Pro mini, or Self-Hosted Server), an AI assistant you already use, and five minutes. The app itself is free.

* * *

### 🔗 Links

- 📲 **App Store:** [MCP AI Bridge | Homey](https://homey.app/a/community.mcp-ai-bridge)
- 🧪 **Test version (5.0):** [https://homey.app/a/community.mcp-ai-bridge/test/](https://homey.app/a/community.mcp-ai-bridge/test/)
- 📜 **Every version since 1.0:** [[APP][Pro] MCP AI Bridge: talk to your Homey with Claude, ChatGPT, Gemini, Copilot, Cursor, Mistral, Ollama, LM Studio, n8n, Home Assistant or any AI, also from Telegram and WhatsApp - #3 by weide43](https://community.homey.app/t/app-pro-mcp-ai-bridge-control-homey-with-any-ai-assistant-claude-chatgpt-gemini-copilot-cursor-or-mistral-via-the-model-context-protocol/155930/3)
- 💬 **Questions, ideas, bug reports:** right here in this topic

**More apps by me**

- ☀ **[PV Forecast](https://community.homey.app/t/app-pro-pv-forecast-solar-forecast-that-measures-your-roof-and-learns-from-your-panels/160366)**: a solar forecast that measures your roof and learns from your own panels.
- ♻ **[Recycle België](https://community.homey.app/t/app-pro-recycle-belgie-belgian-waste-collection-calendar-with-rich-flow-cards-ical-export-and-quiet-hours/155726/)**: the Belgian waste collection calendar, with rich flow cards, iCal export and quiet hours.

* * *

### 📑 In this post

1. [What it is, and why this one](#p-747785-what-it-is-5)
2. [New in 5.0](#p-747785-new-in-50-7)
3. **[How to set up](#p-747785-how-to-set-up-8)** (five minutes on your own network, plus the optional extras)
4. [Connect your assistant](#p-747785-connect-your-assistant-15) (every client, with the config)
5. [Talk to your house from your phone](#p-747785-talk-to-your-house-from-your-phone-17) (Ask a model, Telegram, WhatsApp, widget, Siri)
6. [Flow cards: your flows and the AI working together](#p-747785-flow-cards-your-flows-and-the-ai-working-together-18)
7. [A voice for your speakers](#p-747785-a-voice-for-your-speakers-19)
8. [Dashboards](#p-747785-dashboards-20)
9. [Security: you stay in control](#p-747785-security-you-stay-in-control-21)
10. [Remote access, tokens and the settings page](#p-747785-remote-access-tokens-and-the-settings-page-22)
11. [Works with, requirements, languages](#p-747785-works-with-23)
12. [FAQ](#p-747785-faq-25)
13. [Thanks](#p-747785-thanks-26)
14. [Changelog](#p-747785-changelog-27)

* * *

## ✨ What it is

Your Homey already runs your home. With this app you can just talk to it.

MCP AI Bridge runs a Model Context Protocol (MCP) server on your Homey Pro. MCP is the open standard that Anthropic, OpenAI, Google and Microsoft build their assistants around, so one Homey address works in Claude, ChatGPT, Gemini, Copilot, Cursor, n8n, Home Assistant and every other MCP client. The assistant sees the real state of your home and changes it for you. You stop digging through menus and say what you want.

## 🚀 Why this one

- 🌍 **Every assistant, not one.** The open standard means no lock-in. Switch assistants whenever you like; your Homey stays the same.
- 🧰 **The whole Homey, not just switches.** Devices, zones, basic and Advanced Flows, moods, Logic, alarms, energy with prices and the solar forecast, Insights, notifications, apps, Homey’s own dashboards, users and presence, system. 190 actions.
- 🏠 **Local first.** The assistant connects to your Homey on your own network. Nothing extra in between, and the app sends nothing to me: no statistics, no account.
- 🔒 **Locked down by choice.** Four permission levels per API key, a tool selection per key, an access switch for the whole bridge, guardrails, a blocklist, confirmation for irreversible actions, and a log of everything.
- 👁 **See it before it happens, and take it back.** Ask for a preview and you get what would change. A set of changes is applied as one, and the last change an assistant made can be undone.
- 🧩 **Your own AI commands.** Build a tool for the assistant in the flow editor and answer it with live values.
- 📱 **From anywhere.** From Claude or ChatGPT on your phone, from Telegram or WhatsApp, from a Siri shortcut, or from the widget on your Homey dashboard.

## 🆕 New in 5.0

- 📱 **Talk to your house from your phone.** A model that may operate the house under a key you choose: from the widget, a flow card, a webhook for Siri or Tasker, **Telegram** or **WhatsApp**.
- 🧠 **Ask a model** works with Anthropic, OpenAI, Gemini, Mistral, and Ollama or LM Studio on your own network, and can search the web.
- 🏷 **A home profile.** What your devices are really called, their quirks and the house rules, for every assistant at once.
- 🙋 **Ask a person.** The AI asks someone in the household a question on their phone and waits for the answer. Irreversible actions can be confirmed there too.
- 🖼 **Panels in the chat.** In Claude, ChatGPT and other clients that show MCP Apps: the switches of a room, an energy chart with prices, a flow drawn as it is, your cameras, a flow before it is made, and an approval card for a set of changes.
- 📚 **Skills.** Ready ways of working for Advanced Flows, energy, dashboards, troubleshooting, the Zigbee network and safe changes. Add your own.
- 🪙 **About half the tokens.** Switch a key to lean and every conversation costs less. The Diagnostics tab shows where the tokens go.
- ☀ **Energy** knows the solar forecast, export prices and the cheapest hours.
- 🔢 **A PIN per dashboard.**
- 🌍 **Remote access without a computer running day and night.** The app keeps a free DuckDNS name (or your own Cloudflare domain) on your house and fetches its own Let’s Encrypt certificate. One port forward is all that is left.
- 🔌 **More clients in the wizard:** LM Studio, n8n, Home Assistant and the Gemini app.
- 🗂 **A tidier settings page:** 13 tabs, with Chat for Telegram and WhatsApp, and every message in your own language.

* * *

## 🛠 How to set up

### The basics: five minutes, on your own network

**1. Install the app.** From the App Store link above, on a Homey Pro from 2023 or newer.

**2. Open the settings.** In the Homey app: More, Apps, MCP AI Bridge, Configure app. The **Status** tab shows the bridge running, its address (`http://<homey-ip>:52199/mcp`) and an API key the app made for you. That key is shown once, so copy it somewhere safe.

**3. Pick your assistant.** On the **Connection** tab, choose your client. The wizard writes the config with your Homey’s address and your key already filled in. Copy it.

**4. Paste it into your assistant.** For Claude Desktop that is Settings, Developer, Edit Config; for Claude Code one terminal command; the details for every client are in the next section. Restart the assistant.

**5. Say something.** “Which lights are on?” works as a first test. Then try “give me an overview of my house”.

That is all you need for the core. Everything below is optional.

### Optional: let it build flows and dashboards

Writing flows and Homey’s own dashboards need a Personal Access Token, because the app’s own API token is not allowed to do that. Make one at my.homey.app, Settings, API keys:

- tick **homey.flow** for creating, editing and starting flows;
- Homey’s dashboards need the Dashboard scope, which is not offered as a checkbox. Only a token made with the top entry **Homey** (full access) carries it. Take it if you want your assistant to build dashboards, leave it if not.

Paste the token on the **Connection** tab. The Status tab shows what it can do and which scope is still missing.

### Optional: give each assistant its own key

On **Security** , make a key per assistant with the level it needs (see the table further down). Press **Tools** on a key to choose exactly which tools it sees, or switch it to **compact** (two tools that reach all 190, for Gemini, Mistral and local models) or **lean** (short descriptions and compact answers, about half the tokens).

### Optional: Claude or ChatGPT on your phone, from anywhere

Cloud assistants run on the internet, so they need your Homey on a public HTTPS address. The **Remote** tab, **Easy setup** , does it in four steps:

1. **A name for your house.** Make a free name at [duckdns.org](http://duckdns.org) (sign in, pick a name, copy the token), or use your own domain in Cloudflare with an API token for Zone, DNS, Edit. Paste it in and save.
2. **A certificate.** Tick that you agree to Let’s Encrypt’s terms. The app fetches the certificate itself and renews it in time.
3. **Your router.** Forward TCP port 443 to your Homey on port 52200. Give your Homey a fixed address in the router.
4. **Check.** Nine checks tell you what is still missing. When all are green, the tab shows the address for your assistant’s connector.

Then add a custom connector in Claude (web or app) or ChatGPT (developer mode) with that address. You get a consent page where you pick the permission for that connection and enter your API key.

### Optional: talk to your house from Telegram or WhatsApp

First, on **Ask a model** : choose a provider, paste your own API key, and switch on **Let the model act** with the key it acts as (a key with _Control only_ is usually enough). Then open the **Chat** tab, which shows a checklist of what is ready.

**Telegram** (the easy one, nothing to open to the internet):

1. In Telegram, search for **@BotFather** (blue tick) and tap Start.
2. Send `/newbot`, give it a name and a username ending in `bot`.
3. Copy the token BotFather sends and paste it on the Chat tab. Tick Telegram on and save. It says “Running as @yourbot”.
4. Open your bot from BotFather’s message and tap Start. It tells you your chat is not approved yet.
5. Back on the Chat tab, click **Approve** next to your chat. Ask “which lights are on?”. `/new` starts a fresh conversation.

**WhatsApp** takes more steps and needs remote access running, because Meta delivers the messages to your public address. You make a free app at [developers.facebook.com](http://developers.facebook.com) with the WhatsApp product, copy the Phone number ID, make a token that does not expire under Business settings, System users, and copy the app secret. Paste those on the Chat tab, then give Meta the webhook address and verify token the tab shows. The tab walks you through all eight steps.

Only chats and numbers you approve get an answer.

### Optional: a few more

- **Home & knowledge** tab: fill in the **home profile** (what you call things, quirks, house rules). Every assistant gets it when it connects.
- **Chat** tab, **Ask on the phone** : choose who may be asked a question by the AI, and whose phone confirms irreversible actions.
- **AI voice** tab: a provider and voice for spoken messages on your speakers.
- **Dashboard** tab: build a dashboard in one click and give it a PIN.

* * *

## 🔌 Connect your assistant

The wizard on the **Connection** tab writes all of these for you, with your address and key filled in. Here is what each one looks like, so you know what you are in for. Replace `<homey-ip>` with your Homey’s address.

> **Claude Desktop**
>
> `claude_desktop_config.json`, via Settings, Developer, Edit Config. The wizard opens on `mcp-remote`, which needs Node.js on your computer, because older builds reject a native HTTP entry:
> 
> ```json
> {
> "mcpServers": {
> "homey": {
> "command": "npx",
> "args": ["-y", "mcp-remote", "http://<homey-ip>:52199/mcp", "--allow-http"]
> }
> }
> }
> 
> ```
> 
> Newer builds take the native form (second button on that tab):
> 
> ```json
> {
> "mcpServers": {
> "homey": { "type": "http", "url": "http://<homey-ip>:52199/mcp" }
> }
> }
> 
> ```

> **Claude Code**
>
> ```bash
> claude mcp add homey --transport http "http://<homey-ip>:52199/mcp"
> 
> ```

> **Cursor and Windsurf**
>
> The same `mcpServers` block in `mcp.json`, then restart the editor.

> **GitHub Copilot (VS Code agent mode)**
>
> In `.vscode/mcp.json`. Note `servers`, not `mcpServers`:
> 
> ```json
> {
> "servers": {
> "homey": { "type": "http", "url": "http://<homey-ip>:52199/mcp" }
> }
> }
> 
> ```

> **Gemini on a computer**
>
> `antigravity-cli` (which replaced `gemini-cli`) wants `"serverUrl"` in `~/.gemini/antigravity-cli/mcp_config.json`; the older Gemini CLI wants `"httpUrl"` in `~/.gemini/settings.json`. The wizard writes both. Use a key in compact mode: Gemini takes at most 128 tools.

> **Mistral Vibe**
>
> ```bash
> vibe mcp add homey --url "http://<homey-ip>:52199/mcp" --transport streamable-http
> 
> ```
> 
> Or in `.vibe/config.toml` (per project) or `~/.vibe/config.toml`:
> 
> ```toml
> [[mcp_servers]]
> name = "homey"
> transport = "streamable-http"
> url = "http://<homey-ip>:52199/mcp"
> 
> ```

> **LM Studio, Open WebUI, Ollama**
>
> **LM Studio** (0.3.17 or newer): the `mcpServers` block with `"url"`, in Program, Install, Edit mcp.json.
> 
> **Open WebUI** (0.6.31 or newer): Admin Panel, Settings, External Tools, add a server: type MCP (Streamable HTTP), URL `http://<homey-ip>:52199/mcp`, Bearer auth with your key. Set Function Calling to Native in the model’s Advanced Params.
> 
> Local models rarely cope with 190 tools: give them a key in compact mode.

> **n8n**
>
> An AI Agent with the **MCP Client Tool** node: Endpoint your `/mcp` address, Server Transport HTTP Streamable, Authentication Bearer Auth with your API key. Choose only the tools the agent needs.

> **Home Assistant**
>
> Settings, Devices & services, Add integration, **Model Context Protocol**. Its client takes an address and no header, so the key goes in the address: `http://<homey-ip>:52199/mcp?key=YOUR_API_KEY`. That only works on your own network. Give it its own key with _Control only_, and switch on compact mode or pick the tools.

> **Claude web or app, ChatGPT, the Gemini app (cloud)**
>
> These run on the internet and need your public HTTPS address from the Remote tab (see How to set up). Then:
> 
> - **Claude web or app:** custom connector, on every plan (Free allows one, which is all you need).
> - **ChatGPT:** Plus and Pro, with developer mode on (Settings, Apps & Connectors, Advanced). ChatGPT asks you to confirm each write action.
> - **Gemini app:** through Spark (Settings & help, Connected Apps, Custom apps for Spark). For now only with a personal Google account in the US, in English.

> **With an API key: how each form carries it**
>
> The wizard fills it in for you; these are the shapes:
> 
> ```plaintext
> native HTTP entry "headers": { "Authorization": "Bearer YOUR_API_KEY" }
> mcp-remote (npx) "--header", "Authorization: Bearer YOUR_API_KEY"
> claude mcp add --header "Authorization: Bearer YOUR_API_KEY"
> vibe mcp add --header "Authorization=Bearer YOUR_API_KEY"
> Vibe config.toml headers = { "Authorization" = "Bearer YOUR_API_KEY" }
> 
> ```

> **Scripting: REST and OpenAPI**
>
> Every tool is also a plain REST call at `POST /tools/{name}`, with a full OpenAPI 3.1 spec at `GET /openapi.json`. That drops straight into Make, Node-RED or your own code.

## 💬 Just ask

**💡 Lights and climate:** “Turn off all the lights downstairs.” “Dim the living room to 30 percent.” “Set the bedroom to 19 degrees tonight.”

**🔍 Check on things:** “Is the garage door still open?” “Which devices have a low battery?” “Anything offline right now?”

**⚡ Energy:** “What used the most power this week?” “When is the cheapest time to run the dishwasher today?” “How much sun do we get tomorrow?”

**🛠 Automations:** “Make a flow that turns on the porch light at sunset.” “When the doorbell rings after dark, turn on the hall light for five minutes.” It builds the Advanced Flow with the cards in place, and shows it to you first in clients with panels.

**🧹 Housekeeping:** “Did anything fail in the last hour?” “Are any of my flows broken?” “Which apps are used in no flow at all?”

The **Commands** tab has about eighty more, tap to copy.

* * *

## 📱 Talk to your house from your phone

**Ask a model with tools.** A model of your choice (your own key at Anthropic, OpenAI, Gemini or Mistral, or Ollama or LM Studio at home) may operate the house as the API key you choose, with that key’s permission and tool selection, and through the same checks as Claude or ChatGPT: guardrails, access mode, limits and the audit log. You reach it from:

- 💬 **Telegram** and **WhatsApp** , with your own bot or number;
- 🧩 the **widget** on your Homey dashboard;
- 🔀 a **flow card** ;
- 🍎 a **webhook** for a Siri shortcut, Tasker or anything that can send a web request.

What the model reads (names, who is home, device states) goes to the provider you chose; with Telegram or WhatsApp it also passes through their servers. A daily limit and your own prices per million tokens keep the bill in sight, and the last twenty questions with their cost are listed.

**Ask a person.** The AI can ask someone in the household on their phone, with Homey’s own notifications: a question to type an answer to, or yes or no. “How warm should the oven be?” “May the heating go off?” An irreversible action can be confirmed on a phone you choose, naming the device instead of an id.

## 🧩 Flow cards: your flows and the AI working together

**Ask a model, from any flow**

- _Ask a model a question._ The answer comes back as a tag. You choose what goes along: nothing, a room, a device, recent events or the whole home.
- _Let the model do something._ The same with tools, under the key you chose.
- _Ask a model about a camera picture._ The picture goes along with the question.
- _A model answers yes_ (condition). Branch on a yes or no question. Anything else stops the flow with the reason, instead of guessing.

**Your own AI commands**

- _An AI agent calls a custom tool_ (trigger) and _Return a response to the AI agent_ (action). The assistant calls your tool, your flow runs and answers with live values. Works in basic and Advanced Flows; give it a description and up to five typed arguments.

**Watch what happens**

- _The AI controls a device_, _An AI tool call fails_, _A flow becomes broken_, _A security event occurs_, _A scheduled bridge job fails_, _An AI agent disconnects_, and conditions for _There is a broken flow_, _An AI agent is connected_, _The security event is_, _Model spend today is below_.

**Steer the bridge**

- _Limit the bridge to a mode_ (everyone asleep, read only) and _Return the bridge to its normal access mode_. A flow can lower access, never raise it.
- _Remember a value for the AI_ and the condition _A remembered value is_.

**Example: a morning summary.** Every day at seven, _Ask a model a question_ with the whole home: “what stands out this morning, in two sentences”, then send the Answer tag as a notification.

## 🔊 A voice for your speakers

- _Say a text with an AI voice_ on a speaker, a room, all speakers or wherever somebody is, with voice, volume, speed and a chime first.
- _Ask a model and say the answer_, _Describe a camera picture out loud_ (who is at the door, never who it is), and _Say a briefing_ (weather, the cheapest hour, lights on, open doors, who is home).
- Your own key at OpenAI, ElevenLabs, Google Cloud or Microsoft Azure (its free tier covers a normal house), or Piper on a computer at home. Sonos, Chromecast and any speaker that plays an audio address. Quiet hours, a queue, and every speaker goes back to its own volume.

## 📊 Dashboards

- **The app’s own dashboard** at `http://<homey-ip>:52199/dashboard`, built in one click, for a tablet on the wall. Live device states, camera streams (FLV and MJPEG), and a **PIN** per dashboard: control (anybody may look, switching asks for the PIN) or view.
- **Homey’s own dashboards** , built by your assistant, with Homey’s widgets from the catalogue.
- A **widget** for your Homey dashboard with the bridge status and a field to ask the model.

## 🔒 Security: you stay in control

**Four permission levels, per key.**

| Level | May do | May not |
| --- | --- | --- |
| **Read only** | See everything | Change anything |
| **Control only** | Switch and set devices, start a flow, activate a mood, set a variable, send a notification | Rename, move, change settings, create, overwrite or delete |
| **Control and change** | All of that, plus editing flows, dashboards, moods and settings | Delete devices, uninstall apps, reboot, wipe data |
| **Full** | Everything | |

_Control only_ is the one to give a voice assistant: it operates the house and leaves the way it is set up alone.

**And the rest:**

- 🟢 **Access mode** for the whole bridge: full, control and change, control only, read only or off, in one click.
- 🙈 **The tool list follows the key.** An assistant only sees the tools it may use, so it does not waste turns on refusals.
- 🎚 **Tools per key** , with a search box and a running count, and a warning past the 100 several clients refuse.
- 📋 **Guardrails** block a tool or capability, optionally in a time window. 🚫 A **blocklist** for risky tools, even for a full key.
- ✋ **Confirmation** for irreversible actions, in the client or on a phone.
- 🌐 **IP whitelist and rate limits** , tighter for destructive actions.
- 📝 **Security log** with source IPs, a **connections** view, and an **audit log** of every action. Argument values are never logged.
- 🔐 Zigbee and Z-Wave network keys and your own flow keys are never shown to an assistant.
- 🏠 The dashboard never leaves your network.

A new install makes its own API key, so the bridge is never open to everything that can reach your Homey.

## 🌍 Remote access, tokens and the settings page

**Remote access** is off until you turn it on, and refuses to start without an API key. Remote clients sign in with OAuth 2.1: you pick the permission per connection on a consent page, a global ceiling caps them all, and connectors can be revoked. Easy setup (see How to set up) keeps the name and certificate current. Manual routes for an existing proxy are still there.

**Saving tokens.** A **lean** key gets short tool descriptions (the long explanation lives in the skills) and compact answers: no empty fields, rounded numbers, lists as tables. On a real house: the tool list from 45,000 to 26,000 tokens, a set of answers from 117,000 to 54,000. **Compact** mode shows two tools that reach all 190.

**Skills** are ready ways of working an assistant reads before a bigger job: Advanced Flows, dashboards, energy, troubleshooting, the Zigbee network, safe changes and HomeyScript. Write your own on the **Home & knowledge** tab.

**The settings page, 13 tabs** , each saying what it is for: Status, Connection, Security, Remote, Ask a model, Chat, AI voice, Dashboard, Home & knowledge (memory, home profile, skills), Automation (schedules, events, webhooks), Diagnostics (tool calls, broken flows, tokens, change history, bug report), Commands and About. Everything in your own language.

## ✅ Works with

Claude (Desktop, Code, web, mobile), ChatGPT, Google Gemini (CLI and app), GitHub Copilot, Cursor, Windsurf, Mistral Vibe, Open WebUI, LM Studio, Ollama, n8n, Home Assistant, and any other MCP client.

**Requirements:** a Homey Pro (2023), Homey Pro (2026), Homey Pro mini or Homey Self-Hosted Server, with firmware 12.1.0 or newer. A Homey Pro (Early 2019) or older cannot run it.

**Languages:** English, Dutch, German, French, Spanish, Italian, Norwegian, Swedish and Danish. The settings page follows your phone, the flow cards and widget follow your Homey. Spot a clumsy sentence in your language? Tell me here.

## 📥 Get it

1. 📲 Install from the App Store: [MCP AI Bridge | Homey](https://homey.app/a/community.mcp-ai-bridge)
2. 🧪 Or try 5.0 now: [MCP AI Bridge | Homey](https://homey.app/a/community.mcp-ai-bridge/test/)
3. ⚙ Open the settings and follow **How to set up** above.

Questions, ideas and bug reports are very welcome here. A bug report from the Diagnostics tab carries everything needed to help, and never a key. If the app makes your home a little easier, a reply or a ❤ helps other people find it. 🙌

* * *

## ❓ FAQ

**Does it work on a Homey Bridge, Homey Cloud or a Homey Pro (Early 2019)?**  
No. It runs on the Homey itself and needs the local Homey API of a Homey Pro from 2023 or newer, a Homey Pro mini or a Self-Hosted Server.

**What does it cost?**  
The app is free, without an account or subscription. Claude Desktop works on the free plan; ChatGPT needs Plus or Pro for custom connectors. Ask a model, the AI voice and Telegram or WhatsApp chat use your own API key at the provider you choose, and you pay that provider for what you use. A daily limit keeps that in hand.

**Where does my data go?**  
Only to the assistant you connect, and for Ask a model to the provider you chose. The app sends nothing to me: no statistics, no crash reports. Keys and tokens stay on your Homey.

**Gemini, Mistral or my local model sees no tools, or answers nothing.**  
Those take at most 100 to 128 tools. Switch that key to compact mode on the Security tab: the assistant then sees two tools that still reach all 190.

**Do I need a Personal Access Token?**  
Only to let the assistant create or edit flows, or build Homey’s own dashboards. Everything else works without one.

**Do I have to open a port?**  
Not on your own network. Only for cloud assistants (Claude web or app, ChatGPT) and WhatsApp: one port forward, set up on the Remote tab. Remote access refuses to start without an API key, and every remote connection signs in on a consent page.

**Is there an official Homey MCP server too?**  
Athom has its own MCP server in the cloud. This app is a separate one that runs on your Homey; you can use either, or both.

**Something does not work.**  
Make a bug report at the bottom of the Diagnostics tab and paste it in this topic. It carries everything needed to help, and never a key.

## 🙏 Thanks

5.0 is full of ideas from this topic. Thanks to @Mariomark1541 for the reports on Ask a model and the AI voice and the hard questions about limits, @Paul_Pandre and @4x4_Pete for the connection and tool selection reports, @J_Reeves for showing it works in ChatGPT on Plus, Teddy for the long Open WebUI and Gemini sessions, Dominik for the Homey Pro (2019) report, and Andre Kamman for asking for Mistral Vibe. Keep them coming.

* * *

## 📜 Changelog

```plaintext
v5.0.0 Talk to your house from your phone: a model that may operate
        it, from Telegram, WhatsApp, the widget, a flow or Siri.
        Gemini and local models, web search, a home profile, ask a
        person mid-flow, panels in the chat, skills, solar forecast
        and cheapest hours, dashboard PIN, remote access with its own
        certificate, lean keys that halve the tokens, 13 tidier tabs.

v4.21.1 The store page now shows the description in your own
        language. The translated texts never made it into the upload.

v4.21.0 The app speaks Norwegian, Swedish, German, Danish, Spanish,
        French and Italian too: settings page, flow cards, widget
        and store text. A new App Store image, without text.

```

👉 Every version since 1.0, in full: [[APP][Pro] MCP AI Bridge: talk to your Homey with Claude, ChatGPT, Gemini, Copilot, Cursor, Mistral, Ollama, LM Studio, n8n, Home Assistant or any AI, also from Telegram and WhatsApp - #3 by weide43](https://community.homey.app/t/app-pro-mcp-ai-bridge-control-homey-with-any-ai-assistant-claude-chatgpt-gemini-copilot-cursor-or-mistral-via-the-model-context-protocol/155930/3)

---

<div class="post-metadata">

**Author:** ![Mariomark1541](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/mariomark1541/32/178160_2.png) [@Mariomark1541](https://community.homey.app/u/Mariomark1541)\
**Post date:** [June 13, 2026, 6:21pm UTC](https://community.homey.app/t/app-pro-mcp-ai-bridge-talk-to-your-homey-with-claude-chatgpt-gemini-copilot-cursor-mistral-ollama-lm-studio-n8n-home-assistant-or-any-ai-also-from-telegram-and-whatsapp/155930/2 "2026-06-13T18:21:55Z")

</div>

Where can I add Gemini ?

---

<div class="post-metadata">

**Author:** ![weide43](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/weide43/32/79186_2.png) [@weide43](https://community.homey.app/u/weide43)\
**Post date:** [June 13, 2026, 7:44pm UTC](https://community.homey.app/t/app-pro-mcp-ai-bridge-talk-to-your-homey-with-claude-chatgpt-gemini-copilot-cursor-mistral-ollama-lm-studio-n8n-home-assistant-or-any-ai-also-from-telegram-and-whatsapp/155930/3 "2026-06-13T19:44:38Z")

</div>

## 📜 MCP AI Bridge, every version

The newest three are also in the first post of this topic. Everything since 1.0 is here, newest first.

```plaintext
v4.21.1 The store page now shows the description in your own
        language. The translated texts never made it into the upload.

v4.21.0 The app speaks Norwegian, Swedish, German, Danish, Spanish,
        French and Italian too: settings page, flow cards, widget
        and store text. A new App Store image, without text.

v4.20.3 Only installable on a Homey that can run it: Pro (Early
        2023), Pro (2026), Pro mini and Self-Hosted Server.

v4.20.2 Cards in an Advanced Flow built by an AI no longer land on
        top of each other: a tall card pushes the rest down.

v4.20.1 Compact mode also works through OpenAPI (/openapi.json), and
        POST /tools/<name> keeps to the key's own tool selection.

v4.20.0 Compact mode: a key can show just two tools that reach all
        173, so Gemini, Mistral and local models in Open WebUI get
        the whole house. Open WebUI is in the connect wizard, and the
        AI voice tab counts this month's characters, with how much of
        Azure's free 500,000 is used.

v4.19.5 A key with more tools than Gemini (128) or Mistral (100)
        take says so, and how to choose fewer.

v4.19.4 Open WebUI no longer warns "Unknown SSE event: endpoint",
        and the older SSE transport answers on its stream. By Teddy.

v4.19.3 A refused message says what to do: quota used up, wait a
        minute, add credit, or test the key.

v4.19.2 No voice chosen? Azure and Google now speak in your own
        language, and an assistant can pick the provider per message.

v4.19.1 Setting up a voice: test the key before saving, choose from a
        real list with your own language first, listen right there, and
        Save and check says what the Homey really stored.

v4.19.0 Your home can speak in a natural AI voice, asked for by Mark1541:
        OpenAI, ElevenLabs, Google Cloud, Microsoft Azure (free tier
        recommended), or Piper or espeak in your own house, on Sonos,
        Chromecast or any speaker that plays an audio address. Six new
        cards: say a text, make the audio, ask a model and say the
        answer, describe a camera picture (and say it), and a briefing.
        Speaks where somebody is, waits its turn, says a repeat once,
        chimes first, follows profiles per hour and room, and has an
        intercom on the dashboard and in the widget.

Earlier 4.x, in short

v4.18.2 New widget preview images, as the App Store review asked.
v4.18.1 Custom tools in an Advanced Flow too, and a refused install,
        backup, rename or restart names the scope it needs.

v4.18.0 The whole app read through: rooms inside floors count, clock-time
        schedules, energy reports, searchable diagnostics, a dashboard
        token per page and a widget. Needs firmware 12.1.0.
v4.17.0 Ask a model remembers its questions, branches a flow on a yes or
        no, aims context at one room or device, and shows the cost.
v4.15.1 The test question on the Ask a model tab works again.
v4.15.0 A flow can ask a model a question with your own key and use
        the answer. Off until you switch it on, with a daily limit.
        Text in, text out: the model gets no tools and changes nothing.
v4.14.0 Changes shown before they happen and applied as one, the key
        in every log line, and home_briefing in 3 KB instead of 31 KB.
v4.13.0 How often each tool is really used when you pick tools for a
        key, dry_run for what a call would do, undo for the last
        change, listings you can ask less of, and a daily summary.
v4.12.3 Fixes the handshake that locked out everyone on mcp-remote,
        reported by Paul_Pandre. The protocol era is now read from the
        message instead of from headers ordinary clients also send.
v4.12.1 The tool selection on a key now also reaches a connection from
        outside, which used to be shown every tool anyway.
v4.12.0 Pick per API key exactly which tools an assistant is shown,
        for clients that cap a connector at 100. It only ever narrows.
v4.11.0 A new install gives itself an API key; running installs keep
        working as they did.
v4.10.1 Mistral Vibe in the connect wizard, the one client that wants
        TOML where every other takes a JSON map.
v4.10.0 Camera tiles via the app, cards that appear on a condition,
        moods per room, and a switch to stop serving the dashboard.
v4.9.2 The settings page explained tab by tab, and 78 example commands.
v4.9.1 One bug report instead of two, where the page and your
        assistant each built a document missing what the other had.
v4.9.0 A full security audit: four ways to get more access than you
        were given, closed. The dashboard is local-network-only again.
v4.8.0 HTTPS from the bridge itself, and a list of the cloud
        assistants you approved, with a way to revoke them.
v4.7.0 Your assistant is only shown the tools its key may use, and is
        told which permission it is on.
v4.6.0 A fourth permission level, Control only: it operates the house
        and changes nothing about how the house is set up.
v4.5.1 A refused action explains itself in a form your assistant can
        read, instead of a bare failure.
v4.5.0 The permission model stopped guessing categories from tool
        names, which had refused reads and waved through deletes.
v4.4.1 Two remote-access fixes from a Cloudflare Tunnel report.
v4.4.0 The Bridge device gets its own settings, including an optional
        alarm for a burst of refused attempts.
v4.3.2 A new image for the Bridge device after App Store review.
v4.3.1 On a Homey this app cannot run on, the settings page no longer
        shows a server that is not there.
v4.3.0 Flows the AI builds run their actions at the same time, since a
        chained action never runs at all when the one before it fails.
v4.2.1 A blocked tool is no longer advertised and then refused.
v4.2.0 Confirmation for irreversible actions is ON by default, and
        access mode "off" really blocks everything. New: a Bridge
        device with Insights graphs and its own flow triggers.
v4.1.1 Fixes the version on the About tab, which read 3.1.3 whatever
        you were running.
v4.1.0 A hardening pass, most of it found by attacking the app rather
        than reading it, including a typo in the access mode that used
        to grant full access.
v4.0.2 Fixes a crash loop on older Homeys.
v4.0.1 Dashboard widget URIs are checked before anything is written.
v4.0.0 Rebuilt for the MCP 2026-07-28 spec while keeping every
        existing connector working: the server speaks both eras side by
        side, and a confirmation is bound to the exact tool, arguments
        and caller so it can never be replayed against another.

Earlier majors, in short

v3.x Native Homey Dashboards the AI can build, broken-flow detection
        that resolves every card against the live registry instead of
        trusting Homey's own flag, and the MCP 2025-11-25 spec with
        server-initiated requests.

v2.x The release that turned a tool list into a bridge with a memory:
        persistent memory across chats, scheduled actions, device events
        with webhooks, the interactive dashboard, camera images, and the
        whole security model the rest builds on.

v1.x The first release, 83 tools, then renamed to MCP AI Bridge. It
        gained custom AI commands built from flow cards, optional API
        key authentication, a REST shortcut with an OpenAPI spec, IP
        whitelisting and rate limiting.

```

* * *

### 🔗 Links

- 📲 **App Store:** [MCP AI Bridge | Homey](https://homey.app/a/community.mcp-ai-bridge)
- 🧪 **Test version:** [MCP AI Bridge | Homey](https://homey.app/a/community.mcp-ai-bridge/test/)
- 💬 **Support and feedback:** right here in this topic

## 📱 More apps by me

- ☀ **[PV Forecast](https://community.homey.app/t/app-pro-pv-forecast-solar-forecast-that-measures-your-roof-and-learns-from-your-panels/160366)**: a solar forecast that measures your roof and learns from your own panels.
- ♻ **[Recycle België](https://community.homey.app/t/app-pro-recycle-belgie-belgian-waste-collection-calendar-with-rich-flow-cards-ical-export-and-quiet-hours/155726/)**: the Belgian waste collection calendar, with rich flow cards, iCal export and quiet hours.

---

<div class="post-metadata">

**Author:** ![Luke\_Vredeveld](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/luke_vredeveld/32/33899_2.png) [@Luke\_Vredeveld](https://community.homey.app/u/Luke_Vredeveld)\
**Post date:** [June 14, 2026, 10:59am UTC](https://community.homey.app/t/app-pro-mcp-ai-bridge-talk-to-your-homey-with-claude-chatgpt-gemini-copilot-cursor-mistral-ollama-lm-studio-n8n-home-assistant-or-any-ai-also-from-telegram-and-whatsapp/155930/4 "2026-06-14T10:59:41Z")

</div>

I have everything in working order with Gemini-cli on MacBook and the MCP-server app. I have made a personal acces token to be able to write flows to my homey. But writing doesn’t work. Gemini helped to troubleshoot but without success. I asked Gemini to make a bug report for me:

```auto
 Bug Report: Flow Write Operations Unavailable (even with Full Access PAT)

  Device: Homey Pro (2026)
  Firmware: v13.2.1
  App Version: MCP AI Bridge (latest)
  Issue: The bridge consistently reports that flow write operations are unavailable, despite using a Personal Advisory Token (PAT) with all possible scopes/permissions enabled.

  Steps taken to resolve:
   1. Created multiple new PAT tokens with "Full Access" (all scopes checked).
   2. Removed and re-added the token in the app configuration.
   3. Restarted the MCP AI Bridge app multiple times (with 10+ seconds wait time).
   4. Tested with both Basic Flows (flows_create) and Advanced Flows (advanced_flows_create).
   5. Verified the user account is the Owner/Admin of the Homey.

  Error Message received via MCP:
  Error executing tool "flows_create": Flow schrijfoperaties zijn niet beschikbaar. Controleer of het PAT token correct is ingesteld en herstart de app (Homey → MCP AI Bridge →
  Uitschakelen/Inschakelen).

  Additional Technical Observation:
  List-based tools (like flows_list, devices_list, zones_list) are also failing with a Zod-like type validation error:
  Invalid input: expected record, received array at path: ["structuredContent"]. This suggests a potential issue in how the bridge serializes data or how the schema is defined for the MCP output.

  Expected behavior:
  With a valid Admin PAT token, the bridge should allow the creation and modification of flows and correctly parse list-responses as records.

```

---

<div class="post-metadata">

**Author:** ![weide43](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/weide43/32/79186_2.png) [@weide43](https://community.homey.app/u/weide43)\
**Post date:** [June 14, 2026, 12:18pm UTC](https://community.homey.app/t/app-pro-mcp-ai-bridge-talk-to-your-homey-with-claude-chatgpt-gemini-copilot-cursor-mistral-ollama-lm-studio-n8n-home-assistant-or-any-ai-also-from-telegram-and-whatsapp/155930/5 "2026-06-14T12:18:41Z")

</div>

@Luke_Vredeveld

Thanks for the detailed report, it was really helpful. Both problems are fixed in **v2.1.0** (now in test/review).

**The list-tool error.** The error `expected record, received array at path ["structuredContent"]` was a real bug on our side. The list tools (devices, flows, zones, etc.) returned a bare JSON array, and strict MCP clients like Gemini CLI reject that during structured-content validation, they expect an object. List results are now returned as an object, so reads work again in Gemini CLI and other strict clients.

**The flow-write problem.** This was not your token, and not the scopes. On recent firmware the bridge’s separate token-based session fails to initialize, which blocked all flow writes no matter how many PATs you created or which scopes you checked. Flow create and edit now go through the app’s own API (which already has the required permission), so a Personal Access Token is no longer needed at all. If the token session still cannot start, the real error is now surfaced instead of the generic message.

Update to v2.1.0 and it should just work.

While I was at it I also hardened the server for all AI clients: safe serialization (no more crashes on circular or empty results), protocol-version echoing, a session id for POST-based clients like ChatGPT and Cursor, and read-only/destructive hints on every tool.

One more thing that should make future reports easier: there is now a **Bug report** tab in the app settings that builds a diagnostic report with no tokens included, and you can also just ask your AI assistant to “create a bug report”. It builds the same report, saves it in the app, and returns it in the chat, so the exact diagnostics (app version, firmware, flow-write status, recent errors) are one click away.

Changelog:

### v2.1.2

- New flow cards: AI controls a device, a flow becomes broken, an AI tool fails, a security event occurs, remember a value for the AI, check a remembered value, and is any flow broken.
- New Bug report tab in the app settings that builds a diagnostic report with no tokens, plus a system\_create\_bug\_report tool so you can ask your AI to create one straight from the chat. Both copies stay identical.
- Better compatibility with strict clients like Gemini CLI: list results are objects, safe serialization, protocol-version echo, a session id for POST-based clients (ChatGPT, Cursor, Windsurf), and read-only/destructive tool hints.
- Flow create and edit no longer need a Personal Access Token; they use the app’s own API on modern firmware.
- Fixed the app settings API so all management tabs load their data, and fixed the Generate report button.
- Security and reliability fixes from a deep audit: destructive tools are blocked until you set an API key (with an in-app warning), the energy price tools use the correct Homey API, webhooks are no longer revealed to the AI, a memory namespace limit, a scheduler cancel fix, and corrections to the Claude Code mcp-remote command and the insights time range.

---

<div class="post-metadata">

**Author:** ![Luke\_Vredeveld](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/luke_vredeveld/32/33899_2.png) [@Luke\_Vredeveld](https://community.homey.app/u/Luke_Vredeveld)\
**Post date:** [June 14, 2026, 5:43pm UTC](https://community.homey.app/t/app-pro-mcp-ai-bridge-talk-to-your-homey-with-claude-chatgpt-gemini-copilot-cursor-mistral-ollama-lm-studio-n8n-home-assistant-or-any-ai-also-from-telegram-and-whatsapp/155930/6 "2026-06-14T17:43:21Z")

</div>

While the latest update fixed the reading of large lists (no more array errors!), I am completely blocked from creating flows.

I get ‘Missing Scopes’ every time. I’ve tried a clean reinstall and followed the release notes regarding the PAT being unnecessary, but it still won’t let me write. It seems like the new firmware

might have different requirements for the app’s internal API session.

```auto
Bug Report: Persistent "Missing Scopes" on Flow Write Operations (Homey Pro 2026)

  Environment:
   * Device: Homey Pro (2026)
   * Firmware: v13.2.1
   * App: MCP AI Bridge (latest version, post-array-fix)

  The Issue:
  Despite the latest update (which successfully fixed the "expected record, received array" error for read operations), the bridge is still unable to perform any flow write operations (flows_create or
  advanced_flows_create). Every attempt returns a "Missing Scopes" error.

  Summary of Findings:
   * Read Operations: WORKING. Tools like zones_list and devices_get_all_states return full, valid JSON structures.
   * Write Operations: FAILING. Any attempt to create a flow results in Error executing tool "flows_create": Missing Scopes.
   * Internal API Route: According to the release notes, the app should now use its own internal API permissions for flows, making a PAT unnecessary. However, on this firmware (v13.2.1), this internal
     session initialization still seems to be blocked or unauthorized.

  Steps Taken (All failed to resolve the issue):
   1. Created multiple new PAT tokens with "Full Access".
   2. Verified the user is the Homey Owner/Admin.
   3. Restarted the MCP AI Bridge app multiple times.
   4. Clean Reinstall: Fully uninstalled the app and reinstalled it from the App Store.
   5. Attempted write operations both with and without a PAT configured.

  Technical Observation:
  The bridge successfully authenticates for the general Web API (reading), but the authorization specifically for the homey.flow and homey.advancedflow scopes seems to be lost or not correctly requested
  when the bridge attempts to use the app's internal API on the newest Homey Pro 2026 firmware.

  Expected Behavior:
  The app should be able to create or edit flows using its internal permissions (as stated in the release notes) without requiring an external PAT, or it should correctly pass the PAT's scopes if one is
  provided.

```

---

<div class="post-metadata">

**Author:** ![weide43](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/weide43/32/79186_2.png) [@weide43](https://community.homey.app/u/weide43)\
**Post date:** [June 14, 2026, 6:08pm UTC](https://community.homey.app/t/app-pro-mcp-ai-bridge-talk-to-your-homey-with-claude-chatgpt-gemini-copilot-cursor-mistral-ollama-lm-studio-n8n-home-assistant-or-any-ai-also-from-telegram-and-whatsapp/155930/7 "2026-06-14T18:08:53Z")

</div>

@Luke_Vredeveld  
Thanks again, this was a different root cause than the array fix, and your “Missing Scopes” observation pointed straight at it.

I verified it against the Homey API specification:

- Reading flows (getFlows, getFlow, getAdvancedFlows) needs the homey.flow.readonly scope.
- Creating or editing flows (createFlow, createAdvancedFlow, updateFlow, deleteFlow) needs the full homey.flow scope.

The app’s own API token (from the homey:manager:api permission) only carries the readonly scope, so reads work but writes return “Missing Scopes”. There is no app permission that grants the homey.flow write scope, so an app simply cannot create flows with its own token. My earlier “PAT no longer required” note was wrong, and the app-API fallback is exactly what produced the error.

On top of that, the token session that does have the right scope was connecting to a hand-built local address that fails on the Homey Pro 2026 firmware. It now uses the same local URL the app’s own API uses (homey.api.getLocalUrl()), so the token session initializes correctly.

What to do in v2.1.7 (now in test/review):

1. Keep your Full-Access PAT in the app settings (Flow scope is the part that matters).
2. Restart the app once (Homey, MCP AI Bridge, disable/enable).
3. Open the Bug report tab and check the “Flow write” line: it should say “PAT session active”.
4. flows\_create and advanced\_flows\_create should then work.

If it still does not show an active session, generate a bug report and look at the flow\_api\_info patError field, it will contain the real error from the token session so we can pin down whether it is the address, the token scope, or something else. Thanks for the thorough testing.

### v2.1.7

- Flow create and edit require a Personal Access Token with the Flow scope. The app’s own API can only read flows, not write them (which caused “Missing Scopes”), and no app permission grants flow-write access.
- The token session now uses the same local address the app API uses, so it initializes correctly on Homey Pro 2026 firmware.
- If no token is set, you now get a clear message explaining what to do instead of a cryptic “Missing Scopes” error. The Bug report tab shows whether the token session is active.

---

<div class="post-metadata">

**Author:** ![Luke\_Vredeveld](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/luke_vredeveld/32/33899_2.png) [@Luke\_Vredeveld](https://community.homey.app/u/Luke_Vredeveld)\
**Post date:** [June 14, 2026, 7:59pm UTC](https://community.homey.app/t/app-pro-mcp-ai-bridge-talk-to-your-homey-with-claude-chatgpt-gemini-copilot-cursor-mistral-ollama-lm-studio-n8n-home-assistant-or-any-ai-also-from-telegram-and-whatsapp/155930/8 "2026-06-14T19:59:42Z")

</div>

> [@weide43](#):
>
> 1. Open the Bug report tab and check the “Flow write” line: it should say “PAT session active”.

I’ve updated the app, but there is no such information in the bug report tab visible

 ![Schermafbeelding 2026-06-14 om 21.59.08](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/f/9/f951c36d95d6c9cf4a1560306abaa752464ef2bb.png)

 ![IMG_9356](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/f/5/f57c1d3ebeb63df5b3e0dfbc4c13ff23ddabf344.png)

---

<div class="post-metadata">

**Author:** ![weide43](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/weide43/32/79186_2.png) [@weide43](https://community.homey.app/u/weide43)\
**Post date:** [June 15, 2026, 2:51pm UTC](https://community.homey.app/t/app-pro-mcp-ai-bridge-talk-to-your-homey-with-claude-chatgpt-gemini-copilot-cursor-mistral-ollama-lm-studio-n8n-home-assistant-or-any-ai-also-from-telegram-and-whatsapp/155930/10 "2026-06-15T14:51:27Z")

</div>

@Luke_Vredeveld  
Thanks again for reporting this and for sticking with it. Here is a summary of everything that changed since 2.1.7, ending in the real fix.

- **2.1.8** The Bug report now clearly states whether flow writing is enabled (active token session, the real error, or no token set) instead of a misleading label.
- **2.1.9** The Status tab also lists recent connections, since most AI clients connect with stateless requests that hold no live session.
- **2.2.0 to 2.2.3** First round of fixes for saving the Personal Access Token: route the save through a reliable path, rebuild and verify the flow session the moment you save (no restart), validate the token (a session is created even for a wrong token, so I added a real check), and version the settings scripts so an update always loads the fresh page instead of a cached one.
- **2.2.4 (the actual root cause)** On the Homey web app (my.homey.app) the settings page runs in a sandboxed frame, and the current web SDK there no longer exposes the methods the page was using. The fallback network request was blocked by the browser (CORS, null origin with credentials). That is why saving the token and loading the tabs silently failed in the browser, while the mobile app kept working. The page now talks to the app over the channel the web SDK does support, so saving and all tabs work in the browser again.
- **2.2.5** Reliable feedback: once the token is stored you get an immediate confirmation, and a slow flow check can no longer flip a successful save back into a false “saving failed”. It still shows flow writing active, or the exact error if the token was rejected.
- **2.2.6** The Connection tab now shows a masked preview of the saved token, so you can see which one is active.

What to do: update to 2.2.6. If your settings page was already open, do a hard refresh (Ctrl+Shift+R) so it loads the new version. Then on the Connection tab paste a Personal Access Token created at my.homey.app, Settings, API, with the **Flow** scope, and save. The page will confirm whether flow writing is active. Reading flows and everything else works without a token; only flow create/edit needs that Flow-scoped token.

---

<div class="post-metadata">

**Author:** ![Luke\_Vredeveld](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/luke_vredeveld/32/33899_2.png) [@Luke\_Vredeveld](https://community.homey.app/u/Luke_Vredeveld)\
**Post date:** [June 15, 2026, 4:04pm UTC](https://community.homey.app/t/app-pro-mcp-ai-bridge-talk-to-your-homey-with-claude-chatgpt-gemini-copilot-cursor-mistral-ollama-lm-studio-n8n-home-assistant-or-any-ai-also-from-telegram-and-whatsapp/155930/11 "2026-06-15T16:04:43Z")

</div>

Hi there, still checking out the server-app, awesome development!

I can conform the write acces works. But now, the AI can only create empty advanced flows. Once again, I asked Gemini CLI to make me a bug report.

```auto
 Bug Report: advanced_flows_create silently drops nodes/edges (while flows_create works perfectly)

  Environment:
   * Device: Homey Pro (2026)
   * Firmware: v13.2.1
   * App: MCP AI Bridge (latest version, PAT session active & working)

  The Issue:
  Following the latest updates, write permissions via the PAT session are successfully established. Standard flows (flows_create) are now created flawlessly, including all nested triggers, conditions,
  and actions. 
  However, when using advanced_flows_create, the bridge successfully creates the flow object (it appears in the Homey app with the correct name and ID), but the flow canvas is completely empty. Homey
  silently drops or rejects the entire nodes and edges payload provided in the API call.

  Steps Taken & Observations:
   1. Basic Flows (Success): Called flows_create with a cron trigger and a HomeyScript action. Result: Flow created perfectly with all cards intact.
   2. Advanced Flows (Failure): Called advanced_flows_create with a minimal payload (1 trigger node, 1 action node, 1 edge).
       * The MCP tool returns {"success": true, "flow_id": "..."}.
       * Upon fetching the created flow via advanced_flows_get, the cards object is completely empty: { ..., "cards": {} }.
   3. Formatting Attempts: Tried alternative formatting strategies for the nodes (using strict UUIDs for node IDs, verifying ownerUri and cardId mapping), but all resulted in the same silent dropping of
      cards by the Homey validation engine.

  Conclusion & Request:
  The bridge's connection and token authorization are now rock solid. The issue lies entirely in the schema translation/validation for the advanced_flows_create payload. It appears the Homey Pro 2026
  firmware requires a highly specific internal formatting or nesting structure for Advanced Flow nodes/edges that differs from how the bridge currently serializes them. 

  Could you investigate the exact payload structure expected by the homey.advancedflow endpoint on firmware v13.2+?

```

---

<div class="post-metadata">

**Author:** ![weide43](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/weide43/32/79186_2.png) [@weide43](https://community.homey.app/u/weide43)\
**Post date:** [June 15, 2026, 6:55pm UTC](https://community.homey.app/t/app-pro-mcp-ai-bridge-talk-to-your-homey-with-claude-chatgpt-gemini-copilot-cursor-mistral-ollama-lm-studio-n8n-home-assistant-or-any-ai-also-from-telegram-and-whatsapp/155930/12 "2026-06-15T18:55:50Z")

</div>

@Luke_Vredeveld

**Fixed in v2.2.7. Thanks for the excellent bug report, your diagnosis was spot on.**

You were exactly right: the bridge was passing the `nodes`/`edges` payload straight through, but Homey’s `advancedflow` endpoint does not use nodes/edges. It stores an advanced flow as a `cards` map (the same structure `advanced_flows_get` returns), where each card carries its `ownerUri`, `id`, `type`, `args`, and its connections as output arrays on the source card. Because the payload had no `cards`, Homey accepted the flow but dropped the whole graph, hence the empty canvas.

**What changed in 2.2.7:**

- `advanced_flows_create` and `advanced_flows_update` now translate the node graph into Homey’s card structure: `ownerUri` is derived from the full card id, ports map to the right outputs (`output` to outputSuccess, `true`/`false` to outputTrue/outputFalse, `error` to outputError), `any`/`all` join nodes get their `input` arrays, and delay nodes keep their `delay` args.
- You can also pass a native `cards` object (exactly what `advanced_flows_get` returns) for a clean round-trip: get an example, tweak it, write it back.
- A `start` node type is now supported, so the AI can build advanced flows that are manually triggerable.
- Bonus, found while testing: triggering a flow (basic or advanced) used to fail with “Missing Scopes” because it went through the app’s own API token. It now uses the token session, like the writes. Same fix applied to reading/deleting notifications and restarting apps.

**Tips for building one with the AI:**

- For trigger/condition/action nodes, set `uri` to the FULL flowcard id, for example `homey:manager:notifications:create_notification` or `homey:device:<deviceId>:onoff_true`. The bridge derives `ownerUri`.
- Edges: `sourcePort` is `output` for triggers/actions, or `true`/`false` for conditions.
- Add a `start` node (no uri) if you want to trigger the flow on demand.

Verified end to end on a Homey Pro: the AI created an advanced flow (start node to a notification action), it triggered, and the notification showed up. Let me know how it works on your side.

---

<div class="post-metadata">

**Author:** ![Luke\_Vredeveld](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/luke_vredeveld/32/33899_2.png) [@Luke\_Vredeveld](https://community.homey.app/u/Luke_Vredeveld)\
**Post date:** [June 15, 2026, 7:04pm UTC](https://community.homey.app/t/app-pro-mcp-ai-bridge-talk-to-your-homey-with-claude-chatgpt-gemini-copilot-cursor-mistral-ollama-lm-studio-n8n-home-assistant-or-any-ai-also-from-telegram-and-whatsapp/155930/13 "2026-06-15T19:04:36Z")

</div>

Can confirm it can write advanced flows now! Great job done 👌

---

<div class="post-metadata">

**Author:** ![weide43](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/weide43/32/79186_2.png) [@weide43](https://community.homey.app/u/weide43)\
**Post date:** [June 18, 2026, 7:43am UTC](https://community.homey.app/t/app-pro-mcp-ai-bridge-talk-to-your-homey-with-claude-chatgpt-gemini-copilot-cursor-mistral-ollama-lm-studio-n8n-home-assistant-or-any-ai-also-from-telegram-and-whatsapp/155930/14 "2026-06-18T07:43:55Z")

</div>

@Luke_Vredeveld  
Just to show I haven’t been sitting still, here’s what landed in v2.2.8:

- Privileged actions now fall back to the token session when the app’s own permissions come up short, so writes no longer fail with a scopes error. This covers devices, zones, variables, notifications, presence, alarms, apps and system settings.
- Setting a capability now auto-corrects a wrong value type (for example the text `true` for an on/off switch) and retries, so those calls don’t fail anymore.
- New tool `devices_get_flowcards` returns the trigger, condition and action cards for a single device.
- New tool `advanced_flows_validate` dry-runs a flow graph and catches mistakes before the flow gets created.
- Flow-card lists now report when results were truncated, with limit/offset paging.
- The Connect tab automatically adds the Authorization header to the generated config when you’ve set an API key.
- New Commands tab with example questions you can ask your AI.
- Security: unknown discovery probes get a 404 instead of cluttering the security log, and API keys are now compared in constant time.

---

<div class="post-metadata">

**Author:** ![Luke\_Vredeveld](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/luke_vredeveld/32/33899_2.png) [@Luke\_Vredeveld](https://community.homey.app/u/Luke_Vredeveld)\
**Post date:** [June 19, 2026, 2:17pm UTC](https://community.homey.app/t/app-pro-mcp-ai-bridge-talk-to-your-homey-with-claude-chatgpt-gemini-copilot-cursor-mistral-ollama-lm-studio-n8n-home-assistant-or-any-ai-also-from-telegram-and-whatsapp/155930/15 "2026-06-19T14:17:43Z")

</div>

> [@weide43](#):
>
> ### Gemini (CLI)
> 
> 1. Edit `~/.gemini/settings.json`.
> 2. Add:
> 
> ```auto
> {
> "mcpServers": {
> "homey": {
> "httpUrl": "http://<homey-ip>:52199/mcp"
> }
> }
> }
> 
> ```
> 
> 1. Restart the Gemini CLI. Run `/mcp` to confirm the server and its tools are listed.
> 
> * * *
> 
> ###

This response was brought to you by Gemini 😄

Hi @weide43,

Thanks again for this awesome app!

Since Google has recently replaced gemini-cli with **antigravity-cli** ( antigravity / agy ), there are a few changes regarding the MCP server configuration that might be useful to update in the startup post for other Gemini users:

**### 1. New Config File Location**

The configuration file has moved.

• **Old (gemini-cli):** ~/.gemini/settings.json

• **New (antigravity-cli):** ~/.gemini/antigravity-cli/mcp\_config.json

**### 2. Config Key Change ( serverUrl vs httpUrl )**

antigravity uses the key “serverUrl” (or “url” ) for HTTP/SSE connections instead of “httpUrl” . If you use

httpUrl , the server won’t be discovered.

**### Updated Config Example for ~/.gemini/antigravity-cli/mcp\_config.json :**

```auto
{                                                                                                                

  "mcpServers": {                                                                                                

    "homey": {                                                                                                   

      "serverUrl": "http://<homey-ip>:52199/mcp"                                                                 

    }                                                                                                            

  }                                                                                                              

}                                                                                                                

```

_Or with an API key/token:_

```auto
{                                                                                                                

  "mcpServers": {                                                                                                

    "homey": {                                                                                                   

      "serverUrl": "http://<homey-ip>:52199/mcp",                                                                

      "headers": {                                                                                               

        "Authorization": "Bearer YOUR_API_KEY"                                                                   

      }                                                                                                          

    }                                                                                                            

  }                                                                                                              

}                                                                                                                

```

Once updated, restarting the CLI and running /mcp will reload the server and show the Homey tools successfully.

Hope this helps other users transitioning to the new CLI!

---

<div class="post-metadata">

**Author:** ![Luke\_Vredeveld](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/luke_vredeveld/32/33899_2.png) [@Luke\_Vredeveld](https://community.homey.app/u/Luke_Vredeveld)\
**Post date:** [June 19, 2026, 6:08pm UTC](https://community.homey.app/t/app-pro-mcp-ai-bridge-talk-to-your-homey-with-claude-chatgpt-gemini-copilot-cursor-mistral-ollama-lm-studio-n8n-home-assistant-or-any-ai-also-from-telegram-and-whatsapp/155930/16 "2026-06-19T18:08:50Z")

</div>

# How to Build an Autonomous Homey Pro Telegram AI Bot on a Synology NAS

Here’s how I built a personal, autonomous Telegram Bot powered by Google’s Gemini AI, connected to my Homey Pro with MCP-server, and hosted entirely on my Synology NAS via Docker.

## The Architecture

- **Homey Pro** : Runs the community app `MCP AI Bridge`, which exposes an unauthenticated local API on port `52199` for fetching device states and setting capabilities.
- **Google Gemini (2.5 Flash)**: Acts as the brain. It natively understands text and voice (multimodal) and has a massive context window to ingest the entire state of the house.
- **Synology NAS** : Runs the Node.js script via Docker (Container Manager) 24/7 without needing a laptop.
- **Telegram** : The user interface.

## Prerequisites

1. **Telegram Bot Token** : Request one from `@BotFather` on Telegram.
2. **Google Gemini API Key** : Generate a free key via Google AI Studio.
3. **Homey Pro IP** : Find your Homey’s local IP (e.g., `192.168.1.xxx`).

* * *

## The 3 Files You Need

Create a folder on your computer (e.g., `homey-telegram-bot`). You only need three simple files in this folder.

### 1. `docker-compose.yml`

_Lesson Learned:_ Synology’s Container Manager strongly prefers standard `docker-compose.yml` files over raw `Dockerfiles`. By using the official Node image and mounting our local directory, we avoid the need to build an image entirely.

```yaml
version: '3'
services:
  homey-telegram-bot:
    image: node:20-alpine
    container_name: homey-telegram-bot
    restart: unless-stopped
    working_dir: /app
    volumes:
      - .:/app
    command: sh -c "npm install && npm start"

```

### 2. `package.json`

_Lesson Learned:_ Always use `"latest"` for the `@google/generative-ai` SDK. Older versions (like 0.2.x) lack support for modern features like `responseMimeType`, which causes crash loops in the bot.

```json
{
  "name": "homey-telegram-bot",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  },
  "dependencies": {
    "@google/generative-ai": "latest",
    "telegraf": "latest"
  }
}

```

### 3. `index.js` (The Bot Logic)

_Lessons Learned:_

- **Markdown Stripping:** Even when instructed to return raw JSON, Gemini sometimes wraps its output in Markdown blocks (`json ... `), especially when processing voice input. Always strip markdown backticks before `JSON.parse()`.
- **Speaker Playback:** Models instinctively try to toggle speakers using the `onoff` capability. You must explicitly prompt it to use `speaker_playing`.
- **Volume Scaling:** If you ask for “volume 2”, the AI often calculates `2 / 10 = 0.20` (20%). Since Homey uses a strict `0.0` to `1.0` scale, explicitly instruct the model to treat user numbers as percentages out of 100.

````javascript
const { Telegraf } = require('telegraf');
const { GoogleGenerativeAI } = require('@google/generative-ai');

const TELEGRAM_TOKEN = 'YOUR_TELEGRAM_BOT_TOKEN_HERE';
const GEMINI_API_KEY = 'YOUR_GEMINI_API_KEY_HERE';
const HOMEY_IP = '192.168.1.XXX'; // e.g. 192.168.1.27

const bot = new Telegraf(TELEGRAM_TOKEN);
const genAI = new GoogleGenerativeAI(GEMINI_API_KEY);

const model = genAI.getGenerativeModel({
  model: 'gemini-2.5-flash',
  systemInstruction: `You are a virtual smarthome assistant.
When you receive a message (text or voice), decide if you need to control devices.
ALWAYS respond strictly with a JSON object. DO NOT return markdown.
Format:
{
  "response_text": "The answer to the user in Telegram (informal and helpful)",
  "actions": [
    {
      "url": "http://${HOMEY_IP}:52199/tools/devices_set_capability",
      "body": { "device_id": "ID", "capability": "CAPABILITY", "value": "VALUE (boolean, string, or number)" }
    }
  ]
}
Important rules:
- For volume_set, the scale is ALWAYS 0.0 to 1.0. If the user says a number (e.g., 2 or 20), divide it by 100 ("volume 2" = 0.02).
- For lights/plugs, use the capability "onoff" with true/false.
- For Sonos/Speakers to play/pause, use the capability "speaker_playing" with true/false.
- If no action is needed, leave the "actions" array empty: [].`
});

let deviceListCache = "";

// Pull live state of all devices on boot
async function updateDeviceList() {
    try {
        const res = await fetch(`http://${HOMEY_IP}:52199/tools/devices_get_all_states`, {
            method: "POST", headers: {"Content-Type": "application/json"}, body: "{}"
        });
        const data = await res.json();
        const resultObj = JSON.parse(data.result);
        
        let devicesFlat = [];
        for (const zone in resultObj) {
            devicesFlat.push(...resultObj[zone]);
        }
        
        deviceListCache = devicesFlat.map(d => {
            let caps = [];
            if (d.state) {
                for (const cap in d.state) {
                    caps.push(`${cap}: ${d.state[cap].value}`);
                }
            }
            return `Name: ${d.name}, ID: ${d.id}, Status: [${caps.join(", ")}]`;
        }).join("\n");
        console.log("Device list (with live states) loaded!");
    } catch(e) {
        console.error("Failed to load devices:", e.message);
    }
}

updateDeviceList();

// Listen to text and voice notes
bot.on(['text', 'voice'], async (ctx) => {
    try {
        await ctx.sendChatAction('typing');
        const parts = [];
        
        if (ctx.message.voice) {
            console.log("[Voice message received]");
            const fileLink = await ctx.telegram.getFileLink(ctx.message.voice.file_id);
            const audioResponse = await fetch(fileLink.href);
            const arrayBuffer = await audioResponse.arrayBuffer();
            const base64Audio = Buffer.from(arrayBuffer).toString('base64');
            
            parts.push({
                inlineData: {
                    mimeType: ctx.message.voice.mime_type || 'audio/ogg',
                    data: base64Audio
                }
            });
            parts.push({ text: `Device list:\n${deviceListCache}\n\nThe user sent this voice note. What are they asking? Output JSON:` });
        } 
        else if (ctx.message.text) {
            console.log(`Received text: "${ctx.message.text}"`);
            parts.push({ text: `Device list:\n${deviceListCache}\n\nThe user says: "${ctx.message.text}"\nOutput JSON:` });
        } else {
            return;
        }

        const result = await model.generateContent({
            contents: [{ role: 'user', parts: parts }]
        });
        
        // Strip markdown backticks to prevent JSON.parse crashes
        let rawText = result.response.text();
        rawText = rawText.replace(/```json/gi, '').replace(/```/g, '').trim();
        const responseJson = JSON.parse(rawText);
        
        // Execute Homey commands
        if (responseJson.actions && responseJson.actions.length > 0) {
            for (const action of responseJson.actions) {
                console.log("Executing Homey action:", action.body);
                await fetch(action.url, {
                    method: "POST",
                    headers: { "Content-Type": "application/json" },
                    body: JSON.stringify(action.body)
                });
            }
        }

        await ctx.reply(responseJson.response_text);

    } catch (error) {
        console.error("Error:", error);
        await ctx.reply("Sorry, something went wrong internally!");
    }
});

bot.launch().then(() => console.log('Telegram Bot running!'));
process.once('SIGINT', () => bot.stop('SIGINT'));
process.once('SIGTERM', () => bot.stop('SIGTERM'));

````

## Deployment on Synology

_Important Lesson:_ Do not use the “Import” button under the “Images” tab for text files. Synology expects a compressed `.tar` file there, not a script.

You have two options depending on your Synology version:

**Option A: Using Container Manager (DSM 7.2+)**

1. Copy the folder containing these three files to your Synology NAS (e.g., into your `/docker` shared folder).
2. Open **Container Manager**.
3. Go to **Projects** → **Create**.
4. Name it `homey-bot`, set the Path to your copied folder, and follow the wizard. It will automatically read the `docker-compose.yml`.

**Option B: Using the older Docker GUI (DSM 6 / 7.1)**  
If you don’t have “Projects” or the YAML file throws an invalid format error:

1. Delete the `docker-compose.yml` (you only need `index.js` and `package.json`).
2. Go to **Registry** , search for `node`, and download the `20-alpine` or `latest` tag.
3. Go to **Images** , select the Node image, and click **Launch/Run**.
4. **Volume Settings** : Mount your NAS folder `/docker/homey-telegram-bot` to the path `/app` inside the container.
5. **Environment/Command** : In the Execution Command field, type: `sh -c "cd /app && npm install && npm start"`.
6. Start the container.

Enjoy your entirely local, highly autonomous AI smarthome butler!

---

<div class="post-metadata">

**Author:** ![Mariomark1541](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/mariomark1541/32/178160_2.png) [@Mariomark1541](https://community.homey.app/u/Mariomark1541)\
**Post date:** [June 20, 2026, 6:56am UTC](https://community.homey.app/t/app-pro-mcp-ai-bridge-talk-to-your-homey-with-claude-chatgpt-gemini-copilot-cursor-mistral-ollama-lm-studio-n8n-home-assistant-or-any-ai-also-from-telegram-and-whatsapp/155930/17 "2026-06-20T06:56:45Z")

</div>

Which do you actually prefer, Gemini Claude ChatGPT? Which works better, or is there not much difference in practice?

---

<div class="post-metadata">

**Author:** ![Mariomark1541](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/mariomark1541/32/178160_2.png) [@Mariomark1541](https://community.homey.app/u/Mariomark1541)\
**Post date:** [June 20, 2026, 4:36pm UTC](https://community.homey.app/t/app-pro-mcp-ai-bridge-talk-to-your-homey-with-claude-chatgpt-gemini-copilot-cursor-mistral-ollama-lm-studio-n8n-home-assistant-or-any-ai-also-from-telegram-and-whatsapp/155930/18 "2026-06-20T16:36:08Z")

</div>

@weide43 Io now see me Gemini Clio at connections but if I ask something via Gemini nothing happens what am I doing wrong

---

<div class="post-metadata">

**Author:** ![Mariomark1541](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/mariomark1541/32/178160_2.png) [@Mariomark1541](https://community.homey.app/u/Mariomark1541)\
**Post date:** [June 20, 2026, 7:33pm UTC](https://community.homey.app/t/app-pro-mcp-ai-bridge-talk-to-your-homey-with-claude-chatgpt-gemini-copilot-cursor-mistral-ollama-lm-studio-n8n-home-assistant-or-any-ai-also-from-telegram-and-whatsapp/155930/19 "2026-06-20T19:33:58Z")

</div>

Can you ask telegram for making flows or whatever

---

<div class="post-metadata">

**Author:** ![Luke\_Vredeveld](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/luke_vredeveld/32/33899_2.png) [@Luke\_Vredeveld](https://community.homey.app/u/Luke_Vredeveld)\
**Post date:** [June 21, 2026, 10:31am UTC](https://community.homey.app/t/app-pro-mcp-ai-bridge-talk-to-your-homey-with-claude-chatgpt-gemini-copilot-cursor-mistral-ollama-lm-studio-n8n-home-assistant-or-any-ai-also-from-telegram-and-whatsapp/155930/20 "2026-06-21T10:31:35Z")

</div>

no, with the telegram bot you cannot make flows. It can tell you the status of your devices and change them.

---

<div class="post-metadata">

**Author:** ![Luke\_Vredeveld](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/luke_vredeveld/32/33899_2.png) [@Luke\_Vredeveld](https://community.homey.app/u/Luke_Vredeveld)\
**Post date:** [June 21, 2026, 10:32am UTC](https://community.homey.app/t/app-pro-mcp-ai-bridge-talk-to-your-homey-with-claude-chatgpt-gemini-copilot-cursor-mistral-ollama-lm-studio-n8n-home-assistant-or-any-ai-also-from-telegram-and-whatsapp/155930/21 "2026-06-21T10:32:34Z")

</div>

Did you install antigravity instead of gemini-cli? See my post

[Next page](https://community.homey.app/t/app-pro-mcp-ai-bridge-talk-to-your-homey-with-claude-chatgpt-gemini-copilot-cursor-mistral-ollama-lm-studio-n8n-home-assistant-or-any-ai-also-from-telegram-and-whatsapp/155930.md?page=2)
