Skip to main content
Glama
thenavidm

Gumroad MCP Server

by thenavidm

Create offer code

create_offer_code
Destructive

Create a discount or coupon code for a Gumroad product by providing product ID, code name, and amount off; optionally set percent/cents, minimum order, or usage cap.

Instructions

Create offer code. Reviewed native POST /products/:product_id/offer_codes; scope: edit_products. Requires explicit per-call confirmation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYes(the coupon code used at checkout)
accountNoExact private profile label; never inherited credentials, ownership or scope proof.
confirmNoSet true only when the user asked for exactly this action.
universalNo(optional, true or false) Default: false
amount_offYes
offer_typeNo(optional, "cents" or "percent") Default: "cents"
product_idYesExact opaque provider ID, including native = padding.
max_purchase_countNo(optional)
minimum_amount_centsNo(optional) Minimum order total in cents required for the offer code to apply

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv3.0.0
    • removedInput schema / properties / amount_off / maximum
      Removed value: -9007199254740991
    • changedInput schema / properties / confirm / description
      Previous value: -"Explicit approval of this exact native effect or private file output."New value: +"Set true only when the user asked for exactly this action."
    • removedInput schema / properties / max_purchase_count / maximum
      Removed value: -9007199254740991
    • removedInput schema / properties / minimum_amount_cents / maximum
      Removed value: -9007199254740991
  2. First observedv2.0.0

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, non-idempotent, and open-world, so the safety profile is covered. The description adds value beyond them by disclosing the required OAuth/API scope (edit_products) and the mandatory per-call confirmation, both of which materially affect whether and how the agent should call it.

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

Conciseness4/5

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

Three terse clauses with no padding, and the core action is front-loaded. The telegraphic style ('Reviewed native POST...; scope: edit_products') is efficient, though slightly clipped for readability.

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

Completeness4/5

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

For a destructive create tool with full annotation coverage, 89% schema coverage and no output schema, the definition supplies the missing key facts: the underlying endpoint, the required scope, and the confirmation requirement. Return-value behavior is not described, but no output schema exists to lean on and this is a minor gap for a create operation.

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 high (89%), so the schema already documents name, account, confirm, offer_type and others. The description only reinforces the confirm parameter ('explicit per-call confirmation') and adds no syntax or format detail beyond the schema, 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?

The description states a clear verb+resource ('Create offer code') and backs it with the native endpoint (POST /products/:product_id/offer_codes), so it is unambiguously the creation tool among siblings like update_offer_code and delete_offer_code. It does not, however, explicitly contrast itself with those siblings.

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

Usage Guidelines3/5

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

'Requires explicit per-call confirmation' gives a concrete precondition for invoking the tool, and the stated scope (edit_products) tells the agent what authorization is needed. It never states when to prefer this tool over alternatives or when not to use it, leaving usage largely implied.

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