# Mcp-homey

**URL:** <https://community.homey.app/t/mcp-homey/137994>\
**Category:** Developers\
**Tags:** homey-pro\
**Created:** [June 11, 2025, 8:43am UTC](https://community.homey.app/t/mcp-homey/137994 "2025-06-11T08:43:13Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![Domotica-blog.nl](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/domotica-blog.nl/32/69291_2.png) [@Domotica-blog.nl](https://community.homey.app/u/Domotica-blog.nl)\
**Post date:** [September 18, 2025, 7:54am UTC](https://community.homey.app/t/mcp-homey/137994/23 "2025-09-18T07:54:04Z")

</div>

Nice work! Thanks.

Would be nice if Homey makes this part of there “core” so we get a web end point and can connect it to [make.com](http://make.com) of n8n.

---

<div class="post-metadata">

**Author:** ![lucverd](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/lucverd/32/140642_2.png) [@lucverd](https://community.homey.app/u/lucverd)\
**Post date:** [September 23, 2025, 8:22am UTC](https://community.homey.app/t/mcp-homey/137994/24 "2025-09-23T08:22:31Z")

</div>

Hey everyone! 👋

I’ve built an **alternative approach** - a Homey App that runs the MCP server directly on the Homey Pro.

**Key benefits:**

- Install as regular Homey app

- Direct connection: `http://YOUR_HOMEY_IP/api/app/com.homey.mcp-server/mcp`

- Uses standard Homey Bearer Token auth

Would you like to test this app-based approach?

Currently working great in my setup - just want to gauge interest before finalizing!

---

<div class="post-metadata">

**Author:** ![Domotica-blog.nl](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/domotica-blog.nl/32/69291_2.png) [@Domotica-blog.nl](https://community.homey.app/u/Domotica-blog.nl)\
**Post date:** [September 23, 2025, 10:43am UTC](https://community.homey.app/t/mcp-homey/137994/25 "2025-09-23T10:43:21Z")

</div>

Yeah, that would be great!

---

<div class="post-metadata">

**Author:** ![4x4\_Pete](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/4x4_pete/32/113286_2.png) [@4x4\_Pete](https://community.homey.app/u/4x4_Pete)\
**Post date:** [September 27, 2025, 11:09am UTC](https://community.homey.app/t/mcp-homey/137994/26 "2025-09-27T11:09:43Z")

</div>

Yes! Highly interested! 👍

---

<div class="post-metadata">

**Author:** ![lucverd](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/lucverd/32/140642_2.png) [@lucverd](https://community.homey.app/u/lucverd)\
**Post date:** [October 2, 2025, 1:14pm UTC](https://community.homey.app/t/mcp-homey/137994/27 "2025-10-02T13:14:03Z")

</div>

I’ve published my working **Homey Pro App** POC on GitHub: **[https://github.com/verdier/homey-mcp-server](https://github.com/verdier/homey-mcp-server)**

**What’s working:**

- Device control & querying

- Zone management

- Flow listing & info

**Known limitation:** Flow triggering currently blocked by API scope restrictions…

It’s a proof of concept that works well in my setup. Feel free to test, adapt to your needs, or contribute improvements!

**Question** : Anyone know a workaround for the flow triggering limitation? Looks like it’s not possible to trigger a flow from an app…

Feedback appreciated! 🙏

---

<div class="post-metadata">

**Author:** ![4x4\_Pete](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/4x4_pete/32/113286_2.png) [@4x4\_Pete](https://community.homey.app/u/4x4_Pete)\
**Post date:** [October 7, 2025, 11:45pm UTC](https://community.homey.app/t/mcp-homey/137994/28 "2025-10-07T23:45:51Z")

</div>

Hi @lucverd  
Got the server running inside Homey Pro but the curl test just returns the “Bad Request” error page.  
Shouldn´t the API key be configured in the MCP server or ist just sending it in the request sufficient?

Otherwise no idea, what may be wrong…

---

<div class="post-metadata">

**Author:** ![lucverd](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/lucverd/32/140642_2.png) [@lucverd](https://community.homey.app/u/lucverd)\
**Post date:** [October 8, 2025, 8:33am UTC](https://community.homey.app/t/mcp-homey/137994/29 "2025-10-08T08:33:06Z")

</div>

As explained in the readme, the token must be sent with the HTTP request. It is required to authenticate the request and access the app’s HTTP route. Be sure that your API token has at least the homey.app r/w permission.

I’ll add some logging if the problem persist.

---

<div class="post-metadata">

**Author:** ![4x4\_Pete](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/4x4_pete/32/113286_2.png) [@4x4\_Pete](https://community.homey.app/u/4x4_Pete)\
**Post date:** [October 8, 2025, 9:35am UTC](https://community.homey.app/t/mcp-homey/137994/30 "2025-10-08T09:35:17Z")

</div>

Curl looks like this:

`curl -X POST -H “Authorization: Bearer af8ba2dd-......1cdc” -H “Content-Type: application/json” -d ‘{“jsonrpc”:“2.0”,“method”:“initialize”,“id”:1}’ "http://192.168.x.xx/api/app/com.verdier.mcp-server/mcp`"

When creating the API token, all boxes were checked.

---

<div class="post-metadata">

**Author:** ![Lukasz\_Kostek](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/lukasz_kostek/32/92389_2.png) [@Lukasz\_Kostek](https://community.homey.app/u/Lukasz_Kostek)\
**Post date:** [October 13, 2025, 9:35pm UTC](https://community.homey.app/t/mcp-homey/137994/31 "2025-10-13T21:35:22Z")

</div>

Hi,

I have this information from curl {“jsonrpc”:“2.0”,“id”:1,“result”:{“protocolVersion”:“2024-11-05”,“capabilities”:{“tools”:{}},“serverInfo”:{“name”:“homey-mcp-server”,“version”:“1.0.0”}}} **%**

I installed Your app on Homey by CLI method. I have node js. I created API token with all boxes checked. Configured config file of Claude with my IP and TOKEN but whet I try some command Claude saying “I don’t have access to information about your bedroom’s temperature. I can’t connect to smart home devices, thermostats, or sensors in your space.”

When I write [http://192.168.18.75/api/app/com.verdier.mcp-server/mcp](http://192.168.18.75/api/app/com.verdier.mcp-server/mcp) in my web browser I get - Cannot GET /api/app/com.verdier.mcp-server/mcp

But when I Turn OFF Homey MCP Server I get - {“error”:“App Not Ready”,“error\_description”:“App Not Ready”,“stack”:“Error: App Not Ready\n at file:///app/lib/Server.mjs:585:27\n at process.processTicksAndRejections (node:internal/process/task\_queues:95:5)”,“statusCode”:503,“statusName”:“HomeyErrorServiceUnavailable”}

EIDT: Now I saw there is error when I turn on Claude

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/0/a/0a6e7a9109d9e7d2427570e96829e273c95c573e.jpeg)

When I write servers and not mcpServers there is no error when starting Claude but it doesn’t recognize my Homey

Any idea what am I doing wrong?

Best regards

---

<div class="post-metadata">

**Author:** ![lucverd](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/lucverd/32/140642_2.png) [@lucverd](https://community.homey.app/u/lucverd)\
**Post date:** [October 14, 2025, 10:15am UTC](https://community.homey.app/t/mcp-homey/137994/32 "2025-10-14T10:15:15Z")

</div>

@Lukasz_Kostek, @4x4_Pete

I was using my MCP server exclusively with VS Code. Since Claude Desktop does not support HTTP-based servers directly (at this time), you must update your configuration as detailed in the updated project README.

---

<div class="post-metadata">

**Author:** ![Lukasz\_Kostek](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/lukasz_kostek/32/92389_2.png) [@Lukasz\_Kostek](https://community.homey.app/u/Lukasz_Kostek)\
**Post date:** [October 14, 2025, 10:31am UTC](https://community.homey.app/t/mcp-homey/137994/33 "2025-10-14T10:31:14Z")

</div>

Thx for info,

It is a little better. Claude see server but there is connection error:

-y mcp-remote [http://192.168.18.75/api/app/com.verdier.mcp-server/mcp](http://192.168.18.75/api/app/com.verdier.mcp-server/mcp) --allow-http --header Authorization:Bearer fa18647f-9a5a-4063-ae59-c45012975014:cd946ae8-aa31-4625-8a96-511eaa2167aa:a11xxxxxxxxx

### **Error**

Server disconnected

LOG:

2025-10-14 12:31:34 [warn] WARN [Statsig] Failed to flush events.  
2025-10-14 12:31:42 [error] ERROR [Statsig] A networking error occurred during POST request to [https://statsig.anthropic.com/v1/rgstr?k=client-U9UUxwLKFe7SJXyDnolyBR2xZtEP8m1pN2uptqkJ5qP&st=javascript-client-react&sv=3.12.1&t=1760437902890&sid=f86bdd23-d774-46fb-a84](https://statsig.anthropic.com/v1/rgstr?k=client-U9UUxwLKFe7SJXyDnolyBR2xZtEP8m1pN2uptqkJ5qP&st=javascript-client-react&sv=3.12.1&t=1760437902890&sid=f86bdd23-d774-46fb-a84). TypeError: Failed to fetch TypeError: Failed to fetch  
2025-10-14 12:31:42 [warn] WARN [Statsig] Failed to flush events.

025-10-14T10:28:41.259Z [homey] [info] Initializing server… { metadata: undefined }  
2025-10-14T10:28:41.264Z [homey] [info] Using MCP server command: /usr/local/bin/npx with args and path: {  
metadata: {  
args: [  
‘-y’,  
‘mcp-remote’,  
‘[http://192.168.18.75/api/app/com.verdier.mcp-server/mcp’](http://192.168.18.75/api/app/com.verdier.mcp-server/mcp%E2%80%99),  
‘–allow-http’,  
‘–header’,  
‘Authorization:Bearer fa18647f-9a5a-4063-ae59-c45012975014:cd946ae8-aa31-4625-8a96-511eaa2167aa:a11exxxxxx’,  
[length]: 6  
],  
paths: [  
‘/usr/local/bin’,  
‘/usr/bin’,  
‘/usr/bin’,  
‘/bin’,  
‘/usr/sbin’,  
‘/sbin’,  
[length]: 6  
]  
}  
} %o  
2025-10-14T10:28:41.266Z [homey] [info] Server started and connected successfully { metadata: undefined }  
2025-10-14T10:28:41.298Z [homey] [info] Message from client: {“method”:“initialize”,“params”:{“protocolVersion”:“2025-06-18”,“capabilities”:{},“clientInfo”:{“name”:“claude-ai”,“version”:“0.1.0”}},“jsonrpc”:“2.0”,“id”:0} { metadata: undefined }  
npm error code EEXIST  
npm error syscall mkdir  
npm error path /Users/lukcinek/.npm/\_cacache/content-v2/sha512/ee/fc  
npm error errno EEXIST  
npm error Invalid response body while trying to fetch [https://registry.npmjs.org/strict-url-sanitise:](https://registry.npmjs.org/strict-url-sanitise:) EACCES: permission denied, mkdir ‘/Users/lukcinek/.npm/\_cacache/content-v2/sha512/ee/fc’  
npm error File exists: /Users/lukcinek/.npm/\_cacache/content-v2/sha512/ee/fc  
npm error Remove the existing file and try again, or run npm  
npm error with --force to overwrite files recklessly.  
npm error A complete log of this run can be found in: /Users/lukcinek/.npm/\_logs/2025-10-14T10\_28\_41\_534Z-debug-0.log  
2025-10-14T10:28:45.177Z [homey] [info] Server transport closed { metadata: undefined }  
2025-10-14T10:28:45.178Z [homey] [info] Client transport closed { metadata: undefined }  
2025-10-14T10:28:45.178Z [homey] [info] Server transport closed unexpectedly, this is likely due to the process exiting early. If you are developing this MCP server you can add output to stderr (i.e. `console.error('...')` in JavaScript, `print('...', file=sys.stderr)` in python) and it will appear in this log. { metadata: undefined }  
2025-10-14T10:28:45.178Z [homey] [error] Server disconnected. For troubleshooting guidance, please visit our [debugging documentation](https://modelcontextprotocol.io/docs/tools/debugging) { metadata: { context: ‘connection’, stack: undefined } }  
2025-10-14T10:28:45.179Z [homey] [info] Client transport closed { metadata: undefined }  
2025-10-14T10:31:21.776Z [homey] [info] Client transport closed { metadata: undefined }  
2025-10-14T10:31:21.776Z [homey] [info] Shutting down server… { metadata: undefined }  
2025-10-14T10:31:27.194Z [homey] [info] Initializing server… { metadata: undefined }  
2025-10-14T10:31:27.200Z [homey] [info] Using MCP server command: /usr/local/bin/npx with args and path: {  
metadata: {  
args: [  
‘-y’,  
‘mcp-remote’,  
‘[http://192.168.18.75/api/app/com.verdier.mcp-server/mcp’](http://192.168.18.75/api/app/com.verdier.mcp-server/mcp%E2%80%99),  
‘–allow-http’,  
‘–header’,  
‘Authorization:Bearer fa18647f-9a5a-4063-ae59-c45012975014:cd946ae8-aa31-4625-8a96-511eaa2167aa:a11e05a84b5ba68c4b7295ed0xxxxxxx’,  
[length]: 6  
],  
paths: [  
‘/usr/local/bin’,  
‘/usr/bin’,  
‘/usr/bin’,  
‘/bin’,  
‘/usr/sbin’,  
‘/sbin’,  
[length]: 6  
]  
}  
} %o  
2025-10-14T10:31:27.203Z [homey] [info] Server started and connected successfully { metadata: undefined }  
2025-10-14T10:31:27.237Z [homey] [info] Message from client: {“method”:“initialize”,“params”:{“protocolVersion”:“2025-06-18”,“capabilities”:{},“clientInfo”:{“name”:“claude-ai”,“version”:“0.1.0”}},“jsonrpc”:“2.0”,“id”:0} { metadata: undefined }  
npm error code EEXIST  
npm error syscall mkdir  
npm error path /Users/lukcinek/.npm/\_cacache/content-v2/sha512/ee/fc  
npm error errno EEXIST  
npm error Invalid response body while trying to fetch [https://registry.npmjs.org/strict-url-sanitise:](https://registry.npmjs.org/strict-url-sanitise:) EACCES: permission denied, mkdir ‘/Users/lukcinek/.npm/\_cacache/content-v2/sha512/ee/fc’  
npm error File exists: /Users/lukcinek/.npm/\_cacache/content-v2/sha512/ee/fc  
npm error Remove the existing file and try again, or run npm  
npm error with --force to overwrite files recklessly.  
npm error A complete log of this run can be found in: /Users/lukcinek/.npm/\_logs/2025-10-14T10\_31\_27\_411Z-debug-0.log  
2025-10-14T10:31:28.459Z [homey] [info] Server transport closed { metadata: undefined }  
2025-10-14T10:31:28.459Z [homey] [info] Client transport closed { metadata: undefined }  
2025-10-14T10:31:28.459Z [homey] [info] Server transport closed unexpectedly, this is likely due to the process exiting early. If you are developing this MCP server you can add output to stderr (i.e. `console.error('...')` in JavaScript, `print('...', file=sys.stderr)` in python) and it will appear in this log. { metadata: undefined }  
2025-10-14T10:31:28.459Z [homey] [error] Server disconnected. For troubleshooting guidance, please visit our [debugging documentation](https://modelcontextprotocol.io/docs/tools/debugging) { metadata: { context: ‘connection’, stack: undefined } }  
2025-10-14T10:31:28.460Z [homey] [info] Client transport closed { metadata: undefined }

---

<div class="post-metadata">

**Author:** ![Lukasz\_Kostek](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/lukasz_kostek/32/92389_2.png) [@Lukasz\_Kostek](https://community.homey.app/u/Lukasz_Kostek)\
**Post date:** [October 14, 2025, 10:48am UTC](https://community.homey.app/t/mcp-homey/137994/34 "2025-10-14T10:48:10Z")

</div>

Hello once again,

I delated files from /Users/lukcinek/.npm/ and everything is running ok now

EDIT: Serwer is running but I can’t do anything with my Homey:

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/2/1/21f711319f8da51598d832b9ade917ed5ea7e57e.png)

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/7/a/7aaa8924b3bba33c75861e2f47adeccf897a698d.png)

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/9/c/9c9bf775e1238101402847adc3fc89e17616db9f.png)

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/d/6/d69cd5d682374706bb3cab94fc5593b9bb281ba4.png)

---

<div class="post-metadata">

**Author:** ![Lukasz\_Kostek](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/lukasz_kostek/32/92389_2.png) [@Lukasz\_Kostek](https://community.homey.app/u/Lukasz_Kostek)\
**Post date:** [October 14, 2025, 11:17am UTC](https://community.homey.app/t/mcp-homey/137994/35 "2025-10-14T11:17:33Z")

</div>

When I turn off Homey MCP server Claude try to obtain some information but there is no answer at all (server is shut off).

When Server is turn On on Homey there is error with connection (permission)

I have checked all boxes in API Token:

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/b/5/b5ed51244f40fe82ac0e61ccb5406583a55fa360.png)

I don’t know what can I do more?

Best regards and thank You for answer

---

<div class="post-metadata">

**Author:** ![4x4\_Pete](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/4x4_pete/32/113286_2.png) [@4x4\_Pete](https://community.homey.app/u/4x4_Pete)\
**Post date:** [October 14, 2025, 1:43pm UTC](https://community.homey.app/t/mcp-homey/137994/36 "2025-10-14T13:43:31Z")

</div>

Hi @lucverd

I am still having the problem, that the curl test responds with a “Bad Request” error. The curl request contains the correct API token and when creating this token all boxes were checked. - So I think, some logging would be great as suggested by you.

I have not tried to connect to Claude yet, because I thought that the basic verification test should pass first. - Or do you see any chance, the Claude integration would work even though?

---

<div class="post-metadata">

**Author:** ![Allister\_Antosik](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/allister_antosik/32/121285_2.png) [@Allister\_Antosik](https://community.homey.app/u/Allister_Antosik)\
**Post date:** [October 15, 2025, 11:41am UTC](https://community.homey.app/t/mcp-homey/137994/37 "2025-10-15T11:41:20Z")

</div>

Hi,

I have also been working on a MCP Server with the help of claude. Seems to work for all my needs, maybe there is some logic you can take:

> **[GitHub - allistera/homey-mcp-server: MCP. for Homey](https://github.com/allistera/homey-mcp-server)**
>
> MCP. for Homey

---

<div class="post-metadata">

**Author:** ![Lukasz\_Kostek](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/lukasz_kostek/32/92389_2.png) [@Lukasz\_Kostek](https://community.homey.app/u/Lukasz_Kostek)\
**Post date:** [October 16, 2025, 12:13pm UTC](https://community.homey.app/t/mcp-homey/137994/38 "2025-10-16T12:13:13Z")

</div>

It doesn’t work for me:

lukcinek@Macbook-Air-M3 homey-mcp-server % npm run build

\> mcp-server-homey@0.1.0 build

\> tsc

src/index.ts:10:26 - error TS7016: Could not find a declaration file for module ‘homey-api’. ‘/Users/lukcinek/homey-mcp-server/node\_modules/homey-api/index.js’ implicitly has an ‘any’ type.

Try `npm i --save-dev @types/homey-api` if it exists or add a new declaration (.d.ts) file containing `declare module ‘homey-api’;`

10 import { HomeyAPI } from ‘homey-api’;

```
                      \~\~\~\~\~\~\~\~\~\~\~

```

---

<div class="post-metadata">

**Author:** ![Allister\_Antosik](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/allister_antosik/32/121285_2.png) [@Allister\_Antosik](https://community.homey.app/u/Allister_Antosik)\
**Post date:** [October 16, 2025, 12:36pm UTC](https://community.homey.app/t/mcp-homey/137994/39 "2025-10-16T12:36:12Z")

</div>

Hi

If you pull down the latest change and try now.

Thanks

---

<div class="post-metadata">

**Author:** ![Lukasz\_Kostek](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/lukasz_kostek/32/92389_2.png) [@Lukasz\_Kostek](https://community.homey.app/u/Lukasz_Kostek)\
**Post date:** [October 16, 2025, 12:59pm UTC](https://community.homey.app/t/mcp-homey/137994/40 "2025-10-16T12:59:31Z")

</div>

Everything seems to work but there is error on Claude:

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/5/d/5d2126d48d6030b7ddb403e1cc6809cd4d487789.png)

---

<div class="post-metadata">

**Author:** ![Allister\_Antosik](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/allister_antosik/32/121285_2.png) [@Allister\_Antosik](https://community.homey.app/u/Allister_Antosik)\
**Post date:** [October 16, 2025, 1:11pm UTC](https://community.homey.app/t/mcp-homey/137994/42 "2025-10-16T13:11:01Z")

</div>

What does your claude config look like? You will need to update it to point to the full path of the index.js

​

---

<div class="post-metadata">

**Author:** ![Lukasz\_Kostek](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/lukasz_kostek/32/92389_2.png) [@Lukasz\_Kostek](https://community.homey.app/u/Lukasz_Kostek)\
**Post date:** [October 16, 2025, 1:13pm UTC](https://community.homey.app/t/mcp-homey/137994/44 "2025-10-16T13:13:10Z")

</div>

![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/d/8/d84d63f7320ea62dc73d13e1fa6d83e0a2496677.png)

[Previous page](https://community.homey.app/t/mcp-homey/137994.md?page=1)

[Next page](https://community.homey.app/t/mcp-homey/137994.md?page=3)
