When a provider retires a model, the notice goes on a docs page written for people. The API keeps answering until the shutdown date, then the model ID just stops working. An agent running on its own has no way to see it coming.
So I built Upstream: it reads the status pages of 40 AI and developer APIs every few minutes, and the deprecation pages of OpenAI, Anthropic, Google, Mistral, Groq and Cohere, and turns them into answers an agent can ask for before it makes a call.
Here's what last week looked like (Oct 26 to Nov 2): What the agent actually asks, as MCP tools:
check_model_deprecation: is this model ID active, deprecated or retired, when does it shut down, and what replaces it, with the exact row from the provider's page.check_api_status: is this provider up right now, and should I retry, wait or switch.list_recent_api_changes and list_providers.
It's free: 50 calls a day with no key, 500 with a free key. There's also a free daily digest of what broke.
Add it with one URL: [https://upstream.toolweather.workers.dev/mcp](https://upstream.toolweather.workers.dev/mcp)
Docs for agents: [https://upstream.toolweather.workers.dev/llms.txt](https://upstream.toolweather.workers.dev/llms.txt)
Digest: [https://upstream-api.pages.dev/digest/](https://upstream-api.pages.dev/digest/)
What it can't do yet: it only knows what providers publish, so an unannounced model change won't show up, and a "degraded" on a status page doesn't tell you whether your request will fail. If your provider isn't in the 40, tell me which one.