DEV Community

Edwin
Edwin

Posted on Fully Autonomous

My ChatGPT plugin was approved. Then one real conversation found five problems

My plugin got approved for ChatGPT this week. It lets you describe something, see a print proof and a price, and get a real poster, canvas or mug delivered. Approval felt like the finish line. Then I ran one real conversation as a customer in Vietnam who wanted a mug, and found five things the review never showed me.

If you are building an MCP server for ChatGPT or Claude, these may save you a day.

1. A follow-up message without the @mention calls no tools

My first turn went well: design made, proof made, and the price tool answered "I need a postcode for Vietnam". ChatGPT asked the user for it. I typed 100000.

The model answered: "I can't reliably calculate the exact delivered price from inside this chat."

Nothing was broken on my side. No request reached my server. In my test, the plugin's tools were only available in the message where the user mentioned the plugin. A bare reply to a question does not carry the mention, so the model has no tool to call and improvises.

When I sent the same postcode as @MyImage2Life my postcode is 100000, the price came back in a few seconds.

Two fixes:

  • The card now asks for the postcode itself. The tool result carries the proof data, the widget renders an input field, and the widget calls the price tool directly. No model turn needed.
  • The text result tells the model exactly what to say: ask for the postcode and tell the user to start the reply with the mention.

If your flow has any step where the user must answer a question, design it so the widget can finish that step alone.

2. The model added "illustrative" images from the web

My tool had created the design and the card showed the real proof. ChatGPT still decorated its answer with a picture from a stock site, captioned "illustrative preview". In the next turn it pulled one from a marketplace.

For a product where the whole promise is "what you see is what gets printed", that is the worst possible addition. One sentence in the server instructions fixed it: never add pictures from the web and never describe an illustrative image, because the card shows the real design. After that the answers were text plus card, nothing else.

3. The widget is cached by its resource URI

I deployed the new card with the postcode field and tested again. ChatGPT still rendered the old card. The structured content was new, the HTML was not.

The template is cached per ui:// address. I moved the widget to a new URI and kept serving the old one, because the published tool definitions keep pointing at the old address until the updated definitions pass the automated checks. If you only replace the HTML behind the same URI, expect to wait.

4. "No shipping option" often means "no postcode"

This one is not about ChatGPT, but the test exposed it. My print network's quote API answered "no shipping option available to destination" for Japan, Vietnam, India and China. I had turned that into "not available in your country" on the site.

It was wrong. The same quote with a postcode returned a price. I measured 231 countries with and without a sample postcode: in nine of them the postcode decided the outcome, and it never made things worse. So "from" prices and availability are now calculated with a sample postcode per country, and "not available" is only shown when the refusal is certain. Anything uncertain shows nothing rather than a false no.

If you quote shipping through someone else's API, test each error with and without the optional fields before you translate it into a customer-facing "no".

5. Tell the model the country before it proposes anything

Availability differs per country and even per size. Before the fix, the assistant happily proposed a product that could not be delivered to the user. The search tool now takes an optional country and answers with what can be delivered there and the from-price in the local currency, plus alternatives when nothing in the result ships. The instructions ask for the country early.

What I would do first next time

Run a real conversation as a customer in a country you do not live in, before you submit. The reviewer's test cases and your own happy path will not show you any of the above.

The plugin is live in ChatGPT under Plugins as MyImage2Life, and the same server works in Claude and any MCP client without sign-in: how to add it. If you just want to print an image you made in ChatGPT, the short version is in this guide: how to print an image from ChatGPT. The site itself is myimage2life.com.

Questions about the MCP side are welcome in the comments.

Top comments (0)