How I built a self-maintaining Homey documentation system with Claude

Great. I’ll get Claude. Would it work initially on the free tier, or would I need to sign up for Pro?

I was clicking on the App link on my Mac. I tried to search for it on my iPhone and got “No results”. Clicked on the link above using my iPad and it worked. The App is now installed.

Do I need to do anything in the App to get the initial viewer working? e.g. http://192.168.0.73:8734

Does it make any difference if I have Port Forwarding turned on?

I get “This site can’t be reached” - Chrome

UPDATE: Apologies. Worked on my iPad but not on my Mac. Using Safari on my Mac I get “Cannot GET /8734/”

Here is what Claude told me.

The app is working perfectly — curl got a full HTML response. The problem is purely that Chrome and Safari on Mac are blocking plain http:// to local addresses for security reasons.

Since curl works, the simplest fix is Firefox. It handles local http:// addresses without complaint. Just download it from firefox.com if you don’t have it, and paste in http://192.168.0.73:8734/ — it should load straight away.

Alternatively, looking at the page source that came back, I can see this is the Homey cross-reference index — a really nice looking app showing all your Homey variables, flows, BLL variables and more. It even has a Setup button for connecting it to Claude Desktop via MCP, which given your interest in Claude could be very handy!

Anyone else have this issue with Safari or Chrome?

Another update. I’m getting MCP Homey server disconnected. Could not attach to MCP server homey.

Claudes summary : The server is healthy and responding correctly

  • A proper MCP initialize request works perfectly when the Accept: application/json, text/event-stream header is included
  • mcp-remote is failing with Unexpected content type: null, suggesting it’s not sending that Accept header correctly

That’s a very specific and actionable bug report — the developer should be able to fix it quickly.

Config file:

{
“mcpServers”: {
“homey”: {
“command”: “npx”,
“args”: [
“-y”,
“mcp-remote”,
“``http://192.168.0.73:8735/mcp”``,
“–allow-http”
],
“env”: {
“PATH”: “/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin”
}
}
},
“preferences”: {
“remoteToolsDeviceName”: “mac-2-modem”,
“coworkWebSearchEnabled”: true,
“coworkScheduledTasksEnabled”: false,
“ccdScheduledTasksEnabled”: false,
“coworkModelAutoFallbackByAccount”: {
“5c8ac489-af47-4548-b1ac-918e0ab0efe6”: true
},
“bypassPermissionsGateByAccount”: {
“5c8ac489-af47-4548-b1ac-918e0ab0efe6”: false
},
“epitaxyPrefs”: {
“starred-local-code-sessions”: ,
“starred-cowork-spaces”: ,
“starred-session-groups”: ,
“dframe-local-slice”: {
“pinnedOrder”: ,
“customGroupAssignments”: {},
“customGroupOrder”: {}
}
}
},
“coworkUserFilesPath”: “/Users/peterbittner/Claude”
}

Log File:



