Where does this MCP server's sign-in break?
mcp_liveness_check_authWalks a remote MCP server's OAuth sign-in chain from outside, with no credential and no
client registration, and returns the first step that breaks, whose it is (server,
identity_provider, or client for a known client bug, with its issue URL), the fix, and
the spec section that requires it.
Steps, in order: one unauthenticated request (it must answer 401 with a WWW-Authenticate challenge); RFC 9728 protected-resource metadata; RFC 8414 or OpenID Connect discovery at the locations the 2026-07-28 MCP spec lists, with the issuer and PKCE S256 checked; and how a client gets a client ID (client ID metadata documents, dynamic registration, or a pasted ID). Then a verdict per client — claude.ai, Claude Code, ChatGPT, VS Code, Cursor — emulated from each client's published requirements and known issues; no client is run.
Use it when a user says a connector shows an error such as 'Authorization with the MCP
server failed' or 'Dynamic Client Registration not supported', or before publishing a server
that needs sign-in. verdict is ok, at_risk, broken, no_auth (it asked for no credential) or
unreachable. The URL must be public https; checks are limited to 30 a minute per caller.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The server's Streamable HTTP endpoint, as a user would enter it in a client, e.g. `https://example.com/mcp`. Public https only. | |
| client | No | Judge for one client only: `claude-ai` (claude.ai and Claude Desktop), `claude-code`, `chatgpt`, `vscode` or `cursor`. Omit to get all five. |