An independent lab for agent authorization
How MCP servers authorize AI agents
- Public MCP servers
- 52
- Spec requirements
- 23
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.
| Discovery | Registration | Authorization | Tokens | Transport | Delegation | Consent | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Server52 listed, A to Z · nightly scan | |||||||||||||||||||||||
| 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
52 of 52 servers, 23 of 23 features
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 record4 scan runs since the last change. 12 servers observed for the first time, no status changed on the others.
NeonClient ID Metadata Documents supported
→Supported
Passive scan · observed 4 times · source
HTTP 200; client_id_metadata_document_supported: true
3 earlier observations
- · Unsupported · Passive scan
- · Unsupported · Passive scan
- · Unsupported · Passive scan
NeonIssuer identifier in authorization responses
→Supported
Passive scan · observed 4 times · source
HTTP 200; authorization_response_iss_parameter_supported: true
3 earlier observations
- · Unsupported · Passive scan
- · Unsupported · Passive scan
- · Unsupported · Passive scan
VercelClient ID Metadata Documents supported
→Supported
Passive scan · observed 4 times · source
HTTP 200; client_id_metadata_document_supported: true
3 earlier observations
- · Unsupported · Passive scan
- · Unsupported · Passive scan
- · Unsupported · Passive scan
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
- · Supported · Passive scan
- · Supported · Passive scan
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
- · Supported · Passive scan
- · Supported · Passive scan
- · Supported · Vendor claim
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
- · Supported · Passive scan
- · Unknown · Passive scan