BestPrintOnDemand
Server Details
Live print-on-demand costs by supplier: base price, US shipping, total and profit after fees.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool has a reasonably distinct scope: find_products searches the catalog, get_product_costs lists all suppliers' costs for one product, compare_suppliers does a pairwise supplier comparison across shared products, and get_price_changes tracks historical price movements. The main overlap risk is between compare_suppliers and get_product_costs, since both surface 'which supplier is cheaper', but the pairwise-across-products vs single-product-all-suppliers distinction is mostly clear from the descriptions.
All four tools follow a clean verb_noun snake_case pattern (find_products, compare_suppliers, get_price_changes, get_product_costs). The verbs vary (find/compare/get) but that reflects genuine functional differences rather than inconsistency, and the noun structure is fully predictable.
Four tools is well-scoped for a niche price-comparison domain spanning search, per-product costs, supplier comparison, and price history. It is on the lean side, so a bit more coverage (e.g. supplier listing or product detail) could help, but each tool clearly earns its place.
The surface covers the core read-only workflows of the domain: discovering products, comparing costs at a product level, comparing two suppliers, and tracking price changes. No create/update/delete is expected for a pricing-reference server, and coverage of the comparison lifecycle is strong, with only minor gaps like a dedicated supplier-overview operation.
Available Tools
4 toolscompare_suppliersCompare two print-on-demand suppliersBRead-onlyIdempotentInspect
Which of two suppliers (e.g. Printful and Printify) has the lower listed US total across the products both offer, matched on product, print method and blank, with the record by category and the largest gaps.
| Name | Required | Description | Default |
|---|---|---|---|
| supplier_a | Yes | A supplier name or slug, e.g. "Printful". | |
| supplier_b | Yes | Another supplier, e.g. "Printify". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety and idempotency. The description adds useful behavioral detail beyond them: it specifies the price basis (listed US total), the matching criteria (product, print method, blank), and hints at category records and largest gaps.
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?
It is concise, but the single sentence is dense and the ending 'with the record by category and the largest gaps' is grammatically unclear. The comparison question is front-loaded, but the result description is not well structured.
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?
There is no output schema, so the description should clarify return values. It vaguely mentions records by category and largest gaps, but does not fully explain the result shape, error cases, or what happens when suppliers have no overlapping products.
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 both parameters are already documented with examples in the input schema. The description adds no additional parameter syntax or constraints, so it meets the baseline for high schema coverage.
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 states a specific comparison: two suppliers by lower listed US total across overlapping products, matched on product, print method and blank. It is clearly distinct from product lookup or cost-listing siblings, though it does not explicitly name those alternatives.
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?
It describes what the comparison does but gives no explicit when-to-use guidance, prerequisites, or routing against sibling tools like find_products or get_product_costs. Usage is only inferable from the tool name and the comparison scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_productsFind print-on-demand productsARead-onlyIdempotentInspect
Search the catalog of print-on-demand products (t-shirts, hoodies, mugs, posters, stickers, phone cases, tote bags and more, or a blank such as Bella+Canvas 3001). Returns each match's slug, its lowest listed US total and supplier, and its page.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Most results to return (default 10). | |
| query | Yes | Product type or blank, e.g. "hoodie", "11oz mug", "Bella+Canvas 3001". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds useful behavioral context the annotations lack: what each match actually returns (slug, lowest listed US total and supplier, page). It does not mention ordering, empty-result handling, or rate limits.
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?
Two tightly written sentences with zero filler. The core purpose and accepted input space are front-loaded, and the return-shape detail follows without padding.
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 simple two-parameter search tool with no output schema, the description covers the input space and tells the agent what it gets back, which compensates for the absent output schema. Missing only guidance on when to prefer this over the sibling supplier/cost tools.
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%, so both limit (default 10, max 25) and query (maxLength 120) are already fully documented in the schema. The description's examples of query values ('hoodie', '11oz mug', 'Bella+Canvas 3001') merely restate the schema's own example. Baseline 3 is correct when the schema does the heavy lifting.
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?
States a specific verb and resource - 'Search the catalog of print-on-demand products' - with a concrete enumeration of product categories and the blank (Bella+Canvas 3001) it accepts. An agent can tell it is a search tool distinct from compare_suppliers and get_product_costs, though the description never names or contrasts those siblings explicitly.
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 says what the tool does but gives no when-to-use guidance, no prerequisites, and no routing advice toward compare_suppliers or get_product_costs. With three siblings in a tight domain, failing to state when this search tool is the right entry point is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_price_changesGet print-on-demand price changesARead-onlyIdempotentInspect
The price changes the site's hourly readings of Printful, Printify and Gelato attribute to the supplier: supplier-wide changes (many products moving by the same percentage or amount, each product's price before and after) and changes to one product's own price. Name a supplier to narrow it, or a product for its price history at each supplier.
| Name | Required | Description | Default |
|---|---|---|---|
| product | No | Product slug or name (e.g. "unisex-tee"), for its price history at each supplier. | |
| supplier | No | Only this supplier's changes, e.g. "Printful". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuine context beyond that: the data comes from hourly readings of three named suppliers and includes before/after prices and percentage/amount deltas. It stops short of describing pagination or time-window limits.
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 long sentence that front-loads the data source but buries the two operating modes mid-sentence. No wasted sentences, but the clause-dense construction ('the price changes the site's hourly readings ... attribute to the supplier') costs readability.
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?
With no output schema, the description carries the return-value burden and does specify the payload shape: before/after prices per product and same-percentage/amount moves. That is adequate for a two-param read tool whose annotations cover safety, though time-window and sorting behavior remain unstated.
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%, so the schema already defines both parameters, and the description largely restates them ('supplier to narrow it', 'product for its price history'). No additional syntax, format, or edge-case nuance (e.g., slug vs. name matching behavior) is offered.
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?
Names the resource (print-on-demand price changes from Printful/Printify/Gelato supplier readings) and distinguishes two modes: supplier-wide changes vs. a single product's price history. The sentence is grammatically convoluted ('the price changes the site's hourly readings ... attribute to the supplier'), which slightly obscures the verb, but the scope is clear and separable from siblings like get_product_costs.
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?
It tells the agent how the parameters behave ('Name a supplier to narrow it, or a product for its price history at each supplier') but gives no explicit when-to-use guidance or contrast with siblings such as compare_suppliers or get_product_costs. Usage 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.
get_product_costsGet a product's costs by supplierARead-onlyIdempotentInspect
Every supplier's listed US cost for one print-on-demand product: base price, first-item shipping and total, each with its source and date, cheapest first, plus the site's one-sentence answer on which supplier is cheapest like for like. Give sell_price (and optionally a sales channel) to get each supplier's profit after fees.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | No | Sales channel whose fees to subtract: etsy, shopify-own, woocommerce, tiktok-shop, walmart, ebay or amazon-seller. | |
| product | Yes | Product slug from find_products (e.g. "unisex-tee") or its name. | |
| sell_price | No | Your sell price in USD, to compute profit per supplier. | |
| buyer_pays_shipping | No | True when the buyer pays shipping on top of the sell price (default false: you cover shipping). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, non-destructive, non-open-world behavior, so the description only needs to add what annotations cannot. It does: results are ordered cheapest first, each figure carries its source and date, and supplying sell_price plus channel triggers per-supplier profit after fees. Missing details like caching or rate limits keep it from a 5.
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?
Two sentences, front-loaded with the returned data and followed by the input-triggered behavior. The first sentence is dense with enumerations but each item is informative; there is little wasted text.
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?
With no output schema, the description carries the full burden of describing returns, and it does so thoroughly: the fields returned, their provenance (source and date), the ordering, the summary sentence, and the conditional profit output. Combined with a 100%-covered input schema, an agent has everything needed to call this correctly.
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%, so the baseline is 3. The description earns above that by explaining the causal relationship between parameters and output: sell_price yields profit, an optional sales channel selects which fees are subtracted, and the product argument is what scopes the whole lookup. It does not mention buyer_pays_shipping, which the schema alone must carry.
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 names a specific resource and output set: every supplier's US cost for one print-on-demand product, broken into base price, first-item shipping, total, source, date, sort order, plus a one-sentence cheapest-supplier answer. That is far more precise than the title alone. It never differentiates itself from the sibling compare_suppliers, so it falls short of a 5.
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 second sentence gives conditional input guidance ('Give sell_price ... to get each supplier's profit after fees'), which implies when the profit mode activates. However there is no explicit when-to-use versus compare_suppliers or find_products, and no exclusions or prerequisites are stated.
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.
1 tool update
- Added
get_price_changes
3 tool updates
- First observed
compare_suppliers - First observed
find_products - First observed
get_product_costs
Related MCP Connectors
Live prices in USD, options and shipping quotes for custom-printed promotional products.
Live prices, options and shipping quotes for custom-printed promotional products.
True net profit and breakeven price for eBay, Etsy, Poshmark, Mercari, Depop, Whatnot, TikTok Shop.
Live USPS, UPS & FedEx shipping rates plus USPS postage and stamp prices. Free, no API key.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceItemises marketplace fees, shipping, and item costs to work out true net profit, margin, and ROI for sales on eBay, Etsy, Poshmark, Mercari, Depop, Whatnot, and TikTok Shop. It also ranks the same item across all seven platforms and finds the lowest list price that still hits a target profit, with dated fee schedules and custom fee overrides.MIT
- AlicenseAqualityCmaintenanceProvides current, human-verified pricing for 100+ AI tools and calculates AI product margins (MRR after costs). Fetches live price index and runs locally.230 npmMIT
- AlicenseAqualityBmaintenanceLive US import tariff calculator covering 19,856 HTS codes, allowing AI to look up stacked tariff rates and project the November 10, 2026 cliff impact on any product.260 npmMIT
- AlicenseAqualityAmaintenanceLive LLM API pricing: current token prices, model comparisons, cheapest-model lookups, and The LLM Price Index for 150+ models across 20+ providers, re-verified daily. No API key required.41MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.