chatgpt-ask-user-mcp
Provides ChatGPT with an ask_user tool that renders structured question cards with options and free-text input, then resumes the conversation with the user's submitted answer.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@chatgpt-ask-user-mcpPlan my trip to Japan and ask me for preferences instead of deciding."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ChatGPT Ask User MCP
A tiny remote MCP server for ChatGPT Web, deployed on Cloudflare Workers.
It gives ChatGPT one tool, ask_user. When the model needs a clarification or decision, the tool requests the information through standard MCP elicitation. The user's answer returns through the same MCP operation instead of the component posting a second user-authored chat message.
Why this version is different
Versions before 0.4 used a custom MCP App widget. Submitting the widget called ChatGPT's sendFollowUpMessage API, so the answer appeared as a new conversation message and started another chat turn.
Version 0.4 removes that path entirely.
The flow is now:
User message
|
v
ChatGPT calls ask_user
|
v
MCP server returns input_required
|
v
ChatGPT renders the elicitation form
|
v
User answers
|
v
The MCP client retries the original tool call
with inputResponses
|
v
ask_user returns the answer
|
v
ChatGPT continues the original taskThere is no sendFollowUpMessage call, no app.sendMessage fallback, and no custom iframe widget.
This removes the extra component-authored conversation message. It does not make any promise about how a particular ChatGPT plan accounts for model or tool usage internally.
Related MCP server: Clarify MCP Server
Features
single-choice questions
multiple-choice questions
optional free-text alongside choices
free-text-only questions
up to 8 choices
per-option labels, stable values, and descriptions
optional short context
stateless Cloudflare Worker
no database, KV, Durable Object, or conversation storage
The elicitation UI itself is rendered by the MCP client. Button text, field placeholder styling, collapsing behavior, and other host UI details are therefore controlled by ChatGPT rather than by this server.
Requirements
The MCP client must support MCP elicitation / multi-round-trip input_required handling. This server uses the current stateless MRTR flow and rejects legacy protocol connections that cannot complete it.
Deploy to Cloudflare
Deploy this repository to Cloudflare Workers.
The Worker exposes the MCP endpoint at:
https://<your-worker>.<your-subdomain>.workers.dev/mcpHealth check:
https://<your-worker>.<your-subdomain>.workers.dev/healthNo additional Cloudflare storage service is required.
Add it to ChatGPT Web
Enable Developer mode in ChatGPT.
Open Settings -> Apps -> Create.
Enter the deployed URL ending in /mcp.
Select No authentication.
Scan tools and save the app.
Enable the app in a chat.
Example prompt:
Work through this task. Whenever a choice would materially change the approach, use Ask User to ask me instead of deciding for me.
Tool input
ask_user accepts:
question: required question text.
options: optional list of up to 8 choices.
allow_multiple: whether more than one listed choice can be selected.
allow_other: whether the user can also provide free text.
context: optional short explanation for why the answer is needed.
When options is omitted or empty, the elicitation is a free-text question.
Implementation
MCP server: @modelcontextprotocol/server v2
Cloudflare transport: createMcpHandler from agents/mcp/server
Human input: MCP input_required + elicitation
Hosting: Cloudflare Workers
Storage: none
UI: rendered by the MCP client
The Worker is stateless. On an input_required response, no Worker remains suspended while the user answers; the client retries the original operation with inputResponses.
Local development
Requirements: Node.js 20+.
npm install
npm run build
npm run devFor MCP inspection, point a compatible inspector/client at the local or tunneled /mcp endpoint.
Deploy from the CLI
npm install
npm run deployLicense
Copyright (C) 2026 zjm54321
Licensed under the GNU General Public License v3.0 only (GPL-3.0-only). See LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Give any AI agent a way to ask a person — for approval, a decision, an answer or a review.
Your agent asks you a question on your phone, waits for the answer, then resumes.
Create AI surveys with dynamic follow-up probing directly from your AI assistant.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables AI assistants to request human input through interactive GUI dialogs with quiz-style questions, supporting multiple choice and free-form responses for clarification, decisions, and knowledge extraction.1-
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to ask clarification questions and receive structured user input through a Human-in-the-Loop interface.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to request human input through native macOS dialogs for clarifying questions and user interactions.5 npmMIT
- AlicenseAqualityCmaintenanceEnables AI agents to prompt users for input directly within the chat UI using MCP's elicitation capabilities, allowing for interactive multi-turn conversations without leaving the conversation interface.115 npm1MIT