About setup-polar
setup-polar is a guided skill for configuring Polar payments in a project, from MCP setup and product creation through webhook and checkout testing. It gathers the framework and product requirements, then hands off integration code generation to `polar-integration`.
Key features
- 01Check and install Polar MCP
- 02Collect framework and payment requirements
- 03Create an organization and test product
- 04Configure webhook forwarding and secrets
- 05Test checkout and webhook handling
Use cases
- 01Set up a Polar sandbox payment flow
- 02Prepare a project for production payments
MCP support
Uses Polar MCP to check organizations, create products, and optionally configure deployed webhook endpoints; includes instructions for installing the server and authenticating.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ polarsource/ skills --skill setup-polarAfter installing, type/setup-polarin Claude Code to confirm it loaded.
Details
From the project READMEPolar Setup Wizard
Interactive setup guide to get Polar payments working in your project.
Setup Flow
Follow these steps in order:
Step 1: Check MCP Availability
First, check if the Polar MCP server is available. Try listing products or organizations using MCP tools.
If MCP tools work: Skip to Step 3.
If MCP not available: Continue to Step 2.
Step 2: Install Polar MCP
Guide the user to install the Polar MCP server based on their environment:
Claude Code:
# Production
claude mcp add --transport http "Polar" "https://mcp.polar.sh/mcp/polar-mcp"
# Sandbox (recommended for setup)
claude mcp add --transport http "Polar Sandbox" "https://mcp.polar.sh/mcp/polar-sandbox"
Cursor (.cursor/mcp.json):
{
"mcpServers": {
"Polar Sandbox": {
"url": "https://mcp.polar.sh/mcp/polar-sandbox"
}
}
}
After installation, the user must:
- Restart their editor/CLI
- Authenticate when prompted (redirects to polar.sh)
Once authenticated, verify MCP works by listing organizations.
Step 3: Gather Project Context
Ask the user:
-
Framework: What framework are you using?
- Next.js (App Router)
- Next.js (Pages Router)
- Express.js
- FastAPI (Python)
- Other
-
Environment: Start with sandbox or production?
- Sandbox (recommended for new setups)
- Production
-
Product type: What are you selling?
- Subscription (recurring)
- One-time purchase
- Both
Step 4: Create Organization (if needed)
Use MCP to check if user has an organization. If not, guide them to create one at:
- Sandbox: https://sandbox.polar.sh/start
- Production: https://polar.sh/start
Step 5: Create First Product
Use MCP to create a test product. Example for subscription:
Create a product with:
- Name: "Pro Plan"
- Monthly price: $29
- Organization: [user's org]
Store the returned product ID for checkout integration.
Step 6: Generate Integration Code
Hand off to the polar-integration skill to generate the Checkout, Customer Portal, and Webhooks endpoints for the framework selected in Step 3. That skill has the canonical, framework-agnostic recipes plus per-framework variations.
Before invoking it, make sure the user has these environment variables ready (use whatever loader their framework provides):
POLAR_ACCESS_TOKEN= # from polar.sh/settings (or sandbox)
POLAR_WEBHOOK_SECRET= # created in Step 7
POLAR_SERVER=sandbox # omit or set to "production" when going live
Pass along the product ID from Step 5 so checkout links can be tested in Step 8.
Step 7: Set Up Webhooks
Use the Polar CLI to forward webhooks to the local dev server. It needs no tunnel and no dashboard endpoint. The polar-testing skill ("Local Webhook Testing") has the details.
- Install the CLI (
curl -fsSL https://polar.sh/install.sh | bash) and ask the user to runpolar auth login --sandbox, which opens a browser. - Save the local signing secret without printing it, then restart the dev server:
secret=$(polar listen --print-secret) && echo "POLAR_WEBHOOK_SECRET=$secret" >> .env - Start
polar listen <port>/<webhook-path>in the background, using the path from the route generated in Step 6, and keep it running. - Run
polar trigger order.paid. It prints the handler's response and exits with status 1 when the handler fails. Fix the handler and repeat until it exits with 0.
When deploying, create a webhook endpoint for the public URL with MCP or in the dashboard (Settings → Webhooks), select order.paid, subscription.created and subscription.canceled, and use that endpoint's secret as POLAR_WEBHOOK_SECRET in the deployed environment.
Step 8: Test the Integration
- Start the dev server.
- Visit the checkout URL with the product ID from Step 5 (path and query shape come from the route generated in Step 6).
- Complete checkout using test card:
4242 4242 4242 4242. - Verify that
polar listenshowsorder.paidwith a 2xx status from the handler. - Check the success page displays correctly.
Step 9: Next Steps
Once basic setup works, suggest:
- Add customer portal - Let users manage subscriptions (Recipe 2 in
polar-integration). - Link to your auth - Pass
externalCustomerIdin checkout. - Add benefits - License keys, file downloads, Discord roles.
- Go production - Switch
POLAR_SERVERfromsandboxtoproduction.