You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* feat!: remove ha-mcp-sse entry point
The MCP specification has formally deprecated the HTTP+SSE transport.
No install method or documentation advertised ha-mcp-sse; Streamable
HTTP (ha-mcp-web) is the supported HTTP mode.
Removes main_sse, the ha-mcp-sse console script, fastmcp-sse.json, the
SSE branches in _http_run_kwargs / ProbeAccessLogFilter /
register_browser_landing, the SSE entry-point detection in the bug
report tool, and the SSE notes on the setup page.
BREAKING CHANGE: the ha-mcp-sse console script and SSE transport mode
are removed; use ha-mcp-web (Streamable HTTP) instead.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017iTWsCSMPqSHm7Po8yGzfk
* test: cover FASTMCP_TRANSPORT=sse env hint; sweep stale HTTP/SSE comments
Review findings: the FASTMCP_TRANSPORT=sse branch in _detect_mcp_transport
is now the sole path to "sse" detection and had no direct test, and seven
comments/docstrings outside __main__.py still described an HTTP/SSE
deployment mode that no longer exists.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017iTWsCSMPqSHm7Po8yGzfk
---------
Co-authored-by: kingpanther13 <kingpanther13@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
<h3 class="instruction-title text-blue-300">Transport: use Streamable HTTP, not SSE</h3>
1777
1777
<p class="text-slate-300 text-sm">The ha-mcp app (and <code class="bg-slate-800 px-1 rounded">ha-mcp-web</code>) serve <strong>Streamable HTTP</strong> — the modern default, supported by virtually all current MCP clients (Claude Code, Claude.ai, ChatGPT, Cursor, GitHub Copilot, and more). The config above already uses it.</p>
1778
-
<p class="text-slate-300 text-sm mt-2"><strong>SSE is legacy.</strong> You only need it for the separate <code class="bg-slate-800 px-1 rounded">ha-mcp-sse</code> entry point (deprecated SSE on port 8087). The app does <strong>not</strong> serve SSE, so an SSE / <code class="bg-slate-800 px-1 rounded">--transport sse</code> config pointed at it returns a <code class="bg-slate-800 px-1 rounded">405</code> and won't connect.</p>
1778
+
<p class="text-slate-300 text-sm mt-2"><strong>SSE is not offered.</strong> The MCP spec has deprecated the HTTP+SSE transport, so an SSE / <code class="bg-slate-800 px-1 rounded">--transport sse</code> config pointed at the app returns a <code class="bg-slate-800 px-1 rounded">405</code> and won't connect — switch any older SSE-style client config over to Streamable HTTP.</p>
<p class="text-slate-300 text-sm mb-2"><strong>If client logs show <code>405 Method Not Allowed</code> on <code>GET /mcp</code>:</strong> the server is running in Streamable HTTP mode — switch from <code>url</code> to <code>httpUrl</code> in <code>~/.gemini/settings.json</code>. The config below already uses <code>httpUrl</code>.</p>
1803
-
<p class="text-slate-300 text-sm mb-2 mt-3">Entry points: <code>ha-mcp-web</code> (default) serves Streamable HTTP at <code>/mcp</code> on port 8086. The separate <code>ha-mcp-sse</code> entry point serves legacy SSE on port 8087 — pair that with the <code>url</code> key (not <code>httpUrl</code>) if you need SSE specifically.</p>
1803
+
<p class="text-slate-300 text-sm mb-2 mt-3">Entry point: <code>ha-mcp-web</code> (default) serves Streamable HTTP at <code>/mcp</code> on port 8086 — always pair it with the <code>httpUrl</code> key, not <code>url</code>.</p>
1804
1804
<p class="text-slate-300 text-sm mb-2 mt-3"><strong>A direct browser/curl probe of <code>http://<host>:8086/mcp</code> also returns 405 by design</strong> — that is the <code>register_browser_landing</code> handler in <code>src/ha_mcp/__main__.py</code> confirming the server is up, not a fault. MCP clients use <code>POST</code>; this only shows up if a curl probe or browser hits the URL directly.</p>
1805
1805
<p class="text-slate-300 text-sm mt-3"><strong>Alternative: HA built-in MCP integration.</strong> If you have the <a href="https://www.home-assistant.io/integrations/mcp_server/" target="_blank" rel="noopener noreferrer" class="text-blue-400 hover:underline">Home Assistant MCP integration</a> enabled, you can skip <code>ha-mcp</code> entirely and point Gemini CLI at HA's <code>/api/mcp</code> endpoint with a long-lived access token in a <code>Bearer</code> header. HA core also serves the legacy SSE endpoint at <code>/mcp_server/sse</code> on the same host/port — same 405-on-GET caveat applies there.</p>
0 commit comments