Most SaaS companies now ship an official remote MCP server, and most of them sit behind OAuth. We wanted to know how closely those servers follow the current MCP authorization spec (the 2026-07-28 revision), so we checked the official servers of 67 vendors from the outside. 61 of them require a login. This post is about those 61.

The short version: the basics are done everywhere. The newer parts of the spec are not.

How we checked

We used our free MCP Server Check. It is passive. For each server it sends one unauthenticated initialize request, reads the public OAuth discovery documents, and calls tools/list only if the server answers without a token. It never calls a tool and never sends a token.

We ran every server on October 26 and again on November 4, 2026. The numbers below are from November 4. Results are point in time and checked from Cloudflare’s network, so a server can look different from another network or a few days later.

What every server gets right

All 61 answer an anonymous request with HTTP 401, and all 61 advertise PKCE with S256. That is the part of the spec that stops the most obvious mistakes, and nobody skipped it.

56 of 61 also publish OAuth Protected Resource Metadata (RFC 9728) and point to it from the 401 response, which is how a client finds where to log in. The other 5 either use the older 2025-03-26 discovery layout or publish the metadata without pointing to it in the 401.

Where most of them fall behind

Client registration. The current spec says Dynamic Client Registration “is deprecated and retained for backwards compatibility with authorization servers that do not support Client ID Metadata Documents.” 25 of 61 advertise Client ID Metadata Documents (CIMD). The other 36 rely on dynamic registration or manual client setup. Nothing breaks today, but every client that connects to those 36 still needs a registration step the spec is moving away from.

Issuer check. The spec says authorization servers SHOULD include the iss parameter in authorization responses (RFC 9207), and advertise it with authorization_response_iss_parameter_supported. It lets a client catch an OAuth mix-up attack, where a code from one authorization server is sent to another. 40 of 61 do not advertise it.

Scope hint. 22 of 61 give the client no hint about which scopes to request, neither in the 401 nor in scopes_supported. The client then has to guess, and guessing usually means asking for more than it needs.

Who moved in nine days

Between October 26 and November 4, six changes showed up:

  • Apollo, Cal.com and Neon started advertising Client ID Metadata Documents.
  • Neon and Mercado Pago started advertising the RFC 9207 issuer parameter.
  • Datadog’s 401 now points to its protected resource metadata.

None of these companies told us about it, and we did not contact them. It is a sign the spec changes are being picked up, just not all at once.

The full table

Score is out of 100 and also includes transport and HSTS checks that are not shown as columns. “Discovery: partial” means the server uses the older discovery layout or does not point to its metadata from the 401.

CompanyScoreCIMDiss (RFC 9207)Scope hintDiscovery
Fireflies100yesyesyesok
Notion100yesyesyesok
Airtable98yesnoyesok
Apollo98yesnoyesok
Canva98yesnoyesok
Clerk98yesyesyesok
Klaviyo98yesyesnook
Linear98yesyesyesok
Neon98yesyesnook
Railway98yesyesyesok
Sentry98yesyesyesok
Tavily98yesyesyesok
Vercel98yesnoyesok
monday.com98yesyesnook
Amplitude96yesnoyesok
Cal.com96yesnonook
Grafana96yesnoyesok
Granola96yesnoyesok
Honeycomb96yesnoyesok
MongoDB96yesyesnook
PostHog96yesnoyesok
Resend96yesyesnook
Todoist96yesnoyesok
Figma95noyesyesok
GitHub95noyesyesok
Supabase95noyesyesok
Semgrep94yesnonook
Asana93nonoyesok
Buffer93nonoyesok
ClickUp93noyesyesok
Close93nonoyesok
Gamma93noyesyesok
GitLab93nonoyesok
Jam93nonoyesok
Miro93nonoyesok
Netlify93nonoyesok
Slack93nonoyesok
Stripe93nonoyesok
Ahrefs91nononook
Box91nononook
Cloudflare Bindings91noyesnook
Datadog91nononook
Dropbox91nonoyesok
Hex91nononook
HubSpot91nononook
Intercom91nonoyesok
Mux91nononook
PagerDuty91nonoyesok
Postman91nononook
Prisma91nonoyesok
Wix91nonoyesok
Make90nononook
PayPal90nononook
Render90nononook
Square90nononook
Webflow90nononook
Apify89yesyesyespartial
Mercado Pago84noyesyespartial
Zapier84nonoyespartial
Plaid82noyesnopartial
Atlassian80nononopartial

Notion and Fireflies passed every check.

Six more vendors answered tools/list without a token: Hugging Face, Context7, Shopify (setup.shopify.com), DeepWiki, Firecrawl and Browserbase. They are documentation, search and scraping tools where open access looks like a deliberate choice, so we left them out of the auth numbers. Nine addresses we tried did not answer as MCP servers, usually because we guessed the wrong URL, and they are not reported.

If you run one of these servers

The three changes are small. Advertise client_id_metadata_document_supported once your authorization server supports CIMD, include iss in authorization responses and set authorization_response_iss_parameter_supported: true, and put a scope in the WWW-Authenticate header of the 401.

If you think we scored your server wrong, run it through the checker and tell us at hello@x1y1.co. We would rather fix a rule than publish a wrong number. There is also a JSON API: https://x1y1.co/api/mcp-check?url=<server>.