Skip to main content
This is an OpenAI MCP extension, built on MCP form elicitation. Only ChatGPT shows these forms, on desktop and web.
requestFormInput lets a tool ask the user for input before it finishes. ChatGPT shows a native form, then calls the tool again with the answer. On top of standard MCP forms, it supports suggested values, option descriptions, thumbnails and resource pickers.

Example

A CAD app asks which part to inspect before opening it.

Parameters

extra

The second argument of the tool handler.

params

Each property of requestedSchema is an MCP form field (string, number, integer, boolean, single or multiple choice), with these additions:

Resource picker

A string field picks one resource and an array field picks several. options lists the resources you offer, and userOptions lets users add their own files or directories. In an array field, selection: "explicit" (the default) lets users select and deselect options, while "implicit" keeps every item that remains when the form is submitted. Implicit selection always lets users add files. On web, directory selection isn’t supported, and a form opened from a view only allows explicit selection without uploads.

Returns

On the first call, requestFormInput returns an input_required result: return it from the handler so ChatGPT shows the form. When ChatGPT calls the tool again with the answer, it returns what the user did. content is only set when the user accepts.

How it works

The form uses MCP’s multi-round-trip requests, which ChatGPT requires for forms. The tool returns an elicitation/create input request whose own requestedSchema is empty, and the OpenAI form goes in _meta["openai/elicitation"].requestedSchema. requestFormInput throws when the connection is older than MCP 2026-07-28, or when the client doesn’t declare both elicitation.form and the openai/elicitation form extension. It also throws when the answer has no valid action, doesn’t match requestedSchema, or names a resource you didn’t offer in a picker that allows no uploads.

registerTool

Register the tool that asks for input

McpServer

Every method of the server