Gumroad
The Gumroad MCP Server enables AI clients like Claude Desktop to interact with the Gumroad API via the Model Context Protocol (MCP). You can:
Retrieve authenticated user data
Manage products: get all products, get a specific product by ID, enable or disable products
Retrieve sales data with filters for date, email, order ID, page key, and product ID
Manage offer codes: list all offer codes for a product, get a specific offer code, create new offer codes (with options for name, amount off, offer type, and max purchase count), update offer code details, and delete offer codes
Enables interaction with Gumroad's API, providing tools for managing products (getting, enabling, disabling), tracking sales data, handling offer codes (creating, updating, deleting), and accessing user information.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Gumroadshow me my top-selling products from last month"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Gumroad MCP Server
Your browser does not support the video tag.
Overview
A Model Context Protocol (MCP) server implementation for Gumroad, enabling MCP-compatible AI clients like Claude Desktop to interact with Gumroad API.
The Model Context Protocol (MCP) allows AI assistants to interact with external tools and services.
Related MCP server: MCP Server Example
Quickstart
Start using Gumroad MCP Server with Claude Desktop in seconds:
npx gumroad-mcp@latest initThis command sets up the MCP server with your Gumroad credentials through an interactive prompt.
Usage
Once configured, try these commands in your MCP-compatible client:
How many sales did I make last month vs a year ago?
Generate an interactive chart with last year's sales
List my top-selling products on Gumroad from last year
Show month-over-month trend of my top-selling product last year
Disable "Product Name" product
Enable "Product Name" product
List all offer codes for "Product Name"
Create a new offer code "FAFO" with 99% off for "Product Name"
Delete offer code "abc123" from "Product Name"
Tools
Products
gumroad_get_products- Get all productsgumroad_get_product- Get a single product by IDgumroad_disable_product- Disable a productgumroad_enable_product- Enable a product
Sales
gumroad_get_sales- Get sales data
Offer Codes
gumroad_get_offer_codes- Get all offer codes for a productgumroad_get_offer_code- Get a single offer codegumroad_create_offer_code- Create a new offer codegumroad_update_offer_code- Update an existing offer codegumroad_delete_offer_code- Delete an offer code
User
gumroad_get_user- Get authenticated user data
Installation
Installing via Smithery
To install gumroad-mcp for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @rmarescu/gumroad-mcp --client claudePrerequisites
Node.js 18 or later
A Gumroad account with API access
An MCP-compatible client (like Claude Desktop)
To verify you have Node installed, open the command line on your computer.
On macOS, open the Terminal from your Applications folder
On Windows, press Windows + R, type "cmd", and press Enter
Once in the command line, verify you have Node installed by entering in the following command:
node --versionGenerate a Gumroad access token
Gumroad API requires authentication. To generate an access token, follow these steps:
Log in to your Gumroad account (or your own instance of Gumroad).
Go to Settings > Advanced page.
Create a new application by providing the following information:
Application icon (optional): A small thumbnail image to identify your application.
Application name: A name for your application.
Redirect URI: For personal use, you can enter
http://127.0.0.1(localhost) as this value is not meaningful in this context.
Click "Create application."
Use the "Generate access token" button to get your access token.
Keep your access token safe and confidential, like a password. You'll need to include it in your configuration as shown below.
Claude Desktop installation
If you use Claude Desktop, you can use the interactive setup:
npx gumroad-mcp@latest initManual installation
For other MCP-enabled applications, you will need to update the MCP configuration manually.
Example config
{
"mcpServers": {
"gumroad": {
"command": "npx",
"args": ["-y", "gumroad-mcp@latest"],
"env": {
"GUMROAD_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}If you're using a self-hosted Gumroad instance, you can configure the server to connect to your custom URL via GUMROAD_BASE_URL:
{
"mcpServers": {
"gumroad": {
"command": "npx",
"args": ["-y", "gumroad-mcp@latest"],
"env": {
"GUMROAD_ACCESS_TOKEN": "<YOUR_TOKEN>",
"GUMROAD_BASE_URL": "https://example.com"
}
}
}
}The server automatically appends the API version (/v2) to your base URL. For example, with GUMROAD_BASE_URL="https://example.com", API requests will be sent to https://example.com/v2.
Please refer to these instructions on how to add the MCP Server to Claude Desktop.
Contributing
Found a bug or want to suggest a feature? Please open an issue or submit a pull request on GitHub.
License
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
Available Tools
11 toolsgumroad_create_offer_codeB
Creates a new offer code for a product
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name/code of the offer (coupon code used at checkout) | |
| universal | No | Whether this offer applies to all products. Default: false | |
| amount_off | Yes | The amount to discount | |
| offer_type | No | The type of offer (cents or percent). Default: cents | |
| product_id | Yes | The ID of the product this offer applies to | |
| max_purchase_count | No | Maximum number of times this offer can be used |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits, but it only says what the tool does, not how. It omits side effects (e.g., whether it overwrites existing codes), authorization needs, or error behaviors, leaving the agent with insufficient context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence without any extraneous information. It is front-loaded and efficient, earning its place without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 6 parameters and no output schema or annotations, the description is minimal. It does not explain return values, validation rules, or error conditions, leaving the agent underinformed for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all 6 parameters with descriptions, so baseline is 3. The tool description adds no additional meaning beyond what the schema already provides, but it neither contradicts nor improves parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Creates') and the resource ('offer code for a product'). It effectively distinguishes this tool from sibling tools like gumroad_delete_offer_code or gumroad_update_offer_code, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating offer codes but provides no explicit guidance on when to use this tool versus alternatives. There is no mention of prerequisites, appropriate contexts, or situations where it should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gumroad_delete_offer_codeC
Deletes an offer code for a product
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | The ID of the product this offer applies to | |
| offer_code_id | Yes | The ID of the offer code to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It simply states 'Deletes' without disclosing consequences (e.g., irreversibility, impact on existing uses, or required permissions).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It is appropriately sized for a straightforward delete operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive action with no output schema, the description should mention the return value or confirm successful deletion. It also lacks context about irreversibility or error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and parameter descriptions are clear. The tool description adds no extra meaning beyond what is already in the schema, so it meets the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Deletes' and identifies the resource 'offer code for a product'. It clearly distinguishes from sibling tools like 'gumroad_create_offer_code' and 'gumroad_update_offer_code', but lacks additional scope details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it does not mention that deletion is permanent or that it should be used when the offer code is no longer needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gumroad_disable_productB
Disables a product by its ID
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | The ID of the product to disable |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only states the action without explaining reversibility, side effects on offer codes or sales, or authorization needs. The lack of detail is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. However, it could be improved by adding a brief note on effects or usage, but it remains appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is minimally complete. It lacks explanations of return values or side effects, which are noticeable but not critical for this simple action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for the single parameter 'product_id'. The description adds no meaningful extra meaning beyond 'by its ID', so it meets the baseline but does not improve clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Disables' and the resource 'a product', distinguishing it from siblings like 'enable_product' and other tools. It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to disable a product versus using alternatives (e.g., enabling, deleting, or updating). There is no context about prerequisites or consequences.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gumroad_enable_productB
Enables a product by its ID
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | The ID of the product to enable |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden but only says 'enables', omitting side effects, reversibility, or authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single efficient sentence with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple one-param tool but lacks behavioral context such as prerequisites or effects of enabling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear parameter description; the tool description adds no extra meaning beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'enables' and the resource 'product', and implicitly distinguishes from sibling gumroad_disable_product.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like disable, nor any prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gumroad_get_offer_codeA
Retrieves a single offer code by its ID for a specific product
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | The product ID the offer code belongs to | |
| offer_code_id | Yes | The ID of the offer code to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It mentions 'retrieves' indicating a read operation, but lacks details on permissions, errors, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, no output schema), the description covers the essential purpose, though it does not explain the return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds no extra meaning beyond what the schema already provides for the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves a single offer code by ID for a specific product, using a specific verb and resource, and is distinct from 'get_offer_codes' (plural).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a specific offer code ID, but does not explicitly state when to use versus alternatives like 'get_offer_codes' or other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gumroad_get_offer_codesA
Retrieves all offer codes for a product
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | The product ID to get offer codes for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description is minimal but adequate for a simple read operation. Does not mention that it is non-destructive or any other traits beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, concise sentence with no unnecessary words. Front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple with one parameter and no output schema. Description is adequate but could hint at return format (e.g., 'returns an array of offer codes') or mention that it lists all codes without pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: product_id is described in the schema. Tool description adds no additional meaning beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it retrieves all offer codes for a product, with a specific verb and resource. It distinguishes from sibling tool gumroad_get_offer_code (singular) which retrieves a single offer code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., when to use the singular variant). Agent must infer from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gumroad_get_productB
Retrieves a single product by its ID
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | The ID of the product to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It only states the retrieval action but omits critical details like error handling (e.g., product not found), permissions, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. Efficiently communicates the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple one-parameter tool with no output schema, the description is minimally adequate but lacks any extra context about return format or error behavior, leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description is already clear in the schema. The tool description adds no additional meaning beyond the schema, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'retrieves', the resource 'single product', and the method 'by its ID'. It effectively distinguishes from sibling tools like gumroad_get_products (plural) and modification tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., gumroad_get_products for listing). The description lacks context on prerequisites or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gumroad_get_productsB
Retrieves all of the products
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only states 'retrieves', which implies read-only, but no disclosure of pagination, rate limits, data freshness, or other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, no wasted words. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Minimal description for a zero-parameter tool. No output schema, so agent must infer return format. Sufficient for a simple list but lacks detail on scope and constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. Baseline is 4, but the description adds no meaning beyond 'all products', which is vague (e.g., does it include all products across the account? Marketplace?). Hence slight deduction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves all products, distinguishing from siblings like gumroad_get_product which retrieves a single product. However, it does not explicitly differentiate from similar list endpoints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like gumroad_get_product or when not to use it. The description lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gumroad_get_salesC
Retrieves all of the successful sales
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | Only return sales after this date (YYYY-MM-DD) | |
| No | Filter sales by this email | ||
| before | No | Only return sales before this date (YYYY-MM-DD) | |
| order_id | No | Filter sales by this Order ID | |
| page_key | No | A key representing a page of results | |
| product_id | No | Filter sales by this product |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides no behavioral details beyond a generic retrieval. It does not mention pagination (despite a page_key parameter), rate limits, or that it's read-only. With no annotations, the description carries full burden but fails to disclose important traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no fluff. Every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, no output schema, and no behavioral context, the description is incomplete. It omits details on pagination, filtering behavior, and return value structure, which are essential for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The tool description adds no parameter-specific meaning, but the schema already covers semantics adequately, warranting a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Retrieves all of the successful sales' clearly states the verb (retrieves) and resource (sales), distinguishing it from siblings which handle products or offer codes. However, it doesn't capture that filtering is possible via parameters, somewhat oversimplifying.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage context or comparison to alternatives is provided. The description does not indicate when to use this tool versus other gumroad tools, nor when to avoid it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gumroad_get_userA
Retrieves the authenticated user's data. Available with any scope.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It indicates a read operation ('retrieves'), but lacks details on side effects, rate limits, or authentication requirements beyond scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded, efficiently conveying the purpose. While more detail could be added, it avoids unnecessary verbiage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no parameters, the description could benefit from explaining the return value structure. As is, it only states the basic operation, leaving some context missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100%. The description adds no param info, but none is needed. Baseline is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieves') and the resource ('authenticated user's data'). This distinguishes it from sibling tools that deal with offer codes, products, and sales.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'Available with any scope', which gives some context on authentication. However, it does not explicitly state when to use this tool vs alternatives or exclude certain scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gumroad_update_offer_codeA
Updates the max purchase count of an existing offer code for a product
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | The ID of the product this offer applies to | |
| offer_code_id | Yes | The ID of the offer code to update | |
| max_purchase_count | No | Maximum number of times this offer can be used |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It only states the core function but does not disclose potential side effects (e.g., whether updating the count affects existing purchases or requires the offer code to be active). It lacks details on reversibility, authorization needs, or error cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that immediately conveys the tool's purpose. It is concise, front-loaded with the verb, and contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (3 parameters, no output schema, no nested objects), the description is minimally adequate. However, it could be improved by indicating what happens on success (e.g., returns updated offer code) or how errors are handled. No output schema is provided, so the description could briefly note the return type.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 100% schema coverage, the description adds value by specifying that only the max_purchase_count is updated, which is not explicitly stated in the schema where all three parameters are listed. This clarifies the tool's scope and distinguishes it from a hypothetical general update tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action: updating the max purchase count of an existing offer code. It uses a specific verb 'Updates' and a specific resource 'max purchase count of an existing offer code', which distinguishes it from sibling tools like create, delete, or get offer codes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you want to modify the max purchase count, but it does not provide explicit guidance on when to use this tool versus alternatives (e.g., creating a new offer code or deleting one). There is no mention of prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
11 tool updates
v1.0.0- First observed
gumroad_create_offer_code - First observed
gumroad_delete_offer_code - First observed
gumroad_disable_product - First observed
gumroad_enable_product - First observed
gumroad_get_offer_code - First observed
gumroad_get_offer_codes - First observed
gumroad_get_product - First observed
gumroad_get_products - First observed
gumroad_get_sales - First observed
gumroad_get_user - First observed
gumroad_update_offer_code
TDQS
Each tool targets a distinct action and entity: offer codes have separate create/delete/get/update, products have enable/disable/get, plus individual tools for sales and user. No overlapping purposes.
All tools follow the uniform pattern `gumroad_verb_noun` in snake_case, with clear verbs (create, delete, disable, enable, get, update) and nouns (offer_code, product, sales, user). Highly consistent.
11 tools is well-scoped for a Gumroad integration, covering product management, offer codes, sales, and user info without being overwhelming or sparse.
Offer codes have full CRUD, but products lack create/update/delete, and sales only support a single 'get all' without filtering or detail. These are notable gaps for a complete workflow.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
MCP server for Lemon Squeezy — stores, products, orders, subscriptions, license keys.
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Related MCP Servers
- AlicenseAqualityFmaintenanceModel Context Protocol (MCP) server implementation that enables Claude Desktop to interact with Google's Gemini AI models.632258MIT
- AlicenseBqualityDmaintenanceAn educational implementation of a Model Context Protocol server that demonstrates how to build a functional MCP server for integrating with various LLM clients like Claude Desktop.1163MIT
- AlicenseAqualityDmaintenanceMCP server that integrates with Gumroad API, enabling Claude to list products, view sales, and get sales summaries for your Gumroad store.450MIT
- AlicenseBqualityDmaintenanceA Model Context Protocol (MCP) server that provides tools for managing GoHighLevel (GHL) conversations, tasks, and calendar appointments through AI assistants like Claude.2121MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rmarescu/gumroad-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server