MatrixRecord of · MCP Authorization 2026-07-28

An independent lab for agent authorization

How MCP servers authorize AI agents

Public MCP servers
52
Spec requirements
23

Explore the matrixSee what changedDownload the data

2 cells changed on See the ledger

Filter and group

All shows every requirement at a glance. A group shows its cells, and each cell opens its observation. A server's name opens its page with every requirement.

Support for each feature of MCP Authorization 2026-07-28 by server. Rows are servers in alphabetical order; columns are features grouped by category.
DiscoveryRegistrationAuthorizationTokensTransportDelegationConsent
Server52 listed, A to Z · nightly scan
cimdClient ID Metadata Documents supportedSHOULDAuthorization server
pkce-s256PKCE with S256 advertisedMUSTAuthorization server
httpsAll endpoints served over HTTPSMUSTAuthorization server
AirtableAccess: PublicAuth: OAuthAirtable scan
AmplitudeAccess: UnknownAuth: OAuthAmplitude scan
ApifyAccess: PublicAuth: OAuthApify scan
AsanaAccess: PublicAuth: OAuthAsana scan
AtlassianAccess: PublicAuth: OAuthAtlassian scan
AttioAccess: PublicAuth: OAuthAttio scan
AWS KnowledgeAccess: PublicAuth: No authenticationAWS Knowledge scan
BigQueryAccess: PublicAuth: OAuthBigQuery scan
BoxAccess: ClosedAuth: OAuthBox scan
BuildkiteAccess: PublicAuth: OAuthBuildkite scan
CalendlyAccess: UnknownAuth: OAuthCalendly scan
CanvaAccess: PublicAuth: OAuthCanva scan
ClickUpAccess: PublicAuth: OAuthClickUp scan
Cloudflare WorkersAccess: PublicAuth: OAuthCloudflare Workers scan
CloudinaryAccess: PublicAuth: OAuthCloudinary scan
DatadogAccess: UnknownAuth: OAuthDatadog scan
DeepWikiAccess: PublicAuth: No authenticationDeepWiki scan
FigmaAccess: PublicAuth: OAuthFigma scan
Fireflies.aiAccess: PublicAuth: OAuthFireflies.ai scan
GitHubAccess: PublicAuth: OAuthGitHub scan
GitLabAccess: PublicAuth: OAuthGitLab scan
GranolaAccess: PublicAuth: OAuthGranola scan
HubSpotAccess: PublicAuth: UnknownHubSpot scan
Hugging FaceAccess: PublicAuth: No authenticationHugging Face scan
IntercomAccess: PublicAuth: OAuthIntercom scan
LinearAccess: PublicAuth: OAuthLinear scan
Microsoft LearnAccess: PublicAuth: No authenticationMicrosoft Learn scan
MiroAccess: PublicAuth: OAuthMiro scan
MixpanelAccess: PublicAuth: OAuthMixpanel scan
monday.comAccess: PublicAuth: OAuthmonday.com scan
NeonAccess: PublicAuth: OAuthNeon scan
NetlifyAccess: PublicAuth: UnknownNetlify scan
NotionAccess: PublicAuth: OAuthNotion scan
PayPalAccess: PublicAuth: OAuthPayPal scan
PlaidAccess: ClosedAuth: OAuthPlaid scan
PostHogAccess: PublicAuth: OAuthPostHog scan
PostmanAccess: PublicAuth: OAuthPostman scan
Prisma PostgresAccess: PublicAuth: OAuthPrisma Postgres scan
RampAccess: UnknownAuth: OAuthRamp scan
SentryAccess: PublicAuth: OAuthSentry scan
SlackAccess: ClosedAuth: OAuthSlack scan
SquareAccess: PublicAuth: OAuthSquare scan
Stack OverflowAccess: PublicAuth: OAuthStack Overflow scan
StripeAccess: PublicAuth: OAuthStripe scan
StytchAccess: UnknownAuth: OAuthStytch scan
SupabaseAccess: PublicAuth: OAuthSupabase scan
TodoistAccess: PublicAuth: OAuthTodoist scan
VercelAccess: PublicAuth: OAuthVercel scan
WebflowAccess: PublicAuth: OAuthWebflow scan
WixAccess: PublicAuth: OAuthWix scan
ZapierAccess: PublicAuth: OAuthZapier scan
ZoomAccess: ClosedAuth: OAuthZoom scan
  • Supported
  • Partial
  • Unsupported
  • Unknown
  • Not applicable
  • Unknown no observation

Column heads

MUST · SHOULD · MAY
the level the revision puts on the requirement
RS · AS
the party it is observed on

Access who can connect

  • Public43
  • Closed4
  • Unknown5

Auth how clients authenticate

  • OAuth46
  • API key0
  • No authentication4
  • Unknown2

Rows

  • opens what the nightly scanner asked; it reads 14 requirements from public metadata, on OAuth servers only
  • a faint mark is a class nobody has stated yet
  • Alphabetical; nothing is scored or ranked.

The ledger, since the last run

124 status changes on record

4 scan runs since the last change. 12 servers observed for the first time, no status changed on the others.

  1. NeonClient ID Metadata Documents supported

    →Supported

    Passive scan · observed 4 times · source

    HTTP 200; client_id_metadata_document_supported: true

    3 earlier observations
    1. · Unsupported · Passive scan
    2. · Unsupported · Passive scan
    3. · Unsupported · Passive scan
  2. NeonIssuer identifier in authorization responses

    →Supported

    Passive scan · observed 4 times · source

    HTTP 200; authorization_response_iss_parameter_supported: true

    3 earlier observations
    1. · Unsupported · Passive scan
    2. · Unsupported · Passive scan
    3. · Unsupported · Passive scan

  1. VercelClient ID Metadata Documents supported

    →Supported

    Passive scan · observed 4 times · source

    HTTP 200; client_id_metadata_document_supported: true

    3 earlier observations
    1. · Unsupported · Passive scan
    2. · Unsupported · Passive scan
    3. · Unsupported · Passive scan

  1. BoxMetadata issuer matches the discovery URL

    →Unsupported

    Passive scan · observed 3 times · source

    HTTP 200; issuer: https://api.box.com, PRM named https://api.box.com/

    2 earlier observations
    1. · Supported · Passive scan
    2. · Supported · Passive scan
  2. BoxPRM reachable at a well-known URI

    →Unsupported

    Passive scan · observed 4 times · source

    HTTP 200; not at either well-known location (root HTTP 200, root HTTP 200)

    3 earlier observations
    1. · Supported · Passive scan
    2. · Supported · Passive scan
    3. · Supported · Vendor claim
  3. BuildkiteNo offline_access in advertised scopes

    →Unknown

    Passive scan · observed 3 times · source

    HTTP 200; scopes_supported: absent, so no scope is advertised to judge

    2 earlier observations
    1. · Supported · Passive scan
    2. · Unknown · Passive scan

Open the ledger: all 124 status changes