Skip to main content
Glama
thenavidm

Gumroad MCP Server

by thenavidm

Enable license

enable_license
Destructive

Activate a Gumroad product's license to restore customer access after purchase or entitlement changes. Requires product ID and explicit confirmation before execution.

Instructions

Enable license. Reviewed native PUT /licenses/enable; scope: edit_products. Requires explicit per-call confirmation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
accountNoExact private profile label; never inherited credentials, ownership or scope proof.
confirmNoSet true only when the user asked for exactly this action.
product_idYes(the unique ID of the product — copy it from the license key block on the product's Content tab, or use the id field returned by the GET /products endpoint)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv3.0.0
    • 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."
  2. First observedv2.0.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true, idempotentHint=false, and openWorldHint=true. The description adds concrete value beyond annotations: the scope requirement (edit_products) and the explicit per-call confirmation requirement. It does not contradict annotations (it is a mutation, matching readOnlyHint=false). Missing details on what exactly gets enabled or side effects.

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?

Three short clauses, front-loaded with the action, then scope, then constraint. No filler sentences; every phrase (endpoint, scope, confirmation) carries operational weight.

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?

Covers the key agent needs: what it does, required scope, and the confirmation gate. No output schema exists, but a simple enable action likely returns a status that the agent can infer. Minor gap: no explicit statement of state change effect or error conditions.

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%, so the schema already documents all three parameters thoroughly (including copying product_id from the Content tab). The description adds nothing new about parameters beyond the confirmation requirement, which is also reflected in the confirm field. Baseline 3 is appropriate.

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 clear verb+resource ('Enable license') and adds the underlying native endpoint (PUT /licenses/enable). It doesn't explicitly differentiate from sibling disable_license or enable_product, but the verb+resource is specific enough for an agent to distinguish this from related license tools.

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?

The 'Requires explicit per-call confirmation' note implies when to use it (only on explicit user request), which is reinforced by the confirm parameter. However, no when-not-to-use guidance or explicit alternative routing (e.g., vs disable_license) is given.

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