gumroad-mcp-server
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation4/5
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.
Naming Consistency4/5All 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.
Tool Count5/5Eight 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.
Completeness5/5The 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.
Average 3.5/5 across 8 of 8 tools scored. Lowest: 2.9/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 3 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly says 'Reads money without moving it,' which usefully discloses that this is a read-only operation with no side effects. However, with no annotations provided, the description still omits important behavioral details like pagination mechanics via page_key, whether results are ordered, or how date filters behave on output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately brief and front-loaded: it states the output shape first, then the safety behavior. The 'Operation id' line is slightly internal but still compact and informative. No wasted words, though the sentence fragment 'Sales, one row each' could have been written as a fuller sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, the description does not provide enough context for reliable invocation. The agent is not told how pagination works, what output fields to expect, whether filters are mutually exclusive, or how this relates to gumroad_get_sales_summary. Several parameters remain unexplained across both the schema and description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 60%, leaving page_key and product_id undocumented in the schema. The description itself adds no parameter-level meaning, so it does not compensate for that gap. It also does not clarify how after and before interact or what granularity 'one row each' implies relative to the available filters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description's 'Sales, one row each' clearly indicates this tool returns individual sale records rather than an aggregate, and 'Reads money' clarifies it is a read operation. Combined with the tool name get_sales, this is enough to identify the tool's purpose. It does not use an explicit verb like 'get' or 'list', but the operation id 'listSales' reinforces the meaning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus its siblings, especially gumroad_get_sales_summary. The description does not mention alternatives, exclusions, or the appropriate context for choosing this over other sales-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It indicates that the resource is the authenticated seller account and names the operation as getUser, but it does not describe what data is returned, whether the operation requires special permissions, or any side effects. For a getter this is a low-risk operation, but that is implied by the name rather than disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two short sentences with no wasted words. It front-loads the core resource identity and adds the operation id as a clarifying detail. It is concise, though the operation id is largely redundant with the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no input schema, no output schema, and no annotations, the description should explain what the returned user object represents or when to call this operation. It only states that the target is the authenticated seller account and gives the operation id. Missing return-value context and usage guidance leave the description under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter detail for the description to clarify. Schema coverage is effectively complete at 100%, and the description adds the context that the target is the authenticated seller account. This meets the baseline for a zero-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as 'the authenticated seller account' and provides the operation id 'getUser', making the tool's purpose clear: fetch the current seller's user information. It is distinct from siblings like get_product or get_sales because it specifically targets the seller account rather than products or transaction data. However, it relies on the operation id to supply the verb, since the prose is a noun phrase rather than an explicit 'Gets...' statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as gumroad_get_product or gumroad_get_sales. The phrase 'authenticated seller account' implies the context, but no explicit when-to-use or when-not-to-use instructions are given. No alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read-only listing operation but does not explicitly state that it has no side effects, does not mention pagination behavior, or the structure of the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, containing only two short phrases. It avoids unnecessary verbosity, though it sacrifices some detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks information about the output format, pagination details, or any potential errors. For a simple list operation, it is minimally adequate but not complete enough to fully inform an agent without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, page_key, is described as 'From a previous response, to page on,' which clearly explains its purpose for pagination. This adds meaningful context beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Every product on the account' and the operation id 'listProducts' clarifies that it retrieves all products. It is distinguishable from sibling tools like get_product and create_product, though it does not use an explicit verb like 'list' or 'retrieve'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool instead of alternatives, nor any mention of pagination, filtering, or other usage context. The description provides no explicit conditions or examples for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full safety burden. It explicitly discloses that certain operations 'move real money or reach real customers' and that the tool is 'classified destructive as a whole,' naming concrete examples. This goes well beyond a generic 'be careful' warning, though it does not address idempotency, rate limits, or output behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core purpose, followed by a concrete risk list and an actionable safeguard. No filler or redundancy; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generic operation dispatcher with no output schema and no annotations, the description provides essential safety context and instructs the agent to consult the operation summary before calling. However, it doesn't point to gumroad_list_operations as the discovery source, nor explain how to translate an operation summary into the `body`/`params` fields. Thus, an agent has enough to be cautious but not enough to confidently construct arbitrary calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only identifies operation_id by referring to calling an operation by id. It does not explain the `body` or `params` properties, how operation-specific arguments should be structured, or what checking the operation's summary should reveal about inputs. The schema's bare `additionalProperties` object remains entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action — 'Call any Gumroad operation by id' — and names concrete example operations, so an agent understands it is a generic dispatcher keyed by operation_id. It doesn't explicitly distinguish when to prefer this over the dedicated sibling tools, but the generic-by-id semantics provide reasonable clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage — call by operation_id and check the operation's summary first — but never says when gumroad_call should be chosen over dedicated siblings like gumroad_create_product or gumroad_get_sales. There is no explicit alternative routing or when-not-to-use guidance, though the safety warning establishes a clear precondition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose that the result includes variants and is a full product representation, but it omits other behavioral context such as authentication requirements, failure modes, or whether it is a read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the core meaning. The second sentence, 'Operation id: getProduct', adds marginal value and is somewhat redundant with the tool name, but it does not create significant clutter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter and no output schema, and the description states the essential return content ('full' product with variants). However, it does not explain where product_id comes from, how it relates to list_products, or what fields the full product includes, leaving meaningful gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no direct meaning for the product_id parameter beyond the parameter name itself. It only implies via context that product_id identifies the product, so the description does not compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource ('One product'), the scope ('in full'), and the key differentiator ('including its variants'). This distinguishes it from plural or summary siblings like gumroad_list_products and gumroad_get_sales.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'One product' implicitly signals use when a single product is needed rather than a list, but it does not explicitly name alternatives or give conditions for when not to use this tool. The guidance is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose the output (gross/net/unit totals) and a relevant error behavior for getEarnings, but it does not state whether this tool is read-only, what happens when after/before are omitted, or any response structure. It is not misleading, but it is only moderately transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-organized: a one-sentence summary followed by targeted operational guidance. Every sentence earns its place, including the operation id and the caution about tax-form endpoints, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description covers the main return values and provides practical caveats. It does not explain default date-range behavior when both parameters are omitted or explicitly contrast with gumroad_get_sales, but these are minor gaps given the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents after and before with inclusive YYYY-MM-DD format. The description only adds 'over a date range,' which does not meaningfully extend the parameter semantics beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as returning gross, net, and unit totals over a date range, and gives the operation id. It is specific about resource and scope, though it does not explicitly name the verb or distinguish itself from the sibling tool gumroad_get_sales beyond the 'summary' concept.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance: 'Use this rather than getEarnings' and explains exactly when that alternative fails due to 'Tax center' not being enabled. It also warns that the error is an account setting and should not be retried, leaving no ambiguity about the intended choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It conveys the non-mutating nature ('Browse') and the scope (105 operations, returns operation ids), which covers the core behavioral profile. However, it does not disclose return structure, pagination behavior for a 105-item listing, or how the search filter affects results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero filler. Scope is front-loaded, the tool's purpose is stated immediately, and the sibling-tool routing is delivered in the final clause. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity discovery tool with one optional parameter and no output schema, the description covers what it does, why to use it, and how it relates to dedicated siblings. The main gap is the lack of detail on what the returned list looks like when search is empty versus filtered, which is minor for an index tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with the search parameter already documented ('Filter by id, path, tag or summary'). The description's category list (sales, variant, license) partially reinforces the search hints, but it adds no genuinely new parameter semantics beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Browse'), resource ('all 105 operations in the Gumroad v2 API'), and scope, enumerating the covered categories (products, sales, payouts, webhooks, etc.). It differentiates itself from the operation-executing siblings by framing itself as an index/discovery tool that feeds gumroad_call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit use context: 'Use this to find an operation id for gumroad_call.' It also signals the routing rule that common operations have dedicated tools below, implying the agent should prefer those for frequent cases. It stops short of explicitly naming each alternative or stating a hard when-not-to-use rule, but the guidance is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it does so well: it discloses draft=true, disabled purchases, the separate publishing step, and the price_cents-vs-dollars asymmetry. It does not cover auth, response contents, or rate limits, but the most surprising and consequential behaviors are transparently stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The essential statement is front-loaded, and the warnings are grouped logically in two short paragraphs. The explanation of why the unit mismatch was not silently normalized is slightly verbose but earns its place by preventing incorrect assumptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description covers the critical operational context: draft state, disabled purchases, the publishing alternative, and the unit asymmetry. It omits details such as expected response shape or authorization, but the information needed to avoid the main pitfalls is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, so the description does not need to explain every field. It adds crucial meaning beyond the schema by highlighting that price_cents is in cents while the update endpoint uses dollars, and by reinforcing that zero means pay-what-you-want. Remaining undocumented fields like tags and description are largely self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a clear verb and resource: 'Create a product.' It goes beyond a simple label by specifying the outcome ('created as a DRAFT with purchases disabled') and names the operation id, making it unambiguous and distinct from any read or list siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says publishing is a separate call ('enableProduct') and that this tool cannot put anything on sale, which tells an agent when not to rely on this tool. It does not enumerate all sibling alternatives, but the key operational boundary is clearly drawn.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
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/N-Graves/gumroad-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server