gumroad-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_READ_ONLY | No | Set to '1' to refuse anything that changes state. | |
| GUMROAD_BASE_URL | No | Optional base URL for the Gumroad API. Overrides the default host. | |
| MCP_NO_DESTRUCTIVE | No | Set to '1' to allow writes but refuse refunds, deletes, and sends. | |
| GUMROAD_ACCESS_TOKEN | Yes | Your Gumroad access token. Required for all API calls. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| gumroad_list_operationsA | Browse all 105 operations in the Gumroad v2 API — products, variants, sales, payouts, storefront pages, email broadcasts, licences and webhooks. Use this to find an operation id for gumroad_call. The few most common ones also have a dedicated tool below. |
| gumroad_callB | Call any Gumroad operation by id. Some of these move real money or reach real customers — refundSale, sendEmail, scheduleEmail — so this is classified destructive as a whole. Check the operation's summary before calling it. |
| gumroad_get_userB | The authenticated seller account. Operation id: getUser. |
| gumroad_list_productsB | Every product on the account. Operation id: listProducts. |
| gumroad_get_productA | One product in full, including its variants. Operation id: getProduct. |
| gumroad_create_productA | Create a product. It is created as a DRAFT with purchases disabled — Gumroad's own controller sets draft=true — so this cannot put anything on sale. Publishing is a separate call (enableProduct). Operation id: createProduct. ⚠️ price_cents is in CENTS here, while Gumroad's UPDATE endpoint takes dollars. That asymmetry is upstream's, not this server's, and it is stated rather than silently normalised because a silent conversion is worse than a documented trap. |
| gumroad_get_salesC | Sales, one row each. Reads money without moving it. Operation id: listSales. |
| gumroad_get_sales_summaryA | Gross, net and unit totals over a date range. Operation id: getSalesSummary. Use this rather than getEarnings: earnings and the tax-form endpoints need 'Tax center' enabled on the account and otherwise return 'Tax center is not enabled for this account.' That is an account setting, not a fault — do not retry it. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each dedicated tool targets a specific resource or action, and the generic gumroad_call plus gumroad_list_operations are clearly framed as an escape hatch for all other operations. There is intentional overlap between generic and dedicated paths, but the descriptions make the distinction workable.
All tools share the gumroad_ prefix and mostly follow a verb_noun snake_case pattern. Minor inconsistencies exist: collection reads mix get_sales and list_products, while gumroad_call is a generic verb with no noun target.
Eight tools is a well-scoped surface for a Gumroad API wrapper. The generic call tool keeps the count reasonable instead of exposing all 105 operations as individual tools.
The combination of gumroad_list_operations and gumroad_call provides access to the full Gumroad v2 API, so missing dedicated update/publish/delete tools are not actual gaps. Common product, sales, and user workflows all have direct tools.