<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Toolweather</title>
    <description>The latest articles on DEV Community by Toolweather (@toolweather).</description>
    <link>https://dev.to/toolweather</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4187550%2Fb94f8af8-cfca-4fa9-9a44-8416a4b139cb.png</url>
      <title>DEV Community: Toolweather</title>
      <link>https://dev.to/toolweather</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/toolweather"/>
    <language>en</language>
    <item>
      <title>Your agent can't read a deprecation page</title>
      <dc:creator>Toolweather</dc:creator>
      <pubDate>Thu, 05 Nov 2026 03:40:43 +0000</pubDate>
      <link>https://dev.to/toolweather/your-agent-cant-read-a-deprecation-page-2ch1</link>
      <guid>https://dev.to/toolweather/your-agent-cant-read-a-deprecation-page-2ch1</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Here's what last week looked like (Oct 26 to Nov 2):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;104 status changes across the 40 providers. 54 times something went from operational to degraded or worse.&lt;/li&gt;
&lt;li&gt;Fireworks AI alone had 16 of those, and every one named a single model (Kimi K3 six times, GLM 5.3 Flash five). 9 were over in 15 minutes.&lt;/li&gt;
&lt;li&gt;Netlify had two that ran about 9 and 11 hours. OpenAI, Fly.io, Datadog and Anthropic each had 4 or 5.&lt;/li&gt;
&lt;li&gt;Mistral marked 5 more model IDs deprecated, with shutdown on Apr 30, 2027, and retired one on Oct 31.&lt;/li&gt;
&lt;li&gt;9 model IDs shut down in the next 30 days, including five Gemini TTS and live previews on Nov 17 and claude-sonnet-4-5-20250929 on Nov 30.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What the agent actually asks, as MCP tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;check_model_deprecation&lt;/code&gt;: 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.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;check_api_status&lt;/code&gt;: is this provider up right now, and should I retry, wait or switch.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;list_recent_api_changes&lt;/code&gt; and &lt;code&gt;list_providers&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Add it with one URL: &lt;a href="https://upstream.toolweather.workers.dev/mcp" rel="noopener noreferrer"&gt;https://upstream.toolweather.workers.dev/mcp&lt;/a&gt;&lt;br&gt;
Docs for agents: &lt;a href="https://upstream.toolweather.workers.dev/llms.txt" rel="noopener noreferrer"&gt;https://upstream.toolweather.workers.dev/llms.txt&lt;/a&gt;&lt;br&gt;
Digest: &lt;a href="https://upstream-api.pages.dev/digest/" rel="noopener noreferrer"&gt;https://upstream-api.pages.dev/digest/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>mcp</category>
      <category>devops</category>
    </item>
    <item>
      <title>Your MCP server changed last week. Did your agent notice?</title>
      <dc:creator>Toolweather</dc:creator>
      <pubDate>Mon, 26 Oct 2026 16:16:25 +0000</pubDate>
      <link>https://dev.to/toolweather/your-mcp-server-changed-last-week-did-your-agent-notice-37lp</link>
      <guid>https://dev.to/toolweather/your-mcp-server-changed-last-week-did-your-agent-notice-37lp</guid>
      <description>&lt;p&gt;When an MCP server drops a parameter or removes a tool, nothing errors at install time. There's no changelog in the protocol. The agent just starts failing later, in a way that's hard to trace.&lt;/p&gt;

&lt;p&gt;So I started checking. Every 15 minutes, a small runner connects to about 2,000 remote servers from the official MCP registry the way a client does: handshake, then tools/list. It saves the tool list and diffs it against the last one.&lt;/p&gt;

&lt;p&gt;Here's what one week looked like (Oct 19 to 26):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;849 servers answered without a key. Another 896 endpoints were up but asked for a login, which is a working server, not a dead one.&lt;/li&gt;
&lt;li&gt;307 of the 849 changed their tool list at least once.&lt;/li&gt;
&lt;li&gt;59 made a change that can break a caller: 37 removed a tool, others removed a parameter or added a required one.&lt;/li&gt;
&lt;li&gt;251 reworded a tool description. That's not breaking, but descriptions are what the model reads when it picks a tool, so a rewrite can change behavior.&lt;/li&gt;
&lt;li&gt;Median answer time was 221 ms; the slowest 10% took over 700 ms.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most of these are small servers moving fast, which is fine. The problem is that nothing in the protocol tells the client a tool changed after you approved it.&lt;/p&gt;

