Ecommerce

Gumroad Webhook MCP Server

Connect your account, then chat with AI to run tools.

Point Gumroad Ping at MCPBundles and inspect sale notifications in chat.

Best forCreatorsIndie SellersDigital Products

Try this workflow

Last Gumroad sale

From the latest ping payload in export.json, read sale_id, email, product_name, price, and refunded status.

Managed
4 tools
Agent guide included

Opens MCPBundles Studio with this server selected. After sign-in, chat and run tools from the same thread.

Browse all tools

What you can do with Gumroad Webhook

Built for

Creators, Indie Sellers, Digital Products

Example workflows

Last Gumroad sale

Interprets urlencoded sale fields normalized to JSON.

Try this

From the latest ping payload in export.json, read sale_id, email, product_name, price, and refunded status.

Dedupe sales

Uses stable sale ids from stored payloads.

Try this

List recent deliveries and flag duplicate sale_id plus resource_name pairs across captured_at timestamps.

Context to know first

How do I connect Gumroad deliveries to MCPBundles?

Save a connection on MCPBundles, copy the hosted ingest URL from the credential panel, and paste it into Gumroad where Ping webhook URLs are configured. Your agent reads stored deliveries — latest, history, and content — in chat.

Can an agent trigger a new delivery?

No. Ingest is read-only. Data arrives when the upstream system sends it; agents query what already landed.

AI Skill
SKILL.md

Domain knowledge for Gumroad Webhook — workflow patterns, data models, and gotchas for your AI agent.

Gumroad Webhook

Gumroad Ping posts purchase and refund notifications as application/x-www-form-urlencoded form fields. Storage normalizes each POST to flat JSON in export.json. Nested objects — variants, custom_fields, url_params, shipping_information, and card — arrive as bracketed keys (for example custom_fields[name]) and appear as nested objects after normalization. Tools read what already landed; there is no way to trigger a new ping or change Gumroad state from here.

First moves

  1. Latest report — default for “who bought what last” or the most recent refund signal.
  2. Recent reports — compare volume, spot duplicate pings, or find a sale by buyer email or product name.
  3. Inspect export.json — all Ping fields live here; use source.captured_at for when the ping landed, not necessarily when the sale occurred (sale_timestamp is inside the payload).
  4. One report by id — after listing, when the user points at a specific delivery.

Key payload fields

Read these from export.json rather than assuming fixed column names:

  • Event kindresource_name: sale for a purchase, refund when that purchase is later refunded. Always pair with sale_id when deduping — a refund reuses the same sale_id as its sale.
  • Sale identitysale_id, order_number (numeric form of sale_id), sale_timestamp.
  • Productproduct_id, product_name, product_permalink, short_product_id.
  • Buyeremail, full_name when present, purchaser_id when the buyer has a Gumroad account, ip_country.
  • Moneyprice in USD cents; also shipping_rate, gumroad_fee, gift_price, and affiliate_credit_amount_cents when relevant. Divide by 100 for dollar amounts unless the user asked for cents.
  • Subscriptionsubscription_id, recurrence (for example monthly, yearly, quarterly), is_recurring_charge.
  • Options and extrasvariants (selected tier/size/color), custom_fields, offer_code, license_key, quantity.
  • Marketingurl_params (tracking params from the product link), affiliate, referrer.
  • Gift purchasesis_gift_receiver_purchase, gifter_email, gift_price.
  • Status flagsrefunded, test (seller self-purchase), disputed, dispute_won, is_preorder_authorization, discover_fee_charged.
  • Retriesretry_count (1, 2, or 3) when Gumroad redelivered after a failed attempt.

Response shape

  • source — capture time, filename, format, connection purpose.
  • export.json — normalized Ping fields from the urlencoded POST body.
  • export.text — raw body when JSON parsing did not apply.

Operational order

  1. Start with the latest report — do not guess a report id.
  2. Check resource_name and sale_id before treating a ping as a new sale.
  3. If captured_at is older than expected, say so — Gumroad sends on purchase/refund events, not on demand.
  4. List recent reports only for history, duplicate suspicion, or explicit compare-by-date asks.
  5. Read ## This connection in the skill supplement for product-specific field notes.

Gotchas

  • Read-only — cannot refund, resend pings, or acknowledge Gumroad from here.
  • At-least-once delivery — the same ping can arrive more than once; dedupe on sale_id plus resource_name, not sale_id alone.
  • Ordering not guaranteed — a refund ping can land before the sale ping it refers to; list recent deliveries when the user asks about refunds.
  • Retries — failed upstream delivery retries with retry_count set; duplicates may share the same sale data with different source.captured_at.
  • Unsigned payloads — treat stored pings as notifications to inspect, not as authoritative ledger entries when amounts or refund state matter critically.
  • Variable presencevariants, custom_fields, shipping_information, license_key, and subscription fields appear only for relevant products; absence is normal.
  • Test purchasestest is true when the seller bought their own product.

Tools in this Server (4)

Gumroad Wh Latest

Return the most recently stored report — tabular rows, raw text, or JSON depending on format. Default starting point for current report questions.

Gumroad Wh List

List recent stored reports — ids, capture time, filename, and format. Follow with latest report or get report for full content.

Gumroad Wh Report

Return one stored report by report_id — full content with the same source/export envelope as latest report.

Gumroad Wh Status

Connection status — whether any reports have landed, when the last file arrived, filename, and stored report count. Includes the ingest URL only when ...

Frequently Asked Questions

How do I connect Gumroad deliveries to MCPBundles?

Save a connection on MCPBundles, copy the hosted ingest URL from the credential panel, and paste it into Gumroad where Ping webhook URLs are configured. Your agent reads stored deliveries — latest, history, and content — in chat.

Can an agent trigger a new delivery?

No. Ingest is read-only. Data arrives when the upstream system sends it; agents query what already landed.

How do I connect Gumroad Webhook to my AI agent?

Add the MCPBundles server URL to your MCP client configuration (Claude Desktop, Cursor, VS Code, etc.). The URL format is: https://mcp.mcpbundles.com/bundle/gumroad-webhook. Authentication is handled automatically.

How many tools does Gumroad Webhook provide?

Gumroad Webhook provides 4 tools that can be called by AI agents, along with a SKILL.md that gives your AI agent domain knowledge about when and how to use them.

What authentication does Gumroad Webhook require?

Gumroad Webhook uses API Key. Gumroad Webhook requires credentials. Connect via MCPBundles and authentication is handled automatically.

Setup Instructions

Connect Gumroad Webhook to any MCP client in minutes

MCP URL
https://mcp.mcpbundles.com/bundle/gumroad-webhook

One-click install:

The link prefills the Add custom connector dialog — you still review the values and click Add, then Connect to complete OAuth.

Or add manually

  1. Open claude.ai → Settings → Connectors.
  2. Click the + button and choose Add custom connector.
  3. Set Name to Gumroad Webhook and paste the MCP URL into Remote MCP server URL.
  4. Click Add. Gumroad Webhook will appear under Not connected — select it and click Connect to complete OAuth.
Name: Gumroad Webhook
Remote MCP server URL: https://mcp.mcpbundles.com/bundle/gumroad-webhook
Authentication: OAuth

Custom connectors at claude.ai require a paid Claude plan (Pro, Max, Team, or Enterprise).

Ready to use Gumroad Webhook?

Sign in to connect your credentials and start running tools from the chat.

Gumroad Webhook MCP — Read Ping Sales in Chat