It converts a one-way generation into a conversation at the moments that decide the outcome — an ambiguous requirement, a missing detail, a step that should not run unreviewed — and holds the run open while you answer instead of finishing on an assumption.
A bridge between an MCP client and a desktop dialog box. When the model needs something from you it calls the tool, a text box appears on your screen, and the run stays open until you type an answer or the wait expires.
- `input_user_prompt` — puts a question in front of you and returns what you typed, without ending the generation
- A dialog with text wrapping, drawn by zenity on Linux and osascript on macOS
- A wait you control: `--timeout` in seconds or `USER_PROMPT_TIMEOUT`, against a default of 20 minutes
Linux needs zenity; macOS uses osascript, which ships with the system. The install script detects your OS and architecture and drops a prebuilt binary on your PATH; building from source needs Go 1.18+. The client runs the `user-prompt-mcp` command over stdio. Because a model will only ask when it decides to, the README pairs it with a standing rule telling the assistant to use the tool whenever it is stuck, has a question, or thinks it is finished.
One command — curl -sSL https://raw.githubusercontent.com/nazar256/user-prompt-mcp/main/install.sh | bash