&lt;p&gt;That's what Toolweather is: the data from those probes, exposed as an MCP server your agent can ask before it calls something. &lt;code&gt;check_mcp_server_health&lt;/code&gt; says whether a server is answering and whether its tools changed recently, &lt;code&gt;find_alternative_mcp_servers&lt;/code&gt; suggests others that do the same job, and &lt;code&gt;watch_server&lt;/code&gt; tracks a few you depend on. It's free to try with no signup (50 calls a day, or 1,000 with a free key).&lt;/p&gt;

&lt;p&gt;Add it with one URL: &lt;a href="https://toolweather.toolweather.workers.dev/mcp" rel="noopener noreferrer"&gt;https://toolweather.toolweather.workers.dev/mcp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Status page and leaderboard: &lt;a href="https://toolweather.pages.dev" rel="noopener noreferrer"&gt;https://toolweather.pages.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Things I haven't solved: a schema diff can't see a tool that keeps the same schema but starts returning different data, and probing from one location means a server that blocks datacenter IPs can look down when it isn't. If you run an MCP server and think yours is classified wrong, tell me and I'll check the raw response.&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>agents</category>
      <category>devops</category>
    </item>
    <item>
      <title>AI models retired or deprecated this month (October 2026)</title>
      <dc:creator>Toolweather</dc:creator>
      <pubDate>Thu, 22 Oct 2026 19:46:27 +0000</pubDate>
      <link>https://dev.to/toolweather/ai-models-retired-or-deprecated-this-month-october-2026-3m3g</link>
      <guid>https://dev.to/toolweather/ai-models-retired-or-deprecated-this-month-october-2026-3m3g</guid>
      <description>&lt;p&gt;33 model IDs have a shutdown date in October 2026. 28 of them are OpenAI's, and they all go off on &lt;strong&gt;October 23&lt;/strong&gt;. If any of these strings live in your config, env vars, eval harness or a hard-coded model picker, now's the time to grep for them.&lt;/p&gt;

