diff --git a/crates/rmcp/src/transport/auth.rs b/crates/rmcp/src/transport/auth.rs index 6397bb4b..5e73a332 100644 --- a/crates/rmcp/src/transport/auth.rs +++ b/crates/rmcp/src/transport/auth.rs @@ -623,6 +623,7 @@ impl AuthorizationSession { mut auth_manager: AuthorizationManager, scopes: &[&str], redirect_uri: &str, + client_name: Option<&str>, ) -> Result { // set redirect uri let config = OAuthClientConfig { @@ -634,7 +635,7 @@ impl AuthorizationSession { // try to dynamic register client let config = match auth_manager - .register_client("MCP Client", redirect_uri) + .register_client(client_name.unwrap_or("MCP Client"), redirect_uri) .await { Ok(config) => config, @@ -793,6 +794,7 @@ impl OAuthState { &mut self, scopes: &[&str], redirect_uri: &str, + client_name: Option<&str>, ) -> Result<(), AuthError> { if let OAuthState::Unauthorized(mut manager) = std::mem::replace( self, @@ -802,7 +804,8 @@ impl OAuthState { let metadata = manager.discover_metadata().await?; manager.metadata = Some(metadata); debug!("start session"); - let session = AuthorizationSession::new(manager, scopes, redirect_uri).await?; + let session = + AuthorizationSession::new(manager, scopes, redirect_uri, client_name).await?; *self = OAuthState::Session(session); Ok(()) } else { diff --git a/examples/clients/src/auth/oauth_client.rs b/examples/clients/src/auth/oauth_client.rs index f3e7e368..ea7a1d3d 100644 --- a/examples/clients/src/auth/oauth_client.rs +++ b/examples/clients/src/auth/oauth_client.rs @@ -100,7 +100,11 @@ async fn main() -> Result<()> { .await .context("Failed to initialize oauth state machine")?; oauth_state - .start_authorization(&["mcp", "profile", "email"], MCP_REDIRECT_URI) + .start_authorization( + &["mcp", "profile", "email"], + MCP_REDIRECT_URI, + Some("Test MCP Client"), + ) .await .context("Failed to start authorization")?;