From a4f2adc50a42dffd8dda4e4b9646b6909b11a576 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 21 Mar 2026 15:03:27 +0000 Subject: [PATCH] fix mcp-server crash and Kiwix FQDN resolution MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit mcp_server.py / local-ai-setup.sh: FastMCP.get_asgi_app() was removed in mcp 1.x — replace with sse_app(), which returns the same Starlette ASGI app for SSE transport. Fixes the crash loop the container was stuck in. laptop_full_setup.sh Caddyfile: $(hostname).local requires mDNS (Avahi/Bonjour) to resolve from a proxy machine, which is often not available on all LAN clients. Replace every occurrence with $LOCAL_IP (the machine's LAN IP) so the generated Caddyfile.example works reliably regardless of mDNS support. https://claude.ai/code/session_012gDnantBmFTWZGCiKyjazx --- laptop_full_setup.sh | 16 ++++++++-------- local-ai-setup.sh | 2 +- mcp_server.py | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/laptop_full_setup.sh b/laptop_full_setup.sh index e193db6..12f7549 100755 --- a/laptop_full_setup.sh +++ b/laptop_full_setup.sh @@ -1392,19 +1392,19 @@ write_if_new "$BASE/Caddyfile.example" << CADDY # Replace yourdomain.com with your actual domain webui.yourdomain.com { - reverse_proxy $(hostname).local:3000 { + reverse_proxy $LOCAL_IP:3000 { header_up X-Forwarded-Proto {scheme} header_up X-Forwarded-Host {host} } } -invokeai.yourdomain.com { reverse_proxy $(hostname).local:9090 } -search.yourdomain.com { reverse_proxy $(hostname).local:8888 } -git.yourdomain.com { reverse_proxy $(hostname).local:3001 } -kiwix.yourdomain.com { reverse_proxy $(hostname).local:8181 } -rag.yourdomain.com { reverse_proxy $(hostname).local:8001 } -mcp.yourdomain.com { reverse_proxy $(hostname).local:8002 } +invokeai.yourdomain.com { reverse_proxy $LOCAL_IP:9090 } +search.yourdomain.com { reverse_proxy $LOCAL_IP:8888 } +git.yourdomain.com { reverse_proxy $LOCAL_IP:3001 } +kiwix.yourdomain.com { reverse_proxy $LOCAL_IP:8181 } +rag.yourdomain.com { reverse_proxy $LOCAL_IP:8001 } +mcp.yourdomain.com { reverse_proxy $LOCAL_IP:8002 } portainer.yourdomain.com { - reverse_proxy https://$(hostname).local:9443 { + reverse_proxy https://$LOCAL_IP:9443 { transport http { tls_insecure_skip_verify } } } diff --git a/local-ai-setup.sh b/local-ai-setup.sh index b1d8531..cb3a202 100755 --- a/local-ai-setup.sh +++ b/local-ai-setup.sh @@ -669,7 +669,7 @@ def rag_health() -> str: if __name__ == "__main__": import uvicorn - uvicorn.run(mcp.get_asgi_app(), host="0.0.0.0", port=8002) + uvicorn.run(mcp.sse_app(), host="0.0.0.0", port=8002) PY # ============================================================================= diff --git a/mcp_server.py b/mcp_server.py index 4c30779..7003ac9 100644 --- a/mcp_server.py +++ b/mcp_server.py @@ -199,5 +199,5 @@ def rag_health() -> str: if __name__ == "__main__": import uvicorn - app = mcp.get_asgi_app() + app = mcp.sse_app() uvicorn.run(app, host="0.0.0.0", port=8002)