All posts

Can you make money from ChatGPT plugins?

Sami Can Tandogdu ·11 min read ·

On Sep 30, MagicPath founder Pietro Schirano encouraged developers to build a ChatGPT plugin extension. In a subsequent tweet, he asserted that his company MagicPath has grown more than 2,000% since the initial announcement. A graph showing the rapid increase in growth over the last few days of the announcement was included in the subsequent tweet. [1]

Underneath it people kept asking and asking again the same question: how to make money with this?

As I mentioned earlier, Schirano simply states that they charge for the platform (MagicPath) and the plugin he’s created simply extends the use case of said service.

So in summary: it’s a great way to support paid software for your customers. But first, you need to get customers who are willing to pay for your service.

As a number, this growth figure is basically meaningless to us – Schirano doesn’t even specify a metric here (e.g. R.O.AS, customers retained week-over-week, a certain KPI, whatever), nor does he provide us with any actual numbers. And of course there’s no revenue or other financial information provided here either, which would also be kind of important to understand in terms of actual “growth” (as opposed to, say, launch buzz).

I will go through the business model of a localization plugin for a paid service for team-based publications in several languages and discuss useful features in such a plugin.

How paid accounts work today

According to OpenAI’s guidelines (as of 1 October 2026), it is acceptable for a plugin to connect to a user’s existing paid account and use features that are already part of their subscription. However, in line with the wider commerce restrictions on ChatGPT plugins, they are not permitted to sell digital products or services of any kind, including subscriptions, individual items for credit and upgrades.

SituationCurrent guideline
The plugin offers a new digital subscription, credit purchase, or upgradeNot allowed
A feature is unavailable under the customer’s existing planThe plugin may explain the limitation and link to an informational page about available plans or to purchase other plans or to view information about entitlements.
The plugin links to checkout or a page that starts an upgrade or subscriptionNot allowed
Sells physical goods:Permitted subject to the commerce rules

Separately, OpenAI prohibit charging customers above and beyond the service of ChatGPT itself for any service that can be used via a ChatGPT plugin. See the current commerce and monetization requirements for full detail on this, as they are likely to evolve.

The value for software founders is in the additional value they can add to their paid services in order to better serve their customers and create additional opportunities.

Give the customer a reason to connect

The illustrative localization product would be for a team that publishes in several languages (e.g. a software company).

You can ask ChatGPT to translate a single paragraph but that has little value to a customer. The value of an integrated localization service must far exceed the ability to translate single paragraphs of text.

