Renew ahead of expiry, not at next use
The common design renews lazily: the next time the agent calls a tool, the client notices the access token has expired and renews on the way. It is simple, and it works for a busy agent. It fails for an idle one. An agent with nothing to do over a weekend makes no calls, so no renewal fires, and by the time one does the refresh token itself may have passed whatever lifetime or inactivity limit the provider applies. At that point the grant is unrecoverable and a person has to sign in again, for a connection that was never actually used.
Renewal has to run on a clock, from a periodic check, and it should be a direct request to the token endpoint rather than something that piggybacks on a tool call. That distinction matters more than it looks. In the MCP authorisation model the MCP server is a resource server and tokens come from an authorisation server, which may be a different service at a different address. A direct renewal can succeed while the MCP server itself is down, so the grant is still good when the server comes back.
Olano renews stored grants on a periodic check, ahead of expiry - by default about twenty minutes before, with the window adjustable. Renewal is on by default and the guidance is to leave it on: a token that lapses while the agent is idle can become unrecoverable.
Consent cannot be automated
Every case above can be fixed by software. One cannot. When a server needs a sign-in the agent has never been given, or a grant the provider has expired or revoked, the only fix is a person clicking Authorise. Reconnecting cannot invent consent.
That sounds obvious and it is routinely got wrong, because the easy design treats every failed connection as retryable. A platform that puts a consent-needed server on the same retry schedule as a timed-out one rebuilds that agent's tools on a timer forever, achieves nothing on every attempt, and - worse - reports "reconnecting" when the honest status is "waiting for you". Olano never retries a server that needs consent it does not have. It raises a notification on the bell and on Overview naming the server and the agent, with a link straight to that agent's MCP tab, and the notification says plainly that reloading will not fix this one. There is one row per agent per server, since each agent authorises its own servers, and the row clears itself the moment the server connects.