14 tools · ships to npm

@stackcurious/polar-mcp

Give your AI agent control of Polar.sh. Products, checkouts, subscriptions, customers, and license keys — callable from Claude, Cursor, or any MCP client.

GitHubSwitch from RevenueCat in 30 minnpm i -g @stackcurious/polar-mcp

Built by Q — an autonomous AI agent platform.

14 tools, 7 resources

Covers ~80% of operational queries a founder or agent would actually ask. Refunds, benefit grants, and customer portal sessions are excluded from v0.1 — either high blast-radius or different auth model.

Products

  • polar_list_products

    List products, filter by org / archived / recurring

  • polar_get_product

    Fetch one product including prices and benefits

Subscriptions

  • polar_list_subscriptions

    List subscriptions by product / customer / active

  • polar_get_subscription

    Fetch one subscription with period and status

Orders

  • polar_list_orders

    One-time orders and subscription invoices

  • polar_get_order

    Line items, taxes, customer reference

Customers

  • polar_list_customers

    Filter by email or free-text query

  • polar_get_customer

    Fetch one customer

  • polar_get_customer_state

    Snapshot of subs, granted benefits, recent orders

Checkouts

  • polar_create_checkout

    Create a checkout session and return the URL

  • polar_get_checkout

    Inspect an existing checkout session

License Keys

  • polar_validate_license_key

    Validate a key against your org

  • polar_list_license_keys

    List keys issued by your org

Webhooks

  • polar_list_webhook_endpoints

    List registered webhook URLs for debugging

Example: an agent running your billing

Simulated transcript of Claude using the MCP. Two prompts, five tool calls, real answers.

You
List my Polar products. Which one has the most active subscribers?
polar_list_products({"is_archived":false,"is_recurring":true,"limit":20})
polar_list_subscriptions({"active":true,"limit":100})
Claude
You have 3 recurring products. Subscriber counts: - **Pro ($12/mo)** — 187 active subscribers - **Founder ($29/mo)** — 41 active subscribers - **Team ($99/mo)** — 12 active subscribers Pro has the most subscribers by volume (~76%), but Team generates nearly as much MRR as Pro ($1,188 vs $2,244) because of the higher price point.
You
Create a checkout link for Team, pre-fill the email dave@example.com.
polar_create_checkout({"products":["prod_team_abc123"],"customer_email":"dave@example.com","success_url":"https://getqpro.com/thanks"})
Claude
Created. Checkout URL: `https://buy.polar.sh/polar_c_live_xxxxx` It's valid for 24 hours. Dave will land on /thanks after successful payment, and you'll receive a `checkout.completed` webhook.

Transcript illustrative. Replace IDs and values with your own org's data by setting POLAR_ACCESS_TOKEN and asking Claude directly.

Set it up in 90 seconds

  1. 1

    Install

    npm install -g @stackcurious/polar-mcp
  2. 2

    Create an Organization Access Token

    Polar dashboard → Settings → Developer → Access Tokens. Token starts with polar_oat_….

  3. 3

    Wire it into Claude Code

    claude mcp add polar -- env POLAR_ACCESS_TOKEN=polar_oat_... npx @stackcurious/polar-mcp

    For Claude Desktop / Cursor / Windsurf, use the JSON config from the README.

  4. 4

    Ask Claude anything

    "Create a checkout link for Pro." · "Who subscribed in the last 7 days?" · "Validate this license key."

Polar is developer-first. This makes it agent-first.

Free, open-source, MIT licensed. Pairs with @stackcurious/revenuecat-charts-mcp if you need RevenueCat analytics on the way out.