MCP authentication breaks quietly. Catch it first. 

MCPComp scans, grades, and monitors the OAuth layer of MCP servers. Every finding cites the spec requirement it violates  no opinions, no noise. 

Scan your server
MCPComp
Search...⌘K
Findings3
Advisories
Workspace
Servers
Baselines
Scans
Tenants
Favorites
mcp.linear.app
Registry sweep
Entra tenant
Environments
Production
Staging
Help & Support

Findings

high

Issuer does not match discovery URL

mcp.acme.dev — Grade F

2h
driftProject

code_challenge_methods_supported dropped

Changed since baseline

1d
high

401 without WWW-Authenticate

Challenge carries no metadata pointer

2d
entra

Client secret expires in 11 days

Prod MCP/deploy — rotate now

4h
medium

RFC 9207 iss not advertised

Advisory — does not affect grade

1w
Project

mcp.linear.app — clean scan

Grade A, 0 violations

doctor

Client auth state (inferred)

Server green, client failing

1w
Project

Registry sweep finished

11,496 servers, 500 graded failures

Productionmcp.acme.devdiscovery

Issuer does not match discovery URL

$ mcpcomp https://mcp.acme.dev/mcp
Grade: F (1 requirement violation)
[high] The authorization server's issuer does not match the URL it was fetched from
expected https://auth.acme.dev, got https://old.acme.dev
spec: RFC 8414 §3.3 — a reference client refuses this metadata.
Compare with baseline
Spec citation
baseline asMetadata.issuer changed 2 scans ago
Activity

monitor moved from Grade A to Grade F

2 hours ago

baseline recorded drift in asMetadata.issuer

2 hours ago

Verified against the entire official MCP registry.

11,496 remote servers scanned. About 10% of OAuth implementations fail.

Vercel
Linear
Supabase
GitHub
Stripe
Slack
Figma
Notion
Read the registry sweep

Three questions, answered from outside

MCPComp does not replace Auth0, Entra, Okta or WorkOS. It sits above them and checks that the whole setup still works — the spec has shipped four revisions in eighteen months, identity providers disagree on the primitives, and clients diverge. Read the research

Is our MCP authentication working right now?

Will anything break soon?

If something is wrong, what changed?

Agents

Diagnose without leaving the conversation

The scanner is itself an MCP server. Add mcpcomp serve to any client, and an agent whose MCP connection is failing can run the diagnosis itself — read-only, no credentials.

Add mcpcomp to...
Claude CodeAgent
CursorAgent
ChatGPTAgent
GitHub CopilotAgent
CodexAgent
WindsurfAgent

Support triage in one command

mcpcomp doctor answers the first support question — whose layer is it — from the outside, with no credentials.

doctor Classification
Suggestions
nanMobile App RefactorSlack
Duplicate of
Related to
nan

Why this layer was blamed

Every layer visible without credentials checks out — a fully green server plus a failing client is itself the diagnosis

Alternatives

yannerin

scan_auth and diagnose_auth_failure

Two read-only tools, exposed over stdio. Connect them to Claude Code, Cursor, ChatGPT, and more.

// mcpcomp serve (stdio)

"mcpServers": {

"mcpcomp": {

"command": "npx"

Ask anything
Continuous monitoring

Catch drift before it pages you

A diff engine over the metadata documents. The same probes on a schedule, compared against a committed baseline — a field disappears, an issuer changes, a secret nears expiry, and you know first.

30
AUG 3
10
17
AUG 22
24
SEP
Issuer changed
PKCE S256 dropped
Secret expires in 11 days
New protocol revision

Grades a reader can check

The letter counts requirement violations only — recommendations a server skips are advisories, and never decide the grade.

Scan report

Grade
A 0 violations
Advisories
RFC 9207 iss not advertised
Checks
Discovery PASS Client compatibility PASS Token trust 1 advisory

Baseline drift

Baselines live in the repository, so drift arrives as a reviewable diff — no scheduler, no database.

issuer changed
code_challenge_methods_supported dropped
Clean scan

No drift since the committed baseline

Daily, via cron

Every finding cites
the requirement it enforces

Official conformance identifiers
Normative MUST or SHOULD, linked
Heuristics say so in their message
mcp.linear.appScan report•••
Grade:A0 violations

Advisories do not affect the grade. Authorization-response issRFC 9207 binding is not advertised — enable it and publish authorization_response_iss_parameter_supported: true.

Discovery

PRM reachable, issuer identity, the full discovery ladder.

Client compatibility

PKCE S256, DCR or CIMD, RFC 9207, protocol revisions.

Token trust

HTTPS everywhere, scope minimization, offline_access absent.

Credential expiry

The one failure metadata cannot show — read from inside Entra.

The toolchain

One binary,
every layer

Scan, diagnose, verify, monitor, and rotate — the CLI covers the whole authentication path, from discovery metadata to the credential that expires inside your identity provider.

Your MCP doesn't connect since this morning...

A
ACMENew request
Multi-cloud costdashboard
Planning
📅Q4 2025

mcpcomp <url>

Grade a server's OAuth layer in one command

#20319igor/lin 15287add sourc...
igorlinkedigor/lin 15287add sou...
igorchanged status from In Progre...
GitHubchanged status from In Revie...
igorchanged status from Ready...

mcpcomp doctor

Classify whose layer broke — server, AS, or client

Inbox

mcpcomp verify

Prove the M2M token path end to end

mcpcomp entra --rotate

Rotate expiring secrets with zero downtime

mcpcomp serve

Run the scanner as an MCP server for agents

--baseline

Diff scans and alert when configuration drifts

--json

--json

Machine-readable reports with honest exit codes

Your uptime monitor says green. Is auth?