Phase 2 of docs/cloud-deployment.md. Add a hosted (non-localhost) OAuth flow: /connect kicks it off, /oauth/google/callback replaces AuthCli's 127.0.0.1 loopback listener. At the end, mint an opaque per-user MCP API token (shown once), validated as a Bearer token via standard ASP.NET Core auth middleware on every /mcp request - a lookup key back to CloudTokenStore's per-user Google tokens, never exposing those tokens to the MCP client directly. New --cloud mode in Program.cs alongside the existing auth/--http/stdio branches; those stay untouched. Testable locally with two different Google test accounts.
Phase 2 of docs/cloud-deployment.md. Add a hosted (non-localhost) OAuth flow: /connect kicks it off, /oauth/google/callback replaces AuthCli's 127.0.0.1 loopback listener. At the end, mint an opaque per-user MCP API token (shown once), validated as a Bearer token via standard ASP.NET Core auth middleware on every /mcp request - a lookup key back to CloudTokenStore's per-user Google tokens, never exposing those tokens to the MCP client directly. New --cloud mode in Program.cs alongside the existing auth/--http/stdio branches; those stay untouched. Testable locally with two different Google test accounts.