What OpenAI asks for before it lists anything
A plugin is a package: a remote server that speaks MCP, optional written skills, and listing metadata. You upload it, OpenAI's automated checks scan the package and the server's tools, and then its review team tests it. After approval you choose when to publish.
The review wants specifics. Five test cases that should work, with the prompt, the tools expected to fire and the expected result. Three that should be refused. A recorded walkthrough. If the plugin needs a sign-in, a test account that works without a code sent to a phone or an inbox. The publisher has to be a verified person or business, and the server's domain has to be proven with a token at a well-known URL.
One detail matters for anyone maintaining these. After the first publication OpenAI rescans the server daily, and tool changes that pass the automated checks go live with no new submission. Changes to the listing or the skills need a new package.
The build is the short part. The submission is where the time goes, and OpenAI promises no date.
The rule that ended our first idea
The first plugin we sketched was for a credit-dispute product: look up the right dispute basis, draft the letter, track the response clock. It fit the mechanics well, because it needs an account and data ChatGPT doesn't have.
The guidelines list what plugins may not sell, promote or facilitate. Credit repair is on it, next to debt relief and credit-score manipulation schemes. We stopped there. A consumer-rights framing might survive a review and might not, and a plugin that can be removed after approval is a poor foundation.
Two other rules shape local work. Plugins may conduct commerce only for physical goods, so no service is sold in the chat. And a tool may not ask for a street address or precise location, which a tree quote needs. The address has to be collected in the plugin's own form or on the follow-up call.
Read the prohibited list before the quickstart.
The Get Quote button, and who it's for
This is the part that changes the picture for a local business. When someone searches for an eligible business in ChatGPT, the business card can show a Get Quote button. Selecting it opens the provider's quote form in the chat.
The contract is small. The provider exposes one tool, named request_service, and supplies a paginated feed of business records: an id, name, address, coordinates, phone, website, and a service-provider entry saying this business accepts quote requests. ChatGPT shows the button only when the business has an eligible provider with a configured partner plugin.
It is in beta with approved partners, and you apply through OpenAI's merchants form. We have not applied yet. That is the next step, and we may not get in.
A local business doesn't need its own plugin. It needs to be a correct record in a provider's feed.
What we're building first
Lehvel's own plugin comes first, because it needs nobody's permission but OpenAI's. Then a provider plugin fed by the business facts we already keep for clients, tested in ChatGPT's developer mode with a client business once its owner agrees.
We'll publish what the review says. If it's a rejection, the rejection is the entry.