2026-06-04T06:23:13.492Z [homey] [info] Initializing server… { metadata: undefined }
2026-06-04T06:23:13.503Z [homey] [info] Using MCP server command: /opt/homebrew/bin/npx with args and path: {
metadata: {
args: [
‘-y’,
‘mcp-remote’,
‘http://192.168.0.73:8735/mcp’,
‘–allow-http’,
[length]: 4
],
paths: [
‘/opt/homebrew/bin’,
‘/opt/homebrew/sbin’,
‘/usr/local/bin’,
‘/System/Cryptexes/App/usr/bin’,
‘/usr/bin’,
‘/bin’,
‘/usr/sbin’,
‘/sbin’,
‘/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin’,
‘/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin’,
‘/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin’,
‘/pkg/env/global/bin’,
[length]: 12
]
}
} %o
2026-06-04T06:23:13.504Z [homey] [info] Server started and connected successfully { metadata: undefined }
2026-06-04T06:23:13.518Z [homey] [info] Message from client: {“method”:“initialize”,“params”:{“protocolVersion”:“2025-11-25”,“capabilities”:{“extensions”:{“io.modelcontextprotocol/ui”:{“mimeTypes”:[“text/html;profile=mcp-app”]}}},“clientInfo”:{“name”:“claude-ai”,“version”:“0.1.0”}},“jsonrpc”:“2.0”,“id”:0} { metadata: undefined }
[18399] Using automatically selected callback port: 34887
[18399] Discovering OAuth server configuration…
[18399] [18399] Connecting to remote server: http://192.168.0.73:8735/mcp
[18399] Using transport strategy: http-first
[18399] Connection error: [TypeError: fetch failed] {
[cause]: Error: connect EHOSTUNREACH 192.168.0.73:8735 - Local (192.168.0.184:58499)
at internalConnect (node:net:1169:16)
at defaultTriggerAsyncIdScope (node:internal/async_hooks:473:12)
at node:net:1415:9
at process.processTicksAndRejections (node:internal/process/task_queues:85:11) {
errno: -65,
code: ‘EHOSTUNREACH’,
syscall: ‘connect’,
address: ‘192.168.0.73’,
port: 8735
}
}
[18399] Fatal error: [TypeError: fetch failed] {
[cause]: Error: connect EHOSTUNREACH 192.168.0.73:8735 - Local (192.168.0.184:58499)
at internalConnect (node:net:1169:16)
at defaultTriggerAsyncIdScope (node:internal/async_hooks:473:12)
at node:net:1415:9
at process.processTicksAndRejections (node:internal/process/task_queues:85:11) {
errno: -65,
code: ‘EHOSTUNREACH’,
syscall: ‘connect’,
address: ‘192.168.0.73’,
port: 8735
}
}
2026-06-04T06:23:14.416Z [homey] [info] Server transport closed { metadata: undefined }
2026-06-04T06:23:14.416Z [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 }
2026-06-04T06:23:14.416Z [homey] [error] Server disconnected. For troubleshooting guidance, please visit our debugging documentation { metadata: { context: ‘connection’, stack: undefined } }
2026-06-04T06:23:14.416Z [homey] [info] Client transport closed { metadata: undefined }
2026-06-04T06:23:14.416Z [homey] [info] Client transport closed { metadata: undefined }
2026-06-04T06:32:57.465Z [homey] [info] Shutting down server… { metadata: undefined }
2026-06-04T06:32:57.466Z [homey] [info] Client transport closed { metadata: undefined }
2026-06-04T06:33:38.980Z [homey] [info] Initializing server… { metadata: undefined }
2026-06-04T06:33:38.991Z [homey] [info] Using MCP server command: /opt/homebrew/bin/npx with args and path: {
metadata: {
args: [
‘-y’,
‘mcp-remote’,
‘http://192.168.0.73:8735/mcp’,
‘–allow-http’,
[length]: 4
],
paths: [
‘/opt/homebrew/bin’,
‘/opt/homebrew/sbin’,
‘/usr/local/bin’,
‘/System/Cryptexes/App/usr/bin’,
‘/usr/bin’,
‘/bin’,
‘/usr/sbin’,
‘/sbin’,
‘/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin’,
‘/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin’,
‘/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin’,
‘/pkg/env/global/bin’,
[length]: 12
]
}
} %o
2026-06-04T06:33:38.991Z [homey] [info] Server started and connected successfully { metadata: undefined }
2026-06-04T06:33:39.021Z [homey] [info] Message from client: {“method”:“initialize”,“params”:{“protocolVersion”:“2025-11-25”,“capabilities”:{“extensions”:{“io.modelcontextprotocol/ui”:{“mimeTypes”:[“text/html;profile=mcp-app”]}}},“clientInfo”:{“name”:“claude-ai”,“version”:“0.1.0”}},“jsonrpc”:“2.0”,“id”:0} { metadata: undefined }
[18558] Using automatically selected callback port: 34887
[18558] Discovering OAuth server configuration…
[18558] [18558] Connecting to remote server: http://192.168.0.73:8735/mcp
[18558] Using transport strategy: http-first
[18558] Connection error: StreamableHTTPError: Streamable HTTP error: Unexpected content type: null
at StreamableHTTPClientTransport.send (file:///opt/homebrew/lib/node_modules/mcp-remote/dist/chunk-65X3S4HB.js:19922:17)
at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
code: -1
}
[18558] Fatal error: StreamableHTTPError: Streamable HTTP error: Unexpected content type: null
at StreamableHTTPClientTransport.send (file:///opt/homebrew/lib/node_modules/mcp-remote/dist/chunk-65X3S4HB.js:19922:17)
at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
code: -1
}
2026-06-04T06:33:39.508Z [homey] [info] Server transport closed { metadata: undefined }
2026-06-04T06:33:39.508Z [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 }
2026-06-04T06:33:39.509Z [homey] [error] Server disconnected. For troubleshooting guidance, please visit our debugging documentation { metadata: { context: ‘connection’, stack: undefined } }
2026-06-04T06:33:39.509Z [homey] [info] Client transport closed { metadata: undefined }
2026-06-04T06:33:39.509Z [homey] [info] Client transport closed { metadata: undefined }
2026-06-04T06:41:07.412Z [homey] [info] Shutting down server… { metadata: undefined }
2026-06-04T06:41:07.412Z [homey] [info] Client transport closed { metadata: undefined }
2026-06-04T06:41:28.523Z [homey] [info] Initializing server… { metadata: undefined }
2026-06-04T06:41:28.533Z [homey] [info] Using MCP server command: /opt/homebrew/bin/npx with args and path: {
metadata: {
args: [
‘-y’,
‘mcp-remote’,
‘http://192.168.0.73:8735/mcp’,
‘–allow-http’,
‘–transport’,
‘sse’,
[length]: 6
],
paths: [
‘/opt/homebrew/bin’,
‘/opt/homebrew/sbin’,
‘/usr/local/bin’,
‘/System/Cryptexes/App/usr/bin’,
‘/usr/bin’,
‘/bin’,
‘/usr/sbin’,
‘/sbin’,
‘/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin’,
‘/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin’,
‘/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin’,
‘/pkg/env/global/bin’,
[length]: 12
]
}
} %o
2026-06-04T06:41:28.534Z [homey] [info] Server started and connected successfully { metadata: undefined }
2026-06-04T06:41:28.568Z [homey] [info] Message from client: {“method”:“initialize”,“params”:{“protocolVersion”:“2025-11-25”,“capabilities”:{“extensions”:{“io.modelcontextprotocol/ui”:{“mimeTypes”:[“text/html;profile=mcp-app”]}}},“clientInfo”:{“name”:“claude-ai”,“version”:“0.1.0”}},“jsonrpc”:“2.0”,“id”:0} { metadata: undefined }
[18650] Warning: Ignoring invalid transport strategy: sse. Valid values are: sse-only, http-only, sse-first, http-first
[18650] Using automatically selected callback port: 34887
[18650] Discovering OAuth server configuration…
[18650] [18650] Connecting to remote server: http://192.168.0.73:8735/mcp
[18650] Using transport strategy: http-first
[18650] Connection error: StreamableHTTPError: Streamable HTTP error: Unexpected content type: null
at StreamableHTTPClientTransport.send (file:///opt/homebrew/lib/node_modules/mcp-remote/dist/chunk-65X3S4HB.js:19922:17)
at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
code: -1
}
[18650] Fatal error: StreamableHTTPError: Streamable HTTP error: Unexpected content type: null
at StreamableHTTPClientTransport.send (file:///opt/homebrew/lib/node_modules/mcp-remote/dist/chunk-65X3S4HB.js:19922:17)
at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
code: -1
}
2026-06-04T06:41:29.530Z [homey] [info] Server transport closed { metadata: undefined }
2026-06-04T06:41:29.530Z [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 }
2026-06-04T06:41:29.530Z [homey] [error] Server disconnected. For troubleshooting guidance, please visit our debugging documentation { metadata: { context: ‘connection’, stack: undefined } }
2026-06-04T06:41:29.530Z [homey] [info] Client transport closed { metadata: undefined }
2026-06-04T06:41:29.530Z [homey] [info] Client transport closed { metadata: undefined }
2026-06-04T06:44:00.948Z [homey] [info] Shutting down server… { metadata: undefined }
2026-06-04T06:44:00.948Z [homey] [info] Client transport closed { metadata: undefined }
2026-06-04T06:49:17.358Z [homey] [info] Initializing server… { metadata: undefined }
2026-06-04T06:49:17.368Z [homey] [info] Using MCP server command: /opt/homebrew/bin/npx with args and path: {
metadata: {
args: [
‘-y’,
‘mcp-remote’,
‘http://192.168.0.73:8735/mcp’,
‘–allow-http’,
‘–transport’,
‘sse-only’,
[length]: 6
],
paths: [
‘/opt/homebrew/bin’,
‘/opt/homebrew/sbin’,
‘/usr/local/bin’,
‘/System/Cryptexes/App/usr/bin’,
‘/usr/bin’,
‘/bin’,
‘/usr/sbin’,
‘/sbin’,
‘/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin’,
‘/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin’,
‘/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin’,
‘/pkg/env/global/bin’,
[length]: 12
]
}
} %o
2026-06-04T06:49:17.369Z [homey] [info] Server started and connected successfully { metadata: undefined }
2026-06-04T06:49:17.398Z [homey] [info] Message from client: {“method”:“initialize”,“params”:{“protocolVersion”:“2025-11-25”,“capabilities”:{“extensions”:{“io.modelcontextprotocol/ui”:{“mimeTypes”:[“text/html;profile=mcp-app”]}}},“clientInfo”:{“name”:“claude-ai”,“version”:“0.1.0”}},“jsonrpc”:“2.0”,“id”:0} { metadata: undefined }
[18750] Using transport strategy: sse-only
[18750] Using automatically selected callback port: 34887
[18750] Discovering OAuth server configuration…
[18750] [18750] Connecting to remote server: http://192.168.0.73:8735/mcp
[18750] Using transport strategy: sse-only
[18750] Connection error: SseError: SSE error: Non-200 status code (405)
at _eventSource.onerror (file:///opt/homebrew/lib/node_modules/mcp-remote/dist/chunk-65X3S4HB.js:19462:24)
at EventSource.failConnection_fn (file:///opt/homebrew/lib/node_modules/mcp-remote/dist/chunk-65X3S4HB.js:19316:55)
at file:///opt/homebrew/lib/node_modules/mcp-remote/dist/chunk-65X3S4HB.js:19158:74
at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
code: 405,
event: {
type: ‘error’,
message: ‘Non-200 status code (405)’,
code: 405,
defaultPrevented: false,
cancelable: false,
timeStamp: 236.613417
}
}
[18750] Fatal error: SseError: SSE error: Non-200 status code (405)
at _eventSource.onerror (file:///opt/homebrew/lib/node_modules/mcp-remote/dist/chunk-65X3S4HB.js:19462:24)
at EventSource.failConnection_fn (file:///opt/homebrew/lib/node_modules/mcp-remote/dist/chunk-65X3S4HB.js:19316:55)
at file:///opt/homebrew/lib/node_modules/mcp-remote/dist/chunk-65X3S4HB.js:19158:74
at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
code: 405,
event: {
type: ‘error’,
message: ‘Non-200 status code (405)’,
code: 405,
defaultPrevented: false,
cancelable: false,
timeStamp: 236.613417
}
}
2026-06-04T06:49:17.862Z [homey] [info] Server transport closed { metadata: undefined }
2026-06-04T06:49:17.862Z [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 }
2026-06-04T06:49:17.862Z [homey] [error] Server disconnected. For troubleshooting guidance, please visit our debugging documentation { metadata: { context: ‘connection’, stack: undefined } }
2026-06-04T06:49:17.862Z [homey] [info] Client transport closed { metadata: undefined }
2026-06-04T06:49:17.862Z [homey] [info] Client transport closed { metadata: undefined }
2026-06-04T06:54:59.211Z [homey] [info] Shutting down server… { metadata: undefined }
2026-06-04T06:54:59.211Z [homey] [info] Client transport closed { metadata: undefined }
2026-06-04T06:56:34.646Z [homey] [info] Initializing server… { metadata: undefined }
2026-06-04T06:56:34.657Z [homey] [info] Using MCP server command: /opt/homebrew/bin/npx with args and path: {
metadata: {
args: [
‘-y’,
‘mcp-remote’,
‘http://192.168.0.73:8735/mcp’,
‘–allow-http’,
‘–transport’,
‘sse-first’,
[length]: 6
],
paths: [
‘/opt/homebrew/bin’,
‘/opt/homebrew/sbin’,
‘/usr/local/bin’,
‘/System/Cryptexes/App/usr/bin’,
‘/usr/bin’,
‘/bin’,
‘/usr/sbin’,
‘/sbin’,
‘/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin’,
‘/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin’,
‘/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin’,
‘/pkg/env/global/bin’,
[length]: 12
]
}
} %o
2026-06-04T06:56:34.658Z [homey] [info] Server started and connected successfully { metadata: undefined }
[18846] Using transport strategy: sse-first
[18846] Using automatically selected callback port: 34887
[18846] Discovering OAuth server configuration…
[18846] [18846] Connecting to remote server: http://192.168.0.73:8735/mcp
[18846] Using transport strategy: sse-first
[18846] Received error (status unknown): SSE error: Non-200 status code (405)
[18846] Recursively reconnecting for reason: falling-back-to-alternate-transport
[18846] [18846] Connecting to remote server: http://192.168.0.73:8735/mcp
[18846] Using transport strategy: http-only
[18846] Connection error: StreamableHTTPError: Streamable HTTP error: Unexpected content type: null
at StreamableHTTPClientTransport.send (file:///opt/homebrew/lib/node_modules/mcp-remote/dist/chunk-65X3S4HB.js:19922:17)
at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
code: -1
}
[18846] Fatal error: StreamableHTTPError: Streamable HTTP error: Unexpected content type: null
at StreamableHTTPClientTransport.send (file:///opt/homebrew/lib/node_modules/mcp-remote/dist/chunk-65X3S4HB.js:19922:17)
at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
code: -1
}
2026-06-04T06:56:35.556Z [homey] [info] Server transport closed { metadata: undefined }
2026-06-04T06:56:35.556Z [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 }
2026-06-04T06:56:35.556Z [homey] [error] Server disconnected. For troubleshooting guidance, please visit our debugging documentation { metadata: { context: ‘connection’, stack: undefined } }
2026-06-04T06:56:35.556Z [homey] [info] Client transport closed { metadata: undefined }
2026-06-04T06:56:35.556Z [homey] [info] Client transport closed { metadata: undefined }
2026-06-04T07:05:00.892Z [homey] [info] Shutting down server… { metadata: undefined }
2026-06-04T07:05:00.892Z [homey] [info] Client transport closed { metadata: undefined }
2026-06-04T07:05:06.664Z [homey] [info] Initializing server… { metadata: undefined }
2026-06-04T07:05:06.674Z [homey] [info] Using MCP server command: /opt/homebrew/bin/npx with args and path: {
metadata: {
args: [
‘-y’,
‘mcp-remote’,
‘http://192.168.0.73:8735/mcp’,
‘–allow-http’,
[length]: 4
],
paths: [
‘/opt/homebrew/bin’,
‘/opt/homebrew/sbin’,
‘/usr/local/bin’,
‘/System/Cryptexes/App/usr/bin’,
‘/usr/bin’,
‘/bin’,
‘/usr/sbin’,
‘/sbin’,
‘/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin’,
‘/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin’,
‘/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin’,
‘/pkg/env/global/bin’,
[length]: 12
]
}
} %o
2026-06-04T07:05:06.675Z [homey] [info] Server started and connected successfully { metadata: undefined }
2026-06-04T07:05:06.705Z [homey] [info] Message from client: {“method”:“initialize”,“params”:{“protocolVersion”:“2025-11-25”,“capabilities”:{“extensions”:{“io.modelcontextprotocol/ui”:{“mimeTypes”:[“text/html;profile=mcp-app”]}}},“clientInfo”:{“name”:“claude-ai”,“version”:“0.1.0”}},“jsonrpc”:“2.0”,“id”:0} { metadata: undefined }
[18907] Using automatically selected callback port: 34887
[18907] Discovering OAuth server configuration…
[18907] [18907] Connecting to remote server: http://192.168.0.73:8735/mcp
[18907] Using transport strategy: http-first
[18907] Connection error: StreamableHTTPError: Streamable HTTP error: Unexpected content type: null
at StreamableHTTPClientTransport.send (file:///opt/homebrew/lib/node_modules/mcp-remote/dist/chunk-65X3S4HB.js:19922:17)
at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
code: -1
}
[18907] Fatal error: StreamableHTTPError: Streamable HTTP error: Unexpected content type: null
at StreamableHTTPClientTransport.send (file:///opt/homebrew/lib/node_modules/mcp-remote/dist/chunk-65X3S4HB.js:19922:17)
at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
code: -1
}
2026-06-04T07:05:07.504Z [homey] [info] Server transport closed { metadata: undefined }
2026-06-04T07:05:07.504Z [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 }
2026-06-04T07:05:07.504Z [homey] [error] Server disconnected. For troubleshooting guidance, please visit our debugging documentation { metadata: { context: ‘connection’, stack: undefined } }
2026-06-04T07:05:07.504Z [homey] [info] Client transport closed { metadata: undefined }
2026-06-04T07:05:07.504Z [homey] [info] Client transport closed { metadata: undefined }
2026-06-04T07:06:00.865Z [homey] [info] Shutting down server… { metadata: undefined }
2026-06-04T07:06:00.866Z [homey] [info] Client transport closed { metadata: undefined }
2026-06-04T07:06:06.063Z [homey] [info] Initializing server… { metadata: undefined }
2026-06-04T07:06:06.081Z [homey] [info] Using MCP server command: /opt/homebrew/bin/npx with args and path: {
metadata: {
args: [
‘-y’,
‘mcp-remote’,
‘http://192.168.0.73:8735/mcp’,
‘–allow-http’,
[length]: 4
],
paths: [
‘/opt/homebrew/bin’,
‘/opt/homebrew/sbin’,
‘/usr/local/bin’,
‘/System/Cryptexes/App/usr/bin’,
‘/usr/bin’,
‘/bin’,
‘/usr/sbin’,
‘/sbin’,
‘/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin’,
‘/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin’,
‘/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin’,
‘/pkg/env/global/bin’,
[length]: 12
]
}
} %o
2026-06-04T07:06:06.082Z [homey] [info] Server started and connected successfully { metadata: undefined }
2026-06-04T07:06:06.105Z [homey] [info] Message from client: {“method”:“initialize”,“params”:{“protocolVersion”:“2025-11-25”,“capabilities”:{“extensions”:{“io.modelcontextprotocol/ui”:{“mimeTypes”:[“text/html;profile=mcp-app”]}}},“clientInfo”:{“name”:“claude-ai”,“version”:“0.1.0”}},“jsonrpc”:“2.0”,“id”:0} { metadata: undefined }
[18954] Using automatically selected callback port: 34887
[18954] Discovering OAuth server configuration…
[18954] [18954] Connecting to remote server: http://192.168.0.73:8735/mcp
[18954] Using transport strategy: http-first
[18954] Connection error: StreamableHTTPError: Streamable HTTP error: Unexpected content type: null
at StreamableHTTPClientTransport.send (file:///opt/homebrew/lib/node_modules/mcp-remote/dist/chunk-65X3S4HB.js:19922:17)
at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
code: -1
}
[18954] Fatal error: StreamableHTTPError: Streamable HTTP error: Unexpected content type: null
at StreamableHTTPClientTransport.send (file:///opt/homebrew/lib/node_modules/mcp-remote/dist/chunk-65X3S4HB.js:19922:17)
at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
code: -1
}
2026-06-04T07:06:06.628Z [homey] [info] Server transport closed { metadata: undefined }
2026-06-04T07:06:06.628Z [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 }
2026-06-04T07:06:06.628Z [homey] [error] Server disconnected. For troubleshooting guidance, please visit our debugging documentation { metadata: { context: ‘connection’, stack: undefined } }
2026-06-04T07:06:06.628Z [homey] [info] Client transport closed { metadata: undefined }
2026-06-04T07:06:06.629Z [homey] [info] Client transport closed { metadata: undefined }
2026-06-04T07:11:49.947Z [homey] [info] Shutting down server… { metadata: undefined }
2026-06-04T07:11:49.947Z [homey] [info] Client transport closed { metadata: undefined }
2026-06-04T07:11:54.843Z [homey] [info] Initializing server… { metadata: undefined }
2026-06-04T07:11:54.853Z [homey] [info] Using MCP server command: /opt/homebrew/bin/npx with args and path: {
metadata: {
args: [
‘-y’,
‘mcp-remote’,
‘http://192.168.0.73:8735/mcp’,
‘–allow-http’,
[length]: 4
],
paths: [
‘/opt/homebrew/bin’,
‘/opt/homebrew/sbin’,
‘/usr/local/bin’,
‘/System/Cryptexes/App/usr/bin’,
‘/usr/bin’,
‘/bin’,
‘/usr/sbin’,
‘/sbin’,
‘/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin’,
‘/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin’,
‘/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin’,
‘/pkg/env/global/bin’,
[length]: 12
]
}
} %o
2026-06-04T07:11:54.854Z [homey] [info] Server started and connected successfully { metadata: undefined }
[19035] Using automatically selected callback port: 34887
[19035] Discovering OAuth server configuration…
[19035] [19035] Connecting to remote server: http://192.168.0.73:8735/mcp
[19035] Using transport strategy: http-first
[19035] Connection error: StreamableHTTPError: Streamable HTTP error: Unexpected content type: null
at StreamableHTTPClientTransport.send (file:///opt/homebrew/lib/node_modules/mcp-remote/dist/chunk-65X3S4HB.js:19922:17)
at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
code: -1
}
[19035] Fatal error: StreamableHTTPError: Streamable HTTP error: Unexpected content type: null
at StreamableHTTPClientTransport.send (file:///opt/homebrew/lib/node_modules/mcp-remote/dist/chunk-65X3S4HB.js:19922:17)
at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
code: -1
}
2026-06-04T07:11:55.744Z [homey] [info] Server transport closed { metadata: undefined }
2026-06-04T07:11:55.744Z [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 }
2026-06-04T07:11:55.744Z [homey] [error] Server disconnected. For troubleshooting guidance, please visit our debugging documentation { metadata: { context: ‘connection’, stack: undefined } }
2026-06-04T07:11:55.745Z [homey] [info] Client transport closed { metadata: undefined }
2026-06-04T07:11:55.745Z [homey] [info] Client transport closed { metadata: undefined }

Thanks @Peter_Bittner I’ll take a look and also think through a simple work-around for the https issue. Personally I use a reverse proxy which is why I didn’t hit the issue myself, but that’s a bit over complex just for accessing this so will come up with a simpler solution for users

Apologies for the long story. I finally have it working thanks to Claude. He changed the config file to the one pasted below. (Claude note: the --header "Accept: application/json, text/event-stream" flag was the key that unlocked it.). Wallah! Claude can now list all my devices etc.

{
“mcpServers”: {
“homey”: {
“command”: “npx”,
“args”: [
“-y”,
“mcp-remote@latest”,
“``http://192.168.0.73:8735/mcp”``,
“–allow-http”,
“–header”,
“Accept: application/json, text/event-stream”
],
“env”: {
“PATH”: “/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin”
}
}
},
“preferences”: {
“coworkWebSearchEnabled”: true,
“remoteToolsDeviceName”: “mac-2-modem”,
“coworkModelAutoFallbackByAccount”: {
“5c8ac489-af47-4548-b1ac-918e0ab0efe6”: true
},
“coworkScheduledTasksEnabled”: false,
“ccdScheduledTasksEnabled”: false,
“bypassPermissionsGateByAccount”: {
“5c8ac489-af47-4548-b1ac-918e0ab0efe6”: false
},
“epitaxyPrefs”: {
“starred-local-code-sessions”: ,
“starred-cowork-spaces”: ,
“starred-session-groups”: ,
“dframe-local-slice”: {
“pinnedOrder”: ,
“customGroupAssignments”: {},
“customGroupOrder”: {}
}
}
},
“coworkUserFilesPath”: “/Users/peterbittner/Claude”
}

What form do you keep the docs in, and where do you store them?

Described in more detail in the first post in this thread but the short answer is markdown files and I use NotePlan but there are loads of options for that. Markdown is pretty token efficient for the AI tools.

Thanks Jonathon. Do you have issues with Claudes accuracy. He makes a lot of mistakes when documenting the flows.

I’ve found with most use cases, the first draft of the first one needs a fair bit of iteration. But if you do that iteration in Claude and then ask it to incorporate the approach into your skill then the process gets quicker and requires less correction each time. I put a step in my skill which explicitly looked for and suggested improvements to the skill after each time I used it. After maybe the first 5 notes, the suggestions were getting really minor and I actually removed that step again as the skill was pretty ‘mature’ by that point. Early corrections I had to give were things like paying close attention to whether condition cards were connected by the true / false connector which is pretty important! But it’s a very quick one time fix if you then add that into the skill.

OK, sounds like I need to learn how to create a skill. Would you be able to give a head start. What does “put a step in my skill which explicitly looked for and suggested improvements to the skill after each time I used it.” look like? Or will this become obvious as I start building the skill.