&lt;p&gt;Everything below comes from the providers' own deprecation pages (OpenAI, Anthropic, Google Gemini API, Mistral, Groq, Cohere), read on October 22, 2026. Aliases, dated snapshots and fine-tune bases are listed separately, because each one fails on its own when the date passes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Already shut down this month
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Shutdown&lt;/th&gt;
&lt;th&gt;Replacement named by the provider&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gpt-5.4-cyber&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;OpenAI&lt;/td&gt;
&lt;td&gt;Oct 1&lt;/td&gt;
&lt;td&gt;"The most capable cyber model available to you"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;veo-3.1-generate-preview&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Google&lt;/td&gt;
&lt;td&gt;Oct 22&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gemini-omni-1.1-flash&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;veo-3.1-fast-generate-preview&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Google&lt;/td&gt;
&lt;td&gt;Oct 22&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gemini-omni-1.1-flash&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;veo-3.1-lite-generate-preview&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Google&lt;/td&gt;
&lt;td&gt;Oct 22&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gemini-omni-1.1-flash&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Shutting down October 23 (OpenAI, 28 IDs)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Replacement named by OpenAI&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;gpt-3.5-turbo&lt;/code&gt;, &lt;code&gt;gpt-3.5-turbo-0125&lt;/code&gt;, &lt;code&gt;gpt-3.5-turbo-completions&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-5.6-terra&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;gpt-4&lt;/code&gt;, &lt;code&gt;gpt-4-0613&lt;/code&gt;, &lt;code&gt;gpt-4-completions&lt;/code&gt;, &lt;code&gt;gpt-4-0613-completions&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-5.6-sol&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;gpt-4-turbo&lt;/code&gt;, &lt;code&gt;gpt-4-turbo-2024-04-09&lt;/code&gt;, &lt;code&gt;gpt-4-turbo-completions&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-5.6-sol&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gpt-4-1106-preview&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-5.6-sol&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gpt-4o-2024-05-13&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-5.6-sol&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;gpt-4.1-nano&lt;/code&gt;, &lt;code&gt;gpt-4.1-nano-2025-04-14&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-5.6-luna&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;o1-2024-12-17&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-5.6-sol&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;o1-pro&lt;/code&gt;, &lt;code&gt;o1-pro-2025-03-19&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;gpt-5.6-sol&lt;/code&gt; (with &lt;code&gt;reasoning.mode: pro&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;o3-mini&lt;/code&gt;, &lt;code&gt;o3-mini-2025-01-31&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-5.6-sol&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;o4-mini&lt;/code&gt;, &lt;code&gt;o4-mini-2025-04-16&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-5.6-terra&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gpt-image-1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;gpt-image-2.5-sunburst&lt;/code&gt; or &lt;code&gt;gpt-image-2.5-flare&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Fine-tune bases on the same date (OpenAI recommends re-tuning on the listed base):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Fine-tune base&lt;/th&gt;
&lt;th&gt;Recommended base&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;ft-gpt-3.5-turbo&lt;/code&gt;, &lt;code&gt;ft-o4-mini-2025-04-16&lt;/code&gt;, &lt;code&gt;ft-babbage-002&lt;/code&gt;, &lt;code&gt;ft-davinci-002&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-5.6-terra&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ft-gpt-4&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-5.6-sol&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ft-gpt-4.1-nano-2025-04-14&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-5.6-luna&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Shutting down October 31
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Replacement&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;zai-glm-5-2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Mistral (hosted Z.ai model)&lt;/td&gt;
&lt;td&gt;Z.ai GLM 5.3&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Newly deprecated this month (still working, shutdown later)
&lt;/h3&gt;

&lt;p&gt;OpenAI announced two batches in October:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Deprecated&lt;/th&gt;
&lt;th&gt;Shutdown&lt;/th&gt;
&lt;th&gt;Replacement&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gpt-5.1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Oct 1&lt;/td&gt;
&lt;td&gt;Apr 1, 2027&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-6-sol&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gpt-5.3-codex&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Oct 1&lt;/td&gt;
&lt;td&gt;Apr 1, 2027&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-6-sol&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gpt-5.4-nano&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Oct 1&lt;/td&gt;
&lt;td&gt;Apr 1, 2027&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-6-luna&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;tts-1&lt;/code&gt;, &lt;code&gt;tts-1-hd&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Oct 1&lt;/td&gt;
&lt;td&gt;Jan 6, 2027&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-realtime-2.1-mini&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;gpt-4o-mini-tts-2025-03-20&lt;/code&gt;, &lt;code&gt;gpt-4o-mini-tts-2025-12-15&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Oct 1&lt;/td&gt;
&lt;td&gt;Jan 6, 2027&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-realtime-2.1-mini&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;gpt-4o-2024-08-06&lt;/code&gt;, &lt;code&gt;gpt-4o-2024-11-20&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Oct 14&lt;/td&gt;
&lt;td&gt;Jan 14, 2027&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-6-luna&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gpt-4o-mini-2024-07-18&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Oct 14&lt;/td&gt;
&lt;td&gt;Jan 14, 2027&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-6-luna&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;gpt-4.1-2025-04-14&lt;/code&gt;, &lt;code&gt;gpt-4.1-mini-2025-04-14&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Oct 14&lt;/td&gt;
&lt;td&gt;Jan 14, 2027&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-6-luna&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Anthropic, Mistral, Groq and Cohere listed no deprecations announced in October. Google's page doesn't show announcement dates, only shutdown dates, so its new entries show up in the "coming up" table instead.&lt;/p&gt;

&lt;h3&gt;
  
  
  Coming up in the next 60 days
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Date&lt;/th&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Replacement&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Nov 17&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;gemini-2.5-flash-preview-tts&lt;/code&gt;, &lt;code&gt;gemini-2.5-pro-preview-tts&lt;/code&gt;, &lt;code&gt;gemini-3.1-flash-tts-preview&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Google&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;gemini-3.8-flash-tts&lt;/code&gt; or &lt;code&gt;gemini-3.8-flash-lite-tts&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nov 17&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;gemini-3.1-flash-live-preview&lt;/code&gt;, &lt;code&gt;gemini-2.5-flash-native-audio-preview-12-2025&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Google&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gemini-3.8-live&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nov 30&lt;/td&gt;
&lt;td&gt;&lt;code&gt;claude-sonnet-4-5-20250929&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Anthropic&lt;/td&gt;
&lt;td&gt;none named on the page&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dec 1&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;gpt-image-1-mini&lt;/code&gt;, &lt;code&gt;gpt-image-1.5&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;OpenAI&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;gpt-image-2.5-sunburst&lt;/code&gt; or &lt;code&gt;gpt-image-2.5-flare&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dec 11&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;gpt-5-2025-08-07&lt;/code&gt;, &lt;code&gt;o3-2025-04-16&lt;/code&gt;, &lt;code&gt;o3-pro-2025-06-10&lt;/code&gt;, &lt;code&gt;gpt-5-pro-2025-10-06&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;OpenAI&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-5.6-sol&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dec 11&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-5-mini-2025-08-07&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;OpenAI&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-5.6-terra&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dec 11&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-5-nano-2025-08-07&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;OpenAI&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-5.6-luna&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  What to do with this
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Grep your repos and secrets manager for the IDs above. Aliases like &lt;code&gt;gpt-4&lt;/code&gt; and &lt;code&gt;o4-mini&lt;/code&gt; hide in defaults and test fixtures.&lt;/li&gt;
&lt;li&gt;A retired model usually returns a 404 or a "model not found" error, not a quality drop, so a weekly smoke test that sends one tiny request per configured model catches it before users do.&lt;/li&gt;
&lt;li&gt;Put the model name in config, not code. Then a retirement is a one-line change.&lt;/li&gt;
&lt;li&gt;"Replacement" is the provider's suggestion. Run your own evals before swapping, since prices and output differ.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Always check the provider's page before acting: OpenAI (developers.openai.com/api/docs/deprecations), Anthropic (platform.claude.com/docs/en/about-claude/model-deprecations), Google (ai.google.dev/gemini-api/docs/deprecations), Mistral (docs.mistral.ai/models).&lt;/p&gt;




&lt;p&gt;I put this together from Upstream, a free API that reads these deprecation pages and tells you if a model ID is active, deprecated or retired, with the date and replacement: &lt;a href="https://upstream-api.pages.dev" rel="noopener noreferrer"&gt;https://upstream-api.pages.dev&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>openai</category>
      <category>llm</category>
      <category>api</category>
    </item>
    <item>
      <title>74% of MCP servers aren't ready for the 2026-07-28 spec — what we learned from live probes</title>
      <dc:creator>Toolweather</dc:creator>
      <pubDate>Thu, 15 Oct 2026 22:34:23 +0000</pubDate>
      <link>https://dev.to/toolweather/74-of-mcp-servers-arent-ready-for-the-2026-07-28-spec-what-we-learned-from-live-probes-56ic</link>
      <guid>https://dev.to/toolweather/74-of-mcp-servers-arent-ready-for-the-2026-07-28-spec-what-we-learned-from-live-probes-56ic</guid>
      <description>&lt;p&gt;Every ~15 minutes we run a handshake against about 2,043 public MCP servers. The results are on a live board at &lt;a href="https://toolweather.pages.dev" rel="noopener noreferrer"&gt;https://toolweather.pages.dev&lt;/a&gt;, and they're a useful reality check for anyone building agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  The numbers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;~74% legacy-only&lt;/strong&gt; (706 of 952 classified servers): not ready for the 2026-07-28 spec. Only ~26% are dual-era or modern.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;~47% healthy/open, ~51% behind auth.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;128 ms median handshake&lt;/strong&gt;, 14,938 tools tracked.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why it matters
&lt;/h2&gt;

&lt;p&gt;If your client only speaks the new protocol, most servers will fail quietly. And agents that call tools or pay merchants they've never seen need a cheap "should I?" check first.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we built (free, no signup)
&lt;/h2&gt;

&lt;p&gt;All of this runs on free Cloudflare Workers + D1, exposed as MCP:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Toolweather&lt;/strong&gt;: health/protocol/latency for any listed MCP server. &lt;a href="https://toolweather.toolweather.workers.dev" rel="noopener noreferrer"&gt;https://toolweather.toolweather.workers.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Upstream&lt;/strong&gt;: upgrade/dependency checks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SpendGate&lt;/strong&gt;: approve / ask a human / block before an agent spends. &lt;a href="https://spendgate.toolweather.workers.dev" rel="noopener noreferrer"&gt;https://spendgate.toolweather.workers.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PayCheck&lt;/strong&gt;: trust verdict (trusted / unknown / suspicious / block) for a merchant, URL or 0x wallet. &lt;a href="https://paycheck.toolweather.workers.dev" rel="noopener noreferrer"&gt;https://paycheck.toolweather.workers.dev&lt;/a&gt; — &lt;code&gt;POST /v1/check&lt;/code&gt; with &lt;code&gt;{"target": "example.com"}&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;SpendGate uses a local allowlist for well-known merchants (no network call), and asks PayCheck about everything else. Workers on the same account talk through a service binding, because a workers.dev self-fetch fails. If the lookup fails, it falls back to local classification.&lt;/p&gt;

&lt;p&gt;One MCP connection to the Toolweather bundle gets you all of it. Paid usage beyond free quota is via x402 (USDC on Base).&lt;/p&gt;

&lt;h2&gt;
  
  
  For server authors
&lt;/h2&gt;

&lt;p&gt;Free live badge for your README:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;![Toolweather&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://toolweather.toolweather.workers.dev/badge/YOUR.SERVER.ID.svg&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;](https://toolweather.pages.dev/)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Also on Glama: &lt;a href="https://glama.ai/mcp/servers/toolweather/paycheck" rel="noopener noreferrer"&gt;https://glama.ai/mcp/servers/toolweather/paycheck&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feedback on the methodology welcome.&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>agents</category>
      <category>cloudflare</category>
    </item>
  </channel>
</rss>
