MCP Elicitation approval dialog cannot safely review or scroll long command arguments
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
What platform are you using?
Codex Desktop on Windows with an HTTP MCP server using MCP Elicitation.
What issue are you seeing?
The confirmation dialog for a SYSTEM-level MCP command displays the tool arguments as raw JSON. For a long PowerShell command:
- the script is rendered as one dense escaped JSON string;
- quotes appear as escape sequences such as
\u0027; - logical statements are not formatted on separate lines;
- the command can exceed the available modal height;
- no usable scrollbar or keyboard-accessible scrolling mechanism is apparent;
- the confirmation controls remain visible, but the user cannot confidently review the complete command.
The dialog title was equivalent to “Run this exact command as Windows LocalSystem?” and the payload contained executable, a long arguments array, workingDirectory, and timeoutSeconds.
Steps to reproduce
- Connect an MCP server that requests confirmation through Elicitation.
- Request execution of PowerShell with
-Commandcontaining a long multi-statement script. - Open the resulting approval dialog in Codex Desktop.
- Attempt to inspect the complete command and its exact targets.
- Observe that the content is dense, escaped, may not fit in the modal, and cannot be conveniently scrolled.
Expected behavior
The approval UI should make the complete request reviewable before consent:
- place the payload in a vertically and horizontally scrollable region;
- support mouse wheel, scrollbar, keyboard, selection, and copying;
- keep action buttons in a sticky footer;
- syntax-format executable, individual arguments, working directory, and timeout;
- render long script arguments as multiline code rather than an escaped JSON string;
- show a concise risk summary and affected paths above the raw request;
- allow expanding/collapsing the exact raw payload;
- clearly indicate when content extends beyond the visible area;
- never permit approval if part of the exact request is inaccessible.
Actual behavior
A large raw JSON block fills the dialog. The long script is difficult to parse and the user cannot reliably scroll through or review all of it before selecting Continue.
Safety impact
This is especially risky for privileged or destructive MCP tools. Confirmation is meaningful only when the user can inspect the complete executable, arguments, scope, and targets. A technically exact but practically unreadable payload encourages blind approval.
A screenshot reproducing the layout is available and can be supplied if maintainers need it.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the MCP Elicitation approval dialog in Codex Desktop and reproduce the issue with a long PowerShell command containing multiple statements. Done means the complete executable, arguments, working directory, timeout, and raw payload remain accessible for review and copying, with scrolling and controls usable before approval.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- powershell, rust
- Domain
- desktop, security
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100