Skip to content

~/writingbtc-dca-engine-in-chatgpt

BTC DCA Engine is now listed in ChatGPT's plugin directory

BTC DCA Engine is now listed in ChatGPT's plugin directory. Here's what OpenAI's review asked for, and what a ChatGPT user gets now.

Jon Phillips4 min read#agents#ai#bitcoin#product
A wooden card catalog with one drawer pulled open and a single green index card standing in it

BTC DCA Engine is now listed in ChatGPT's plugin directory. It's the dollar-cost-averaging simulator I run at btcdcaengine.com, and I wrote about what it does and why I built it already. This post is about getting it into ChatGPT: what OpenAI's review asked for, and what changes for someone who uses ChatGPT.

The listing is here. It went live on September 30, 13 days after I submitted it.

What changes for a ChatGPT user?

Mostly, you no longer have to know what an MCP server is.

People have been connecting ChatGPT to BTC DCA Engine for a while. Until now that meant turning on Developer mode, which is on ChatGPT's paid plans, then pasting the server address in by hand. Now it's a listing with an Install button and three starter prompts, like "What would $50 a week into Bitcoin since January 2018 be worth today?"

Nothing behind the listing is new. It's the same server at btcdcaengine.com/mcp that already works in Claude, Claude Code, Cursor, VS Code, Codex and Gemini CLI, with the same four read-only tools: list the assets, check how fresh the data is, run a plan, compare plans.

What you get in ChatGPT is the free view. ChatGPT connects with no sign-in and has no field for an API key, so it gets the seven free assets (Bitcoin, Ethereum, Solana, XRP, the S&P 500, the Nasdaq 100 and gold) and two plans per comparison. The rest of the 22 are in the web app with Pro, and 20 of them reach any client that can send a Pro key.

Every answer comes back with a link. It opens the identical run in the web app, pinned to the data it was computed against, so the numbers ChatGPT quotes are numbers you can check.

What did OpenAI's review ask for?

More than a form. Besides the listing copy, the submission asked for four things:

  • That I own the domain. OpenAI hands you a token, and the server has to return it, and nothing else, at btcdcaengine.com/.well-known/openai-apps-challenge.
  • What every tool does to the world. Each tool has to state whether it's read-only, whether it reaches outside its own system, and whether it can destroy anything. If you leave the destructive flag out, the spec assumes it's true, which is the opposite of an endpoint that only reads price history. So every tool now says so explicitly.
  • Test cases. Exactly five prompts where the plugin should be called and three where it shouldn't, each with the expected result.
  • The paperwork. A privacy policy, terms and a support page.

Why did the "that needs Pro" messages change?

Because OpenAI bars plugins that promote upgrades.

When a free caller asks for something Pro includes, like an asset outside the free seven or a third plan, the server refuses and says why. Before the review, that refusal also listed what else Pro offers. So did the quota message and the free asset list. That recital was the part that read as advertising.

OpenAI's rule allows exactly two things: saying a feature isn't in your current plan, and linking to a page that describes the plans. Never a checkout. So a refusal now states what the request needs, tells an existing subscriber how to sign in, offers what does work, and stops. Its one link goes to the plans table on the MCP page, not to checkout.

Why test prompts where it must not fire?

Because a plugin that answers every Bitcoin question is worse than one that answers the right ones.

One of my three negative cases was "Should I buy Bitcoin this week?" BTC DCA Engine works out what a schedule of buys would have done on real past prices. It can't tell anyone what to buy next week, and the server says so in its own instructions: results are historical arithmetic, not advice. The test checks that ChatGPT leaves that question alone instead of dressing up a simulation as an answer.

The positive cases describe what the tool does. The negative cases make you say where it stops.

What did the waiting cost?

Mostly patience. Tool descriptions are frozen while a submission is in review, so for 13 days I couldn't change a word of what the tools say about themselves. Anything I wanted to reword had to wait for the decision.

If you use ChatGPT, the listing has the Install button. Setup for every other client is on btcdcaengine.com/mcp-server.

Stack: one remote MCP server at btcdcaengine.com/mcp with four read-only tools, running as Cloudflare Pages Functions beside the web app, and listed in ChatGPT's plugin directory and on the MCP Registry.

Jon Phillips builds websites, web apps and automations atMatchless Web in Clinton, Mississippi.

~/writing · keep reading