v0.5.5
First-run UX overhaul plus the security and platform fixes accumulated since v0.5.3 (v0.5.4 was an internal rollup and was never released separately, so this release supersedes it).
Added
- Interactive browser sign-in. First-time authentication now opens the system browser to the normal Microsoft sign-in (OAuth auth-code flow with a
localhostloopback redirect) — no device code to copy out of the logs. Automatically falls back to the device-code flow on headless / no-browser hosts. --AuthMode/BC_AUTH_MODE—auto(default: interactive, device-code fallback),interactive, ordevice_code. Usedevice_codefor headless/server installs.- Non-blocking tool discovery.
tools/listnow returns immediately while authentication is still pending instead of hanging past the client's ~30s request timeout. The proxy advertisestools.listChangedand emitsnotifications/tools/list_changedonce the real tool set is available. - Python 3.14 (cp314) wheels added to the
.dxtbundle build matrix.
Fixed
- Device-code prompt no longer corrupts the MCP transport. It was being written to stdout (the JSON-RPC channel), producing
Unexpected token 'T', "To sign in"... is not valid JSONand a disconnect. Now routed to stderr. - Whitespace in config values is stripped. A trailing space in
BC_TENANT_ID/--TenantId(easy to paste from the Azure portal) previously causedLocalProtocolError: Illegal header valueon the v28 host. Surrounding whitespace is now trimmed at the input boundary with a warning.
Security
- urllib3
2.6.3→2.7.0— fixes CVE-2026-44431 and CVE-2026-44432.
Upgrade notes
- Azure app registration: interactive sign-in requires
http://localhostadded under Authentication → Mobile and desktop applications. Existing app registrations that only have the broker redirect URI keep working (automode falls back to device-code), but won't get the browser UX until this is added. See README → Step 1. - First run on Claude Desktop: for the smoothest experience, run
python -m bc_mcp_proxy setuponce (pre-authenticate in a terminal) before launching Claude Desktop. Without it, the very first launch shows no tools until you sign in and toggle the extension off/on once; every launch after that is instant via the on-disk token + tools cache. (Claude Desktop does not currently re-request the tool list onnotifications/tools/list_changedover stdio; other clients may.)