When submitting an updated version of my ChatGPT app, I encountered some confusion while filling out the MCP Server section.
What should be entered for the MCP Server URL? Should it be the same as my current ChatGPT app URL?
If it is the same, does that mean I need to upgrade my backend MCP Server to the new version at the time of submitting the update?
If I do not upgrade the MCP Server in advance, then the content I provide in the “Tool Justification” section will not match what reviewers actually see, since the server would still be running the old version.
However, if I upgrade the MCP Server when submitting the new version, that effectively means the new version is already live before approval is completed.
Could you please advise on the correct approach in this situation?
Hi! You’re free to use whatever versioning strategy you’d like, and the URL doesn’t have to stay the same across versions to my knowledge.
Generally, though, I see teams adopt a versionless policy–new endpoints tools can be added, but old ones not removed for some time (usually 2-3 submission versions back) to allow for transition. The URL does not change across versions in this scheme.
Your MCP server tool schema is snapshotted at the time of submission, but is not served until publication. That’s to say, your tools/list response is locked at time of submission, but all actual tool calls still make their way to your live server.
Hi case, I’m working on this very issue. We’ve already published our app and it’s available on ChatGPT. Now we want to make changes to our tools, just the descriptions, to improve the hook and make them easier for ChatGPT to recognize. But I’m not sure if I should create a new branch and submit it as version 1.1 to the app submission for review, or if I can publish directly to production? What happens if I have an updated version in production without having yet confirmed changes in a submit within the OpenAI panel and had the changes validated?
If you’re just changing tool descriptions, make the changes in prod and submit the new version. We continue serving the old tool descriptions until the new version is released.
Sorry, what is the expected behavior regarding resource versioning?
We noticed that resources were initially cached very aggressively (we actually thought they were simply stored as is), so we implemented a cache-busting mechanism by versioning resources (for example, by including a hash in the resource identifier).
This approach worked well in the past: after submitting an app update, ChatGPT would eventually refresh the resource and start using the new version. Recently, however, we’re seeing resources being invalidated before the app submission is approved and rolled out. As a result, ChatGPT attempts to load a resource that is no longer available.
Should we assume that tool descriptions are persisted once fetched, while resources are only cached temporarily and may be revalidated or refreshed independently of the app submission lifecycle?
What I am observing now is that even though I have submitted a new version, updated the input_schema, added new tools, and updated the MCP Server, the new functionality has not taken effect and the new tools cannot be triggered.
This suggests that the system is still using the old cached version and is not parsing or invoking the newly added tools. My assumption is that the new tools will not become available until the new version has been approved.
Fortunately, we made the schema forward-compatible; otherwise, users invoking the old tools would also run into errors.
Our app has now been under review for two weeks and has still not been approved. It is possible that the review timeline has become longer again.
I’m looking into this and will get back to you when I find something!
Unfortunately yes, app submission volume has increased greatly in the past couple weeks and we are spinning up resources to handle it, but it will take 2-3 more weeks for them to come fully online sadly.
Sorry Casey, I didnt get it.
Which one is the correct behavior moving forward?
a) Resources are part of the tools descriptions and therefor “stored” as part of a version
or b) Resources can be fetched at any time