Hooks with an output of ASK are supposed to stop the agent from executing, for example, an MCP request, until the user approves. On version <2.2, that worked, however at some point with v2.3 change it stopped working and allows the MCP command to be executed despite showing that the output was ASK in the hook logs.
Steps to Reproduce
Configure a hook to run before MCP execution that has an ask output. Example in the additional information section below.
Ask the agent to execute an MCP command that should trigger the hook.
Hook logs show the hook ran with an output of “ask”, but the MCP command was executed without user intervention.
Expected Behavior
When the hook output is ASK, the MCP command should not execute and the agent should stop until the user responds.
Hey, thanks for the report. I can see in the screenshot that the hook returns ASK, but the MCP commands run without waiting for confirmation.
This looks like a regression in hook permission handling. We had similar issues with hooks in previous versions, like userMessage and agentMessage being ignored in v2.0.x.
I’m escalating this to the dev team. The Request ID is already in the report, so that should help us track it down.
When a beforeShellExecution hook returns permission: "ask", the command executes immediately without prompting the user for approval.
The allow and deny permissions work correctly - only ask is broken.
Permission
Expected
Actual
Status
"allow"
Command runs
Command runs
Works
"deny"
Command blocked
Command blocked
Works
"ask"
User prompted
Command runs (no prompt)
Broken
Environment:
Platform: Linux (Remote SSH)
Broken Version: 2.4.21
Working Version: 2.1.50 (regression)
The Hooks panel in Cursor Settings shows the hook correctly returned “ASK” (see attached screenshot), confirming Cursor receives the response but ignores it.