Gumroad MCP by usefulapi
Read products, sales, subscribers and offer codes; verify, enable and disable product licenses.
Should I use this
Quality & Safety
Findings (2)
- LOWin gumroad_list_variant_categories
- LOWin gumroad_list_resource_subscriptions
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"gumroad": {
"url": "https://gumroad.usefulapi.io/mcp"
}
}
}Remote endpoints
https://gumroad.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (20)
🟢gumroad_get_user
Get the authenticated user associated with the current Gumroad access token. Gumroad REST: GET /v2/user.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gumroad_list_products
List all of the authenticated user's products. Gumroad REST: GET /v2/products.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gumroad_get_product(id)
Get a single product by id. Gumroad REST: GET /v2/products/{id}.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The product id."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gumroad_list_sales(after, before, email, product_id, order_id, ...)
List/filter the authenticated user's successful sales, most recent first. Supports date, email, product/order filters and cursor pagination via page_key. Gumroad REST: GET /v2/sales.
Input Schema
{
"type": "object",
"properties": {
"after": {
"description": "Only sales after this date, formatted YYYY-MM-DD.",
"type": "string"
},
"before": {
"description": "Only sales before this date, formatted YYYY-MM-DD.",
"type": "string"
},
"email": {
"description": "Filter to sales to this buyer email.",
"type": "string"
},
"product_id": {
"description": "Filter to sales of this product id.",
"type": "string"
},
"order_id": {
"description": "Filter to a specific order id.",
"type": "string"
},
"page_key": {
"description": "Pagination cursor — pass the value from a previous response's next_page_key to fetch the next page.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gumroad_get_sale(id)
Get a single sale by id. Gumroad REST: GET /v2/sales/{id}.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The sale id."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gumroad_list_subscribers(product_id, email)
List a membership/subscription product's subscribers, optionally filtered by buyer email. Gumroad REST: GET /v2/products/{product_id}/subscribers.
Input Schema
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"description": "The membership product id."
},
"email": {
"description": "Filter to the subscriber with this buyer email.",
"type": "string"
}
},
"required": [
"product_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gumroad_get_subscriber(id)
Get a single subscriber by id. Gumroad REST: GET /v2/subscribers/{id}.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The subscriber id."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gumroad_list_offer_codes(product_id)
List a product's offer codes (discount codes). Gumroad REST: GET /v2/products/{product_id}/offer_codes.
Input Schema
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"description": "The product id."
}
},
"required": [
"product_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gumroad_get_offer_code(product_id, id)
Get a single offer code on a product by id. Gumroad REST: GET /v2/products/{product_id}/offer_codes/{id}.
Input Schema
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"description": "The product id."
},
"id": {
"type": "string",
"description": "The offer code id."
}
},
"required": [
"product_id",
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gumroad_list_variant_categories(product_id)
List a product's variant categories (option groups). Gumroad REST: GET /v2/products/{product_id}/variant_categories.
Input Schema
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"description": "The product id."
}
},
"required": [
"product_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gumroad_get_variant_category(product_id, id)
Get a single variant category on a product by id. Gumroad REST: GET /v2/products/{product_id}/variant_categories/{id}.
Input Schema
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"description": "The product id."
},
"id": {
"type": "string",
"description": "The variant category id."
}
},
"required": [
"product_id",
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gumroad_list_custom_fields(product_id)
List a product's custom fields (extra fields collected at checkout). Gumroad REST: GET /v2/products/{product_id}/custom_fields.
Input Schema
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"description": "The product id."
}
},
"required": [
"product_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢gumroad_list_resource_subscriptions(resource_name)
List the authenticated user's resource subscriptions (webhooks) for a given resource/event name. Gumroad REST: GET /v2/resource_subscriptions.
Input Schema
{
"type": "object",
"properties": {
"resource_name": {
"type": "string",
"enum": [
"sale",
"refund",
"dispute",
"dispute_won",
"cancellation",
"subscription_updated",
"subscription_ended",
"subscription_restarted"
],
"description": "The resource/event name whose webhook subscriptions to list."
}
},
"required": [
"resource_name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡gumroad_verify_license(product_id, license_key, increment_uses_count)
Verify a license key for a product (checks validity and returns purchase details). By default this does NOT increment the uses count; with increment_uses_count: true it records a use (a write). Gumroad REST: POST /v2/licenses/verify.
Input Schema
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"description": "The product id the license belongs to."
},
"license_key": {
"type": "string",
"description": "The license key to verify."
},
"increment_uses_count": {
"description": "Whether to increment the license's uses count (default false — pass true to record a use).",
"type": "boolean"
}
},
"required": [
"product_id",
"license_key"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴gumroad_enable_product(id)
Enable (publish) a product so it can be sold. Gumroad REST: PUT /v2/products/{id}/enable.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The product id to enable."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴gumroad_disable_product(id)
Disable (unpublish) a product so it can no longer be sold. Gumroad REST: PUT /v2/products/{id}/disable.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The product id to disable."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴gumroad_create_offer_code(product_id, name, amount_off, offer_type, max_purchase_count, ...)
Create a new offer code (discount code) on a product. Gumroad REST: POST /v2/products/{product_id}/offer_codes.
Input Schema
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"description": "The product id to create the offer code on."
},
"name": {
"type": "string",
"description": "The discount code text buyers enter (e.g. LAUNCH20)."
},
"amount_off": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "The amount off — in cents when offer_type is 'cents', or a percentage when 'percent'."
},
"offer_type": {
"description": "Whether amount_off is a fixed amount in 'cents' or a 'percent' discount (default 'cents').",
"type": "string",
"enum": [
"cents",
"percent"
]
},
"max_purchase_count": {
"description": "Optional cap on how many times the offer code can be used.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"universal": {
"description": "Whether the offer code applies to all of the user's products (default false).",
"type": "boolean"
}
},
"required": [
"product_id",
"name",
"amount_off"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴gumroad_update_offer_code(product_id, id, offer_code, max_purchase_count)
Update an existing offer code on a product (its code text and/or its max purchase count). Gumroad REST: PUT /v2/products/{product_id}/offer_codes/{id}.
Input Schema
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"description": "The product id the offer code belongs to."
},
"id": {
"type": "string",
"description": "The offer code id to update."
},
"offer_code": {
"description": "New discount code text.",
"type": "string"
},
"max_purchase_count": {
"description": "New cap on how many times the offer code can be used.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"product_id",
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴gumroad_enable_license(product_id, license_key)
Enable a product's license key. Gumroad REST: PUT /v2/licenses/enable.
Input Schema
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"description": "The product id the license belongs to."
},
"license_key": {
"type": "string",
"description": "The license key to enable."
}
},
"required": [
"product_id",
"license_key"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴gumroad_disable_license(product_id, license_key)
Disable a product's license key. Gumroad REST: PUT /v2/licenses/disable.
Input Schema
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"description": "The product id the license belongs to."
},
"license_key": {
"type": "string",
"description": "The license key to disable."
}
},
"required": [
"product_id",
"license_key"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence