mcsanjeever /
mcp-ask-user-question
一个便携的 MCP 服务器,把 Claude Code / OpenCode 的 AskUserQuestion 工具以兼容形状暴露出来。Codex 接上后,Agent 提问就能弹原生表单、选项点一下就走,不再退化成纯文本对话。默认只走 MCP elicitation,兜底 provider 必须显式开启。 为什么做这个项目? 最近我越来越喜欢用 grilling 这条路子开发——Agent 在动手前,一件事一件事地逼我,把"大概是这样…
DTSoftware developmentDTAgent extensionDTCLIDTMCP serviceDTLinuxDTTerminalDTClaude CodeDTCodexDTOpenCode
About
一个便携的 MCP 服务器,把 Claude Code / OpenCode 的 AskUserQuestion 工具以兼容形状暴露出来。Codex 接上后,Agent 提问就能弹原生表单、选项点一下就走,不再退化成纯文本对话。默认只走 MCP elicitation,兜底 provider 必须显式开启。 为什么做这个项目? 最近我越来越喜欢用 grilling 这条路子开发——Agent 在动手前,一件事一件事地逼我,把"大概是这样"逼成"确定就是这样"。 这套体验在不同工具里落差很大: 在 Claude Code 和 OpenCode 里,有内置的 AskUserQuestion:带标题、带选项、带推荐项,点一下就回去了。 在 Codex 里没有这个工具。Agent 只能把问题打印成一坨文本,我再自己打字回答。对 grilling 这种高频追问的工作流,体验是断裂的——选项没法点、推荐项糊成一团、节奏退化为"读—想—敲"。 差的不是"能不能问",而是问与答之间的摩擦。一次问答没感觉,二十次下来就是舒服和难受的差别。 于是我把这个工具以 MCP 服务器的方式补了回来,让两边行为对齐。 核心亮点 | 亮点 | 说明 | |------|------| | 与 Claude Code 形状兼容 | 输入/输出结构与原生 AskUserQuestion 一致:questions 1–4、options 2–4、含推荐项、支持 multiSelect。 | | 默认只走原生 elicitation | auto provider 仅使用客户端本机的 MCP 表单 UI,不会偷偷开终端、弹浏览器或桌面框。 | | 兜底必须显式 | terminal provider 需在配置里点名启用;写提示时绕开 stdout,不污染 MCP 的 stdio。 | | 失败状态分得清 | answered / cancelled / declined 三态返回,多问题全有或全无,不给 Agent 留残留数据去猜。 | | 一行 npx 即用 | 无需装包,无需密钥,无需账号。 | 一个必须说的坑 Codex 需要显式放行 MCP elicitation,否则工具调用会直接拿到 declined,根本不弹窗。把 mcpelicitations 在 granular approvalpolicy 里打开: toml approvalpolicy = { granular = { sandboxapproval = true, rules = true, mcpelicitations = true, requestpermissions = true, skillapproval = true } } 另外,不要在需要提问的场景里用 codex --yolo。--yolo 会绕过审批,而 Codex 把 MCP elicitation 当作需用户确认的提示——在这种模式下,表单出现之前就可能被自动拒绝。 如果你要"文件/命令随便跑,但用户提问还是要弹窗",应该只放宽沙盒、保留 elicitation: bash codex --sandbox danger-full-access -c 'approvalpolicy={granular={sandboxapproval=true,rules=true,mcpelicitations=true,requestpermissions=true,skillapproval=true}}' 使用场景 在 Codex 里跑 grilling / grill-me 工作流,让 Agent 一项一项追问时,每问都能弹结构化表单。 在不开 --yolo、又希望 Agent 在关键决策点先求证的协作流里。 给其它不支持 AskUserQuestion 但支持 MCP elicitation 的客户端兜一个一致的提问工具。
Discovery history
- 阮一峰周刊·用户投稿
Jul 3, 2026 · 1 observations
Discuss this product