INNER CODE UNIT · Rust

perform_oauth_flow

modelcontextprotocol/rust-sdk · conformance/src/bin/client.rs:262

async fn perform_oauth_flow(
    server_url: &str,
    _ctx: &ConformanceContext,
) -> anyhow::Result<AuthClient<reqwest::Client>> {
    // Always the discover lifecycle here (not `conformance_lifecycle()`):
    // this flow serves `run_auth_client`, whose 2026-07-28 auth mocks require
    // the per-request MCP-Protocol-Version negotiation.
    let challenge = initialize_challenge(
        server_url,
        ClientLifecycleMode::Discover {
            preferred_versions: preferred_protocol_versions(),
        },
    )
    .await?;
    let mut oauth = OAuthState::new(server_url, None).await?;

    // Discover + register + get auth URL
    let request = AuthorizationRequest::new(REDIRECT_URI)

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…