Skip to content

Tags: vmkteam/mcpurl

Tags

v0.0.2

Toggle v0.0.2's commit message
Request offline_access so tokens can refresh

- Append offline_access in resolveScopes for every discovery-driven
  branch, not just the OIDC fallback: any server whose Protected
  Resource Metadata advertises scopes_supported previously got a
  token with no refresh_token, forcing a browser login on every
  client restart
- Gate the append on the AS advertising offline_access in
  scopes_supported, so a strict server is never handed invalid_scope
- Fix Token.Scopes recording requested scopes instead of the ones the
  AS granted; they differ when the server silently drops scopes the
  client is not configured for, which made the stored token claim a
  refresh capability it did not have
- Share the "granted scope wins, else keep what we had" rule
  (RFC 6749 5.1) between the login and refresh paths
- Warn at login when the AS issues no refresh_token, naming the
  granted scope and both fixes; add Flow.Warnf mirroring Bridge.Warnf
  so it reaches the operator without -v
- Return owned memory from withOffline: the result outlives discovery
  inside a stored Token and must not alias the cache
- Replace hasS256 with slices.Contains, now that the file imports
  slices

v0.0.1

Toggle v0.0.1's commit message
Surface upstream failures instead of retrying

- Keep the bridge transparent: 429 and other upstream errors reach the
  client as -32603 with the HTTP status, no silent retries
- Log POST failures at warn level so operators see rate limits and 5xx
  in the MCP client log without -v
- Add a test pinning the no-retry contract for 429