Toolaby

Add payments to a Chrome extension with Claude Code or Cursor

Let Claude Code, Cursor or Codex set up paid plans for your Chrome extension through Toolaby's MCP server, gate the paid feature and test a purchase.

Toolaby4 min readUpdated

Yes, a coding agent can set up paid subscriptions for a browser extension, as long as the payments service gives it tools to act with. Toolaby has an MCP server and a Claude Code plugin. Through them, Claude Code, Cursor, Codex, VS Code with Copilot, Gemini CLI or Windsurf create the plans, wire the extension, put the paid feature behind gate() and prove it unlocks with a test purchase, all on Test, where nothing is charged. You approve the sign-in, connect Stripe for Live and upload to the Chrome Web Store yourself.

This guide gives your agent Toolaby, signs it in, asks for the work, shows how it checks itself, and lists the steps that stay yours.

Before you begin

  • A workspace on Toolaby, and Node.js 20 or later.
  • A coding agent that connects to MCP servers.
  • Your extension's folder. No extension yet? The agent can make one with npx -y toolaby@latest create <tool-id>.

1. Give your agent Toolaby

npx -y toolaby@latest agents

This registers Toolaby's MCP server in each coding agent it finds on your machine: Claude Code, Codex, Cursor, VS Code and Gemini CLI. Restart the agent, or reload its MCP servers.

In Claude Code you can install the plugin instead. It brings the same server, skills for selling a feature, pricing, testing and shipping, and five commands such as /toolaby:sell and /toolaby:ship:

/plugin marketplace add toolaby/claude-plugin
/plugin install toolaby@toolaby

In Cursor by hand, add the server to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "toolaby": { "command": "npx", "args": ["-y", "toolaby@latest", "mcp"] }
  }
}

Build with an agent has the setup for every client.

2. Sign in once

Ask the agent to sign in. It calls toolaby_sign_in, which answers a link and a code: open the link, check the code and approve. The agent's next call works. The server acts on Test. For Live, a second server named toolaby-live runs npx -y toolaby@latest mcp --live, with a sign-in of its own.

3. Ask for the work

Open your extension's folder in the agent and say what you want in one sentence:

Add a Pro plan at $4 a month with a 7-day free trial, and make the CSV export a Pro feature.

The agent then:

  1. makes the tool where there is none (toolaby_create_tool), then wires the extension with npx -y toolaby@latest wire <tool-id>, which adds the client and writes TOOLABY.md, the file it reads for this project's rules;
  2. adds the plan (toolaby_add_plan), then the feature and the plan that unlocks it (toolaby_set_features);
  3. puts toolaby.gate({ feature: 'export' }) before the export, and shows the paywall when it refuses;
  4. checks its work, below, and ends with what changed and the steps left for you.

Every MCP tool is also a command of npx -y toolaby@latest, so you can see and repeat what the agent did.

4. How the agent checks its work

The agent says it is done only after these pass:

  1. npx -y toolaby@latest check --json in the extension's folder exits 0.
  2. Once built, check --json --browser --built <folder> loads the extension in Chromium, and its background and pages start without an error.
  3. test-unlock <tool-id> --plan <plan-id> makes a buyer of your own on Test with the plan, and check --browser --as <plan-id> proves the paid feature unlocks for them.

5. What stays yours

The agent doesYou do, once
Create and change plans, trials, features and the Free plan on TestApprove the sign-in, on each side
Write the code behind gate(), and fix what check reportsConnect Stripe on Live, under Configure → Payments
Prove a paid feature unlocks on TestUpload the zip to the Chrome Web Store, and submit it
Copy the tool to Live and pack the store zipMake the first real purchase on Live

On Live, a change the agent asks for first answers a confirmation code, which it sends only on your word.

Moving from ExtensionPay

In Claude Code, /toolaby:move-from-extensionpay runs the move. In any agent, ask it to follow Move from ExtensionPay: your ExtensionPay calls keep working, answered by Toolaby.

Common questions

Does the agent see my Stripe keys?

No. Stripe is connected in the dashboard, and no Stripe key goes into your extension or the chat. The tool key in your extension (tk_…) is public by design.

Which coding agents work?

Any agent that starts an MCP server from a command: npx with the arguments -y toolaby@latest mcp. Without MCP, an agent can run the same commands in a terminal.

Can I do the same without an agent?

Yes. The dashboard and the command line do everything the agent does. See Add payments to a Chrome extension.

All guides