mirror of
https://github.com/openai/codex.git
synced 2026-11-13 14:46:14 +00:00
Add per-login MCP OAuth client registration selection (#38052)
## What changed - Add `--oauth-client-registration` with `auto` and `dcr` choices to `codex mcp add` and `codex mcp login`. - Add the equivalent optional `clientRegistration` field to `mcpServer/oauth/login` and the generated protocol schemas. - Keep automatic dynamic client registration as the default, prefer a configured OAuth client ID when present, and apply the selection only to the current login without persisting it in MCP configuration. ## Testing - Cover dynamic registration and configured-client OAuth flows through the app server. - Verify the CLI does not persist the per-login registration choice. GitOrigin-RevId: 653a4a1054ff43c2c5d52ae863b6a96d21692a53
This commit is contained in:
1 parent
965b9f263a
commit
6dc3ac8721
22 files changed
+407
-65
No files matched your search
@@ -2195,6 +2195,7 @@ mod tests {
|
||||
params: v2::McpServerOauthLoginParams {
|
||||
name: "server-a".to_string(),
|
||||
thread_id: None,
|
||||
client_registration: None,
|
||||
scopes: None,
|
||||
timeout_secs: None,
|
||||
},
|
||||
|
||||
@@ -196,6 +196,9 @@ pub struct McpServerOauthLoginParams {
|
||||
pub name: String,
|
||||
#[ts(optional = nullable)]
|
||||
pub thread_id: Option<String>,
|
||||
/// Registration strategy for this login only; omission preserves automatic DCR.
|
||||
#[ts(optional = nullable)]
|
||||
pub client_registration: Option<McpServerOauthClientRegistration>,
|
||||
#[serde(default, skip_serializing_if = "Option::is_none")]
|
||||
#[ts(optional = nullable)]
|
||||
pub scopes: Option<Vec<String>>,
|
||||
@@ -204,6 +207,15 @@ pub struct McpServerOauthLoginParams {
|
||||
pub timeout_secs: Option<i64>,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Eq, Default, JsonSchema, TS)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[ts(rename_all = "camelCase", export_to = "v2/")]
|
||||
pub enum McpServerOauthClientRegistration {
|
||||
#[default]
|
||||
Auto,
|
||||
Dcr,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[ts(export_to = "v2/")]
|
||||
|
||||
Reference in new issue
Block a user