Merge pull request #665 from cbcoutinho/feat/claude-funnel-config

feat: add Tailscale Funnel config for Claude AI connector testing
This commit is contained in:
Chris Coutinho
2026-03-29 21:00:16 +02:00
committed by GitHub
6 changed files with 176 additions and 1 deletions
+13 -1
View File
@@ -24,7 +24,7 @@ from pydantic import AnyHttpUrl
from starlette.applications import Starlette
from starlette.middleware.authentication import AuthenticationMiddleware
from starlette.middleware.cors import CORSMiddleware
from starlette.responses import JSONResponse, RedirectResponse
from starlette.responses import FileResponse, JSONResponse, RedirectResponse
from starlette.routing import Mount, Route
from starlette.staticfiles import StaticFiles
from starlette.types import ASGIApp, Receive, Send
@@ -2354,6 +2354,18 @@ def get_app(transport: str = "streamable-http", enabled_apps: list[str] | None =
routes.append(Mount("/app", app=browser_app))
logger.info("App routes with session auth: /app, /app/webhooks, /app/revoke")
# Favicon for connector directory discovery (Google favicon service)
favicon_path = os.path.join(
os.path.dirname(__file__), "auth", "static", "favicon.png"
)
if os.path.isfile(favicon_path):
routes.append(
Route(
"/favicon.ico",
lambda request: FileResponse(favicon_path, media_type="image/png"),
)
)
# Mount FastMCP at root last (catch-all, handles OAuth via token_verifier)
routes.append(Mount("/", app=mcp_app))