The team has already been using ChatGPT to translate small chunks of text (e.g. a few bullet points), but for localization of formal release notes (which are read by a wide audience and must conform to a company's style guide) they want to make sure that the translation is accurate and follows all of the company's terminology. They have approved product names and want to make sure that those approved names are used in the translated text as well.

Prepare the German version of this release note for the announced new localized content. (In German: Vorbereitung der Deutschlandversion dieser Release Note im Rahmen der neuen lokalisierten Inhalte. Verwendung der im productdesignrepositoryalready bestimmten Product-Names. Falten neues Terminologiekγνω(shell)). Save to review afterwards.

This plugin shows how to build a big product on top of the account for the founder’s software. The main value of this plugin for the founder is to be able to demonstrate how easy it is to integrate his paid service with ChatGPT. The possible localization scenarios are described here.

With continuity of previous work, the customer can rely on the service to make good use of his previous work, and have control over terminology used in localization, which is then inserted into the actual publishing workflow of the customer.

This is also a good criteria to decide if you should implement UI for your plugin or not. OpenAI in their UI guidance for plugins suggests to add interface if your plugin’s tools are used for things like: inspect, compare, edit, confirm, navigate through structured information etc. Even then, UI should be easy to hide if customer wants to use your plugin without showing your interface.

For the example of a localization service for a software product, the subscription for the service would pay for this, and the plugin for ChatGPT would then help customers use this service for the content they are preparing for release.

01 / Customer valueLocalization example

The conversation opens the door to your service

Inside ChatGPTPrepare a release noteThe customer connects their existing account and asks for a localized draft.
Your paid serviceApply the team’s contextApproved terminology, previous translations, access rules, and the review workflow.
Customer outcomeA checked draft saved for review
The plugin gives customers a shorter route to the capabilities already included in their service account.

Easier access can be part of the value

Similar observations were made by Schirano in the note about the launch of MagicPath, a new localization plugin for ChatGPT. His main observation was that getting ordinary users to attach services to a product is hard. By running the app within ChatGPT it gets a lot easier. His reply.

To understand how to make your interface more accessible, test the workflow for completing a task in your product. Where do users get stuck? Can you help them get to where they want to go more easily? If you record the steps that users take to complete a task in your product, you can play back the improved version to them.

When it comes to accommodating the workflow of your end users within your environment, it’s likely that you can identify areas where copying and pasting to another tab or uploading a file that has already been uploaded to another service within your own eco-system for example, can be removed. Once you have recorded the workflow of your end users before and then after the integration has been completed with them, ask them to re-completion of the same task within your newly updated environment.

You can get much more insight into this if you track the number of steps a customer has to take, how long it took them to complete the task and whether the output was saved correctly. The fewer the steps and the less time it takes for the customer to complete a task, the better your plugin is at simplifying the process for your customers.

Account for the work your service performs

Note that an MCP connection alone does not allow you to determine who is paying for the individual parts of a workflow.

Just because you are using the customer’s ChatGPT account for the assistant’s work, doesn’t mean that the rest of the service’s work (i.e. your backend) will only cost the customer based on their ChatGPT account. The cost of the operations your service performs (storing the customer’s file, querying a database, extracting information from other services, calling your own model, etc.) will likely be charged independently of the customer’s ChatGPT subscription.

My setup for bringing your own tokens for MagicPath and using it in Codex uses the users' regular ChatsGP balance. That's my product, not a general guideline for all plugins.

Before launch, run the main customer workflowes through the services called by the workflowes (repeatedly). Then calculate the cost per completed task, including failed task attempts and task retries. Remember to calculate what extra cost there is for very frequent use by your paying customers.

Thus, a plugin that makes using a feature much easier will have value AND operating cost for you.

02 / Cost to serveCost model

Count every attempt behind a completed task

Data and storage
Files, database queries, and connected services.
Models and compute
Inference and processing performed by your backend.
Checks and retries
Validation and repeated work, including failed attempts.
Total service cost across all attemptsVerified completed tasks
= Cost per completed task
Measure both totals over the same period. Assign each charge once; retries add more of the same underlying costs. This is a calculation framework, not measured usage data.

Measure what happens after installation

A launch spike gets people interested in your product. But now you have to find out what happens after the initial interest has been sparked:

  1. Do they connect their account successfully?
  2. Does the user complete the specific task that motivated them to use your plug-in?
  3. Do they return to do it again?
  4. Does the integration improve usage or retention among paying customers?
  5. What does that usage cost to serve?
03 / AdoptionWhat to measure

Follow the customer beyond installation

  1. InstalledRecord where the customer discovered the plugin.
  2. ConnectedCheck whether account linking succeeds.
  3. Completed a taskVerify the result was saved; measure time and service cost.
  4. Came backTrack repeat use and compare retention among paying customers.
These are stages to instrument, not conversion-rate estimates. Repeat use tells you more about lasting value than an installation count alone.

I’d like to break apart how you acquired users vs how you acquired a listing/integration on ChatGPT. From Twitter alone, a small set of Twitter promotes and word of mouth have brought hundreds of new customers. It’s quite easy to see that ad copy for the listing plus usage of the integration drives far more “customers” than in-app promotions.

Focus on one key task that your existing customers are already very keen to get done. Set up a simple connection to get that one task done better, complete it reliably and add a simple way to verify that it did work. Observe if they come back for more.

We’ve covered how ChatGPT can be a super app for MCP apps in a future post, but converting the potential of ChatGPT into a real business starts with one simple question: what one thing would your customers do more if they could do it from within their conversation?

Build an MCP app with Recurse

Recurse can run the agent behind the localization workflow described here. Your coding agent builds the project; Recurse executes it and makes the tested agent available through MCP.

1. Give your coding agent a concrete task

Start with the Recurse skill and a brief like this:

Build a Recurse agent that prepares a German release note from an English draft and our approved terminology. Check product names and required phrases, flag uncertain translations, and save the result as a draft for human review. Enforce the connected customer’s access to the source material. Return the draft location and the results of the checks. Test missing terminology, conflicting instructions, and failed saves before preparing an MCP deployment.

The checks should establish what was verified and what still needs review. A successful tool call alone does not establish that a translation is ready to publish.

2. Test the workflow and its cost

Follow the installation guide to set up the CLI and sign in. Ask your coding agent to prepare the project and an inputs.json file that matches its input schema, then run a representative case:

recurse run ./localization-agent --inputs inputs.json

Inspect the saved draft and check results. Repeat with failure cases, and measure cost per completed task before choosing the revision to deploy. The evaluation guide explains how to compare revisions.

3. Deploy the tested agent through MCP

Once you have reviewed the results and deployment settings, deploy the project:

recurse deploy ./localization-agent --as mcp

Recurse returns a deployment ID. For an MCP client that supports local servers, configure it to launch the bridge with that ID:

recurse mcp serve <deployment-id>

The deployment guide covers connection settings and verification. Check that the client discovers the tool, then run the same representative task through the connection.

4. Add the review interface in ChatGPT

Ask your coding agent to build a review panel that displays the source, localized draft, and check results. Connect it to the Recurse-backed workflow using the MCP Apps UI standard. Your app’s MCP server registers the UI resource and associates it with the relevant tool.

For ChatGPT, follow the MCP server quickstart to expose a reachable HTTPS MCP endpoint and configure the connection. The local bridge above is for clients that launch local servers; deploying the Recurse agent alone does not create that ChatGPT endpoint or its interface.

Start with one language and one review task. Our MCP app walkthrough covers the surrounding app structure and testing process.

Give your agent its next job.

Connect Recurse to your agent, and then ask it to do something for you there.