--- layout: tap site_name: creem tap_name: create-product description: "Create a Creem product with subscription pricing" intent: write columns: - name - id - price - product_url - mode args: - name: key type: string description: "Creem API key" - name: name type: string description: "Product name" - name: price type: number description: "Price in cents (900 = $9.00)" - name: description type: string description: "Product description" - name: billing type: string default: every-month description: "Billing period: every-month, every-year" args_json: | {"key":{"type":"string","required":true,"description":"Creem API key"},"name":{"type":"string","required":true,"description":"Product name"},"price":{"type":"number","required":true,"description":"Price in cents (900 = $9.00)"},"description":{"type":"string","default":"","description":"Product description"},"billing":{"type":"string","default":"every-month","description":"Billing period: every-month, every-year"}} health_json: | {"min_rows":1,"non_empty":[]} example_args: "--key creem_test_xxx --name 'My Product' --price 900" source_url: https://github.com/LeonTing1010/tap-skills/blob/main/community/creem/create-product.plan.json license: MIT ---

What it does

Create a Creem product with subscription pricing

Install Taprun once

Taprun ships as a single MCP server exposing a catalog of compiled taps. One-time setup on macOS / Linux:

brew install LeonTing1010/tap/taprun
tap mcp connect

Or drop this into your claude_desktop_config.json (works identically in Claude Code, Cursor, Cline, Windsurf — any MCP host):

{
  "mcpServers": {
    "tap": {
      "command": "tap",
      "args": ["mcp", "start"]
    }
  }
}

Call creem/create-product

Terminal, once installed:

tap run creem/create-product --key creem_test_xxx --name 'My Product' --price 900

From the MCP host — exact same compiled plan, deterministic replay, zero LLM tokens:

tap.run({ site: "creem", name: "create-product", args: {"key":"creem_test_xxx","name":"My Product","price":900} })

Why compile it once

This plan was forged once — the AI read creem, picked stable structural addresses (JSON-LD, ARIA, RSS, or declared API endpoints, in that priority order), and saved them to a .plan.json. Every replay since then has used zero LLM tokens. When creem ships a site change that breaks the extraction, tap verify surfaces it before your data goes stale — not after your pipeline silently writes garbage for a week.

Related creem taps

tapdescription
creem/validate-licenseValidate a Creem license key and check activation status
creem/productsList all Creem products with status, price, and subscriptions
creem/transactionsList recent Creem transactions (payments)
creem/subscriptionsList all Creem subscriptions with customer, product, and status