Probe a URL and report how the MCP server wants clients to sign in (editors and above); changes nothing
/v1/teams/{team}/mcp-servers/detect-authSends one unauthenticated MCP initialize request to url (no identity token, no header) and follows the MCP authorization spec (2025-11-25) as a client would; the 401 challenge's resource_metadata (else the well-known protected-resource URIs; path form, then root), the resource metadata's authorization server, then its metadata (RFC 8414 path insertion, OpenID Connect path insertion, OpenID Connect path appending; the two root forms for an issuer without a path). Every request goes through the address guard and the internal-network allowlist (no proxy, no redirects, 5 s each, responses of at most 64 KiB, at most 8 requests). Nothing is stored or audited. Problems found (resource or issuer mismatch, no PKCE S256, ...) are reported in the result with status 200, not as errors. 422 url_not_allowed as for create. 409 team_archived. 429 slow_down (10 a minute per person).
Path Parameters
Team slug or ID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/teams/string/mcp-servers/detect-auth" \ -H "Content-Type: application/json" \ -d '{ "url": "string" }'{ "data": { "url": "string", "outcome": "no_auth", "httpStatus": 0, "challenge": { "scheme": "Bearer", "resourceMetadataUrl": "string", "scope": [ "string" ], "error": "string" }, "resourceMetadata": { "url": "string", "resource": "string", "resourceName": "string", "authorizationServers": [ "string" ], "scopesSupported": [ "string" ], "bearerMethodsSupported": [ "string" ] }, "suggestedUrl": "string", "authorizationServer": { "issuer": "string", "metadataUrl": "https://github.com/.well-known/oauth-authorization-server/login/oauth", "authorizationEndpoint": "string", "tokenEndpoint": "string", "revocationEndpoint": "string", "registrationEndpoint": "string", "scopesSupported": [ "string" ], "codeChallengeMethodsSupported": [ "string" ], "tokenEndpointAuthMethodsSupported": [ "string" ], "grantTypesSupported": [ "string" ], "issParameterSupported": true, "clientIdMetadataDocumentSupported": true }, "registration": { "options": [ "dcr" ], "recommended": "dcr", "cimdUnavailableReason": "not_supported", "matchingProviders": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "slug": "string", "name": "string", "preset": "github", "logoUrl": "string", "kind": "oauth2", "server": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "slug": "string", "name": "string", "teamSlug": "string" } } ], "redirectUri": "https://mcp.example.com/connect/callback", "clientMetadataUrl": "string" }, "suggestedScopes": [ "string" ], "problems": [ { "code": "no_resource_metadata", "blocking": true, "message": "string" } ], "steps": [ { "purpose": "mcp", "url": "string", "httpStatus": 0, "result": "ok", "latencyMs": 0 } ] }}