Skip to main content
Glama

Gumroad MCP by usefulapi

Create offer code

gumroad_create_offer_code
Destructive

Create a new offer code (discount code) on a product. Gumroad REST: POST /v2/products/{product_id}/offer_codes.

Input Schema

NameRequiredDescriptionDefault
nameYesThe discount code text buyers enter (e.g. LAUNCH20).
universalNoWhether the offer code applies to all of the user's products (default false).
amount_offYesThe amount off — in cents when offer_type is 'cents', or a percentage when 'percent'.
offer_typeNoWhether amount_off is a fixed amount in 'cents' or a 'percent' discount (default 'cents').
product_idYesThe product id to create the offer code on.
max_purchase_countNoOptional cap on how many times the offer code can be used.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. First observed

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The only annotation is destructiveHint=true, so the description must add the rest. It says nothing about uniqueness of the code text, what happens on a duplicate name, rate limits, or permissions required, and only restates that this is a POST to a fixed path.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences, front-loaded with the action and scope, with the API endpoint as a trailing reference. Nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter mutation with no output schema and no annotations beyond a destructive hint, the description covers the 'what' adequately but omits what the call returns (the created offer code/id that later get/update/disable calls need) and any pitfalls. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — every parameter including the amount_off/offer_type interaction, universal flag, and max_purchase_count is documented in the schema itself. The description adds no parameter meaning beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Create) and resource (offer code) and helpfully glosses the jargon as 'discount code' on 'a product', plus the backing REST endpoint. It is clearly distinguishable from get_/list_/update_offer_code siblings by the verb, though it never explicitly contrasts itself with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance: nothing about preconditions (product must exist), how it relates to gumroad_update_offer_code or gumroad_list_offer_codes, or when a universal vs product-scoped code is appropriate. Usage is only inferable from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.