<?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;p&gt;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;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>
