I’m trying to implement progress notifications in a stateless MCP server using the TypeScript SDK(1.20.0). During testing, I found some important differences between the behavior in MCP Inspector and ChatGPT, and I need clarification on whether ChatGPT actually supports progress notifications at this time.
Using MCP Inspector:
-
Progress notifications work correctly
-
Inspector automatically sends a progressToken for each tool request
-
This token is available on the server via context._meta.progressToken
-
Since the token exists, the server can send:
{
"method": "notifications/progress",
"params": {
"progressToken": "...",
"progress": 5,
"total": 10
}
}
and Inspector receives and displays the updates in real time.
So the overall flow works correctly in MCP Inspector.
When the same MCP server is connected to ChatGPT:
-
ChatGPT does not send a progressToken with tool requests
-
Because no token is present, the server cannot associate outgoing progress notifications with any active request.
-
As a result, ChatGPT does not display progress updates (assumption, since no token = no mapping).
Does ChatGPT currently support progress notifications in MCP tools?
If not:
-
Is progress-token support planned for ChatGPT?
-
Is there any workaround for long-running tools (e.g., 2–3 minutes) without the connection being closed by ChatGPT?
Progress notifications work perfectly in MCP Inspector, so I want to understand whether ChatGPT’s lack of a progressToken is intentional, temporary, or a missing feature.
Hey @piyush_jaiswal, We reviewed your request and can confirm that progress notification is not a supported feature yet and we do not have a timeline to share for its implementation. Furthermore, In regards to a workaround for long running tool you can try creating the task quickly (return a CreateTaskResult) so ChatGPT / the model host does not keep a single connection open waiting for a 2–3 minute tool run. Then (a) provide an immediate short result or placeholder to the model if useful, (b) use the task ID + tasks/result polling (or tasks/list) to fetch the final result later, and (c) optionally send notifications/progress updates tied to the same task/progress token while the work runs. This is the MCP-specified pattern for long runs and is the supported workaround for avoiding connection timeouts. You can refer to the documentation here. Thank you!
@OpenAI_Support is this now supported??
Whats the default timeout for chatgpt web based mcp client?
Hey, this isn’t supported in ChatGPT right now. MCP Inspector may send a progressToken, but ChatGPT doesn’t currently expose/render MCP notifications/progress.
On timeout: I don’t see a documented default timeout for ChatGPT’s web MCP client, so I wouldn’t build around a fixed number. For longer jobs, return quickly with a task/job ID and use polling instead.
Hey, this isn’t supported in ChatGPT right now. MCP Inspector may send a progressToken, but ChatGPT doesn’t currently expose/render MCP notifications/progress.
On timeout: I don’t see a documented default timeout for ChatGPT’s web MCP client, so I wouldn’t build around a fixed number. For longer jobs, return quickly with a task/job ID and use polling instead.