<?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: Baramwork</title>
    <description>The latest articles on DEV Community by Baramwork (@baramwork).</description>
    <link>https://dev.to/baramwork</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%2F4129167%2F25288707-407d-4111-9b5b-99cebc70111e.png</url>
      <title>DEV Community: Baramwork</title>
      <link>https://dev.to/baramwork</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/baramwork"/>
    <language>en</language>
    <item>
      <title>2,967 MCP servers advertise OAuth. 8% meet the July spec.</title>
      <dc:creator>Baramwork</dc:creator>
      <pubDate>Thu, 17 Sep 2026 06:04:11 +0000</pubDate>
      <link>https://dev.to/baramwork/2967-mcp-servers-advertise-oauth-8-meet-the-july-spec-5d1m</link>
      <guid>https://dev.to/baramwork/2967-mcp-servers-advertise-oauth-8-meet-the-july-spec-5d1m</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Correction (2026-09-19).&lt;/strong&gt; I framed RFC 9207 &lt;code&gt;iss&lt;/code&gt; and Client ID Metadata Documents as July-spec &lt;em&gt;requirements&lt;/em&gt;. They are &lt;strong&gt;SHOULD&lt;/strong&gt;, not MUST — and the CIMD SHOULD applies to authorization servers and clients, not to MCP servers. DCR is deprecated but explicitly kept for backwards compatibility, with no sunset date. Claude's connector docs also state that when CIMD is absent it &lt;strong&gt;falls back to DCR&lt;/strong&gt;, so "may not be reachable at all" was wrong; a DCR-only server connects fine today. The nextcloud issue I quoted was about a broken &lt;code&gt;registration_endpoint&lt;/code&gt;, not about CIMD being required — I misread it.&lt;/p&gt;

&lt;p&gt;The numbers stand (19% / 23% / 8%). The right reading is: &lt;strong&gt;most servers haven't adopted the two July recommendations yet&lt;/strong&gt;, which the spec itself expects to upgrade to MUST in a future revision. Servers with &lt;em&gt;neither&lt;/em&gt; CIMD nor a working DCR endpoint — the only ones actually at risk — are about 57 of 2,967 (1.9%). Title left as-is so the link doesn't break; the body below is unchanged so the correction is visible against it.&lt;/p&gt;

&lt;p&gt;Thanks to no one but my own re-read for catching this — which is the point of posting numbers publicly.I scanned every server in the official MCP registry and checked the ones that advertise OAuth against the &lt;code&gt;2026-07-28&lt;/code&gt; authorization requirements.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Read-only throughout: one &lt;code&gt;initialize&lt;/code&gt; per host to see what it answers, then public metadata documents. No tool calls, no auth attempts, no probing.&lt;/p&gt;

&lt;h2&gt;
  
  
  The registry is smaller than it looks
&lt;/h2&gt;

&lt;p&gt;105,315 entries are &lt;strong&gt;32,380 unique servers&lt;/strong&gt; — the registry keeps every version of every server, so entry counts overstate the ecosystem by about 3.2x. (Someone else &lt;a href="https://dev.to/leroy_jenkins_951c84b2838/i-counted-the-mcp-registry-101219-entries-are-31309-servers-and-23-have-no-source-repo-33a6"&gt;counted this three days before me&lt;/a&gt; and got the same ratio, which is a good sign for both of us.)&lt;/p&gt;

&lt;p&gt;Of those, &lt;strong&gt;19,789 advertise a remote endpoint&lt;/strong&gt;, across &lt;strong&gt;13,088 unique hosts&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I asked each host to &lt;code&gt;initialize&lt;/code&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;answered something&lt;/td&gt;
&lt;td&gt;12,282 (94%)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;completed an anonymous handshake&lt;/td&gt;
&lt;td&gt;6,957 (53%)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;returned 401/403&lt;/td&gt;
&lt;td&gt;4,020&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;didn't connect at all&lt;/td&gt;
&lt;td&gt;806&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Median response 811 ms.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 2,967 that expose RFC 9728
&lt;/h2&gt;

&lt;p&gt;Of the servers demanding auth, 2,967 pointed at protected-resource metadata. Those are the ones worth grading — they implemented OAuth on purpose.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;check&lt;/th&gt;
&lt;th&gt;pass&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;PRM document present&lt;/td&gt;
&lt;td&gt;97%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;resource&lt;/code&gt; matches the server (audience binding)&lt;/td&gt;
&lt;td&gt;96%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;authorization server metadata reachable&lt;/td&gt;
&lt;td&gt;96%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PKCE S256&lt;/td&gt;
&lt;td&gt;95%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;issuer is HTTPS and self-consistent&lt;/td&gt;
&lt;td&gt;94%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;dynamic client registration&lt;/td&gt;
&lt;td&gt;92%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;RFC 9207 &lt;code&gt;iss&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;19%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Client ID Metadata Documents&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;23%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;all of the above&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;8%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The older OAuth machinery is in good shape. The two things the July spec newly hardened are not.&lt;/p&gt;

&lt;p&gt;That shape matters more than the 8%. This isn't "nobody cares about security" — it's a migration that hasn't happened. Everything from before is above 92%; the two 2026-07-28 additions sit at 19% and 23%.&lt;/p&gt;

&lt;h2&gt;
  
  
  It isn't a vendor problem
&lt;/h2&gt;

&lt;p&gt;I expected the failures to pile up on a handful of identity providers, which would make this someone else's bug to fix. They don't.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;2,823 distinct issuer hosts.&lt;/strong&gt; The top ten account for &lt;strong&gt;1%&lt;/strong&gt; of failures.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;60% run their own authorization server on their own domain.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Servers delegating to a third-party IdP do barely better: 24% / 25% versus 18% / 23%. The IdPs haven't shipped it either.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So there are roughly &lt;strong&gt;2,610 operators&lt;/strong&gt;, each of whom would have to do this themselves.&lt;/p&gt;

&lt;h2&gt;
  
  
  And it isn't really a security story
&lt;/h2&gt;

&lt;p&gt;While looking into this I found a maintainer's issue titled:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"OAuth AS proxy: support Client ID Metadata Documents (CIMD) and RFC 9207 iss **so ChatGPT/Claude can connect&lt;/em&gt;* without DCR"*&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;CIMD is the spec's preferred registration path now, with DCR as the fallback. If you skip it you're not just weaker — depending on the client, you may not be reachable at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I can't tell you
&lt;/h2&gt;

&lt;p&gt;I read declarations, not behavior. Credential reuse across issuers, issuer-bound client credentials, and whether a server actually validates token audience don't appear in metadata. A server that doesn't declare RFC 9207 support is certainly not doing it; one that declares it might still get it wrong.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So 19% is a ceiling, not a floor.&lt;/strong&gt; The real conformance rate is at most this, probably lower.&lt;/p&gt;

&lt;p&gt;The population is biased the same direction: these are servers whose operators implemented OAuth deliberately. Servers that skipped auth entirely aren't in this count at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two things I'd like checked
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;If anyone has already published RFC 9207 / CIMD conformance numbers, I'd like to compare. I searched and didn't find any — but "I didn't find it" isn't "it doesn't exist."&lt;/li&gt;
&lt;li&gt;If you run one of these servers and think I've graded you wrong, tell me and I'll recheck and correct the post.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Method is reproducible from the description above; happy to share the raw per-host results with anyone who wants to verify.&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>oauth</category>
      <category>security</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
