Codex Ask User
Enables Codex to clarify requirements via native MCP elicitation controls, supporting single/multiple-choice and free-text questions with recommended answers and a discuss-first option.
README
Codex Ask User
Codex Ask User is a local Model Context Protocol (MCP) server that gives Codex a native, structured way to clarify requirements before it commits to a plan or implementation.
It uses MCP elicitation so Codex CLI and Codex desktop can display native controls for:
- single-choice questions;
- multiple-choice questions;
- free-text and custom answers;
- recommended choices that are labeled and preselected;
- a Discuss with Codex first path that returns to chat before asking again;
- session-scoped automatic selection of recommended answers.
Requirements
- Node.js 20 or newer
- Codex CLI or Codex desktop with MCP elicitation enabled
Build and test
npm install
npm test
The build produces a self-contained MCP server at plugins/ask-user/dist/server.js.
Install as a Codex MCP server
Build the project, then register the generated server using its absolute path:
codex mcp add ask-user -- node /absolute/path/to/codex-ask-user/plugins/ask-user/dist/server.js
Start a new Codex CLI session or desktop task after registration. The server exposes these tools:
ask_userpresents one to three single-choice, multiple-choice, or free-text questions.set_question_preferencesenables, disables, or reports automatic use of recommended answers for the current MCP session.
The repository also contains an installable Codex plugin bundle in plugins/ask-user. Its .mcp.json uses ${PLUGIN_ROOT}, so the bundle remains relocatable.
Codex approval policy
MCP elicitation must be allowed by the active Codex approval policy. To keep other prompt categories non-interactive while allowing questions, use:
approval_policy = { granular = { sandbox_approval = false, rules = false, mcp_elicitations = true, request_permissions = false, skill_approval = false } }
In Codex desktop, the task's permission selector can override config.toml. Full access uses an approval policy that rejects MCP elicitations without displaying the question. Select the custom configuration and start a new task after changing the policy.
If ask_user immediately returns declined without visible UI, check the task's active approval policy before treating the result as a user decision.
Example
An agent can call ask_user with a recommended option and an open-ended alternative:
{
"questions": [
{
"id": "database",
"header": "Database",
"question": "Which database should back the first release?",
"kind": "single",
"options": [
{
"label": "PostgreSQL",
"description": "A strong default for production workloads.",
"recommended": true
},
{
"label": "SQLite",
"description": "Simpler deployment for a local-first application."
}
],
"allow_other": true,
"allow_discussion": true
}
]
}
Selecting Always use recommended choices automatically resolves later questions that have recommendations during the current MCP session. Questions without recommendations are still shown. Ask Codex to stop auto-selecting recommendations to restore the default behavior.
Development
npm run check
npm run build
npm test
src/server.tscontains the MCP server and tool implementation.tests/server.test.jstests elicitation flows through an in-memory MCP client.scripts/build.mjsbundles the server with esbuild.plugins/ask-usercontains the Codex plugin manifest and MCP configuration.
Author
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.