pub struct OAuthConfig {
pub issuer: Option<String>,
pub mcp_server_url: Option<String>,
pub client_id: Option<String>,
pub client_name: Option<String>,
pub dcr_enabled: bool,
pub scopes: Vec<String>,
pub cache_file: Option<PathBuf>,
pub redirect_port: u16,
}Expand description
OAuth configuration for CLI authentication flows.
§Migration note (pmcp 2.5.0)
client_id changed from String to Option<String> to support RFC 7591
Dynamic Client Registration. Existing callers that passed a pre-registered
id must now wrap it in Some(...):
// Before (pmcp < 2.5.0):
OAuthConfig { client_id: "my-client".to_string(), /* ... */ }
// After (pmcp 2.5.0+):
OAuthConfig {
client_id: Some("my-client".to_string()),
client_name: None,
dcr_enabled: false,
/* ... */
}Fields§
§issuer: Option<String>OAuth issuer URL (e.g., https://auth.example.com).
If None, will auto-discover from MCP server URL.
mcp_server_url: Option<String>MCP server URL for auto-discovery (required if issuer is None).
client_id: Option<String>OAuth client ID. When None and dcr_enabled is true and the
discovery metadata advertises a registration_endpoint, the SDK
auto-performs RFC 7591 Dynamic Client Registration to obtain one.
client_name: Option<String>Client name advertised to the authorization server during DCR
(RFC 7591 §2). Only consulted when DCR fires. Falls back to the
literal "pmcp-sdk" if None at DCR time.
dcr_enabled: boolEnable RFC 7591 Dynamic Client Registration when client_id is
None and the server advertises a registration_endpoint.
Defaults to true via Default::default(); set to false to
opt out and require an explicit client_id.
scopes: Vec<String>OAuth scopes to request.
cache_file: Option<PathBuf>Cache file path for storing tokens.
redirect_port: u16Redirect port for localhost callback (default: 8080).
Trait Implementations§
Source§impl Clone for OAuthConfig
impl Clone for OAuthConfig
Source§fn clone(&self) -> OAuthConfig
fn clone(&self) -> OAuthConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more