--- layout: tap site_name: creem tap_name: validate-license description: "Validate a Creem license key and check activation status" intent: write columns: - key - status - product - activation - limit - expires - instance args: - name: key type: string description: "Creem API key" - name: license type: string description: "License key to validate" - name: instance type: string description: "Instance ID (from activate)" args_json: | {"key":{"type":"string","required":true,"description":"Creem API key"},"license":{"type":"string","required":true,"description":"License key to validate"},"instance":{"type":"string","required":true,"description":"Instance ID (from activate)"}} health_json: | {"min_rows":1,"non_empty":[]} example_args: "--key creem_test_xxx --license BY5D0-xxx --instance lki_xxx" source_url: https://github.com/LeonTing1010/tap-skills/blob/main/community/creem/validate-license.plan.json license: MIT ---

## What it does

Validate a Creem license key and check activation status

## 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/validate-license`

Terminal, once installed:

    tap run creem/validate-license --key creem_test_xxx --license BY5D0-xxx --instance lki_xxx

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

    tap.run({ site: "creem", name: "validate-license", args: {"key":"creem_test_xxx","license":"BY5D0-xxx","instance":"lki_xxx"} })

## 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

tap | description
--- | ---
`creem/products` | List all Creem products with status, price, and subscriptions
`creem/create-product` | Create a Creem product with subscription pricing
`creem/transactions` | List recent Creem transactions (payments)
`creem/subscriptions` | List all Creem subscriptions with customer, product, and status