You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat(provider): support MCP URL elicitation for Claude and Codex - #33211
T3 Code immediately declines MCP URL elicitations from Claude and Codex, so external browser requests never reach the user. Tools requiring authentication must fall back to sending links through the agent.
Related: #14878, which addressed form elicitation.
Change
Route URL elicitations through the existing approval flow across web, desktop, mobile, and child-thread approvals. Users open the destination on their own device, complete the browser steps, and choose Continue. Decline and Cancel retain their existing behavior.
Reuse the existing approval lifecycle, URL-opening APIs, and HTTP(S) URL validation. Claude and Codex share the same one-time response options. Links show their destination host, and the user guide explains remote localhost limitations.
Scope and approval
This PR extends the existing MCP approval capability to URL mode. The related issue's original scope excluded URL authentication; it is context for the existing approval path, not maintainer approval of this extension.
Verification
vp run check:changed passes: 574 selected tests, affected-package typechecks, formatting, lint, unused-code checks, and React compiler checks.
Adapter tests cover URL acceptance, decline/cancel, unsupported persistent grants, unsafe URLs, and late responses.
Native Chrome verification with a local fake Codex provider confirmed that opening the URL leaves approval pending; Continue sends exactly { action: "accept" } and clears the request.
Native mobile and Electron were not manually exercised.
Screenshots
Pending approval
After Continue
Implemented with GPT-6.1 Sol through the Codex harness in T3 Code. Reviewed by Claude Opus 5.5 and GPT-6.1 Sol.
No actionable comments were generated in the recent review.
Walkthrough
MCP URL elicitation now supports validated HTTP(S) links, one-time acceptance, approval URL propagation, and link presentation in web and mobile pending approvals.
The contracts package adds and exports httpPageUrl, which accepts HTTP(S) URLs with a host. Approval request schemas add optional elicitationUrl. Request-secret URL validation and client-runtime link normalization use the shared helper; the previous helper and its test file are removed.
URL elicitation options and responses apps/server/src/provider/CodexMcpElicitation.ts, apps/server/src/provider/CodexMcpElicitation.test.ts
URL-mode requests use Cancel, Decline, and Continue options. A response accepts only a valid URL with an accept decision; other decisions and invalid URLs are declined.
Claude and Codex adapters include URL-mode elicitation links in approval items. Tests cover URL cards, decisions, unsafe URLs, and Codex turn completion.
Pending approval state carries elicitation URLs to web and mobile controls. The interfaces display validated links and provide actions to open them. The permission guide describes browser requests.
No material issue remains that needs to be fixed before merging. If a browser blocks the link, users can still copy the displayed URL.
Pre-merge checks: 4
Check name
Status
Explanation
Title check
The title "feat(provider): support MCP URL elicitation for Claude and Codex" matches the main change. The changeset routes MCP URL elicitations from Claude and Codex through the existing approval flow…
Description check
The description covers the template's main sections: Problem, Change, Scope and approval, and Verification. It explains the problem (URL elicitations are declined immediately), the change (routing the…
Linked Issues check
Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check
Check skipped because no linked issues were found for this pull request.
Full details: Title check
Explanation
The title "feat(provider): support MCP URL elicitation for Claude and Codex" matches the main change. The changeset routes MCP URL elicitations from Claude and Codex through the existing approval flow, and the title names both providers and the feature. It is a conventional commit title in plain language, and it is 64 characters and 9 words, which is concise enough.
Full details: Description check
Explanation
The description covers the template's main sections: Problem, Change, Scope and approval, and Verification. It explains the problem (URL elicitations are declined immediately), the change (routing them through the existing approval flow), and the verification (check:changed, adapter tests, and a manual Chrome check, plus what was not tested). It also includes screenshots for the UI change. It does not link a triaged bug issue or maintainer approval. The related issue addresses form elicitation, and the author says that issue does not approve URL mode. The template requires approval for broader behavior changes, so this section is incomplete. The rest of the description is mostly complete, so the check passes with a note about the missing approval.
Finishing Touches
Generate unit tests (beta)
Create a new PR
Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
size:L100-499 changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.
1 participant
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
T3 Code immediately declines MCP URL elicitations from Claude and Codex, so external browser requests never reach the user. Tools requiring authentication must fall back to sending links through the agent.
Related: #14878, which addressed form elicitation.
Change
Route URL elicitations through the existing approval flow across web, desktop, mobile, and child-thread approvals. Users open the destination on their own device, complete the browser steps, and choose Continue. Decline and Cancel retain their existing behavior.
Reuse the existing approval lifecycle, URL-opening APIs, and HTTP(S) URL validation. Claude and Codex share the same one-time response options. Links show their destination host, and the user guide explains remote localhost limitations.
Scope and approval
This PR extends the existing MCP approval capability to URL mode. The related issue's original scope excluded URL authentication; it is context for the existing approval path, not maintainer approval of this extension.
Verification
vp run check:changedpasses: 574 selected tests, affected-package typechecks, formatting, lint, unused-code checks, and React compiler checks.{ action: "accept" }and clears the request.Screenshots
Pending approval
After Continue
Implemented with GPT-6.1 Sol through the Codex harness in T3 Code. Reviewed by Claude Opus 5.5 and GPT-6.1 Sol.