Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,552Letters: 14Defects: 1,331counted 1 min ago
teppi

Server definition

Hash
sha256:2e922ec53b034ca7920d73c3040b38130dd3e554f5124e29ff41e4857f7ab73b
What it is
What a remote MCP server returned when asked what it offers: 8 tools

The blob, as servednamed by its sha256

{ "instructions": "Promotion Pros sells custom branded merchandise (promotional products) to businesses. Prices are USD per unit and depend on quantity; decoration setup is a one-time charge per order. Use search_catalog to find products and quote_price for a quantity-specific total, then either give the buyer the deep_link to finish on promotionpros.com or, when they want something to keep, forward or get approved, issue a real document with create_instant_quote. create_instant_quote is the only tool here that writes: it needs the buyer's full name, work email and phone, it emails them a numbered quote with a PDF and a link they can pay from, and calling it twice issues two quotes. Confirm the configuration, the quantity and the email with the buyer first. Products are titled for what they are, not for the occasion they are bought for, so searching \"Thanksgiving gift\" or \"holiday party favor\" will miss. For an occasion, holiday or gifting ask, browse a category instead: pass `category` with no `query`, then narrow by product type. The gifting categories are the current year's gift guide, \"Special Occasions\" and \"Boxes & Gift Baskets\" — take their exact names from facets.categories rather than assuming them. A search that matches nothing returns the categories worth browsing in facets.categories.", "tools": [ { "description": "Issue a real, numbered Promotion Pros quote for a configuration priced with quote_price, and email it to the buyer. Returns the quote number, the reconciled price breakdown, a PDF, a link to the quote page and a link that takes the buyer straight to payment. Requires the buyer's full name, work email and phone number — ask for them, and confirm the configuration and the quantity, before calling this. This writes: it creates an order record and sends mail, and calling it twice issues two quotes to the same person. The price is recomputed live by promotionpros.com, so it can differ slightly from quote_price's snapshot; the numbers returned here are the quoted ones. Shipping and tax are not in the quote until the buyer adds a delivery address on the quote page.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "color": { "description": "Product color name, from get_product_options.", "maxLength": 60, "type": "string" }, "company": { "maxLength": 200, "type": "string" }, "destination_state": { "description": "Where it ships to, for the arrival estimate recorded on the quote: a US state code (\"IL\") or name. Omit if unknown.", "maxLength": 40, "type": "string" }, "email": { "description": "The buyer's work email. The quote is sent here, so confirm it before calling.", "maxLength": 200, "minLength": 3, "type": "string" }, "full_name": { "description": "The buyer's full name, as they gave it.", "maxLength": 120, "minLength": 1, "type": "string" }, "imprint_colors": { "maximum": 12, "minimum": 1, "type": "integer" }, "imprint_method": { "description": "Decoration method name, from get_imprint_options.", "maxLength": 80, "type": "string" }, "phone": { "description": "A phone number to reach the buyer on. Required by the quote desk.", "maxLength": 40, "minLength": 5, "type": "string" }, "product": { "description": "Identify the product by exactly one of slug, id or sku.", "properties": { "id": { "description": "The catalog product id, as returned by search_catalog.", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "sku": { "description": "The Promotion Pros SKU shown on the product page.", "minLength": 1, "type": "string" }, "slug": { "description": "The product page path, e.g. \"blue-ceramic-mug-11oz\" — from a search result's handle or a promotionpros.com URL.", "minLength": 1, "type": "string" } }, "type": "object" }, "quantity": { "description": "Total pieces. Below the method's minimum, the quote is issued at the minimum.", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "rush": { "type": "boolean" }, "sizes": { "description": "Per-size quantities for apparel; replaces quantity.", "items": { "properties": { "quantity": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "size": { "minLength": 1, "type": "string" } }, "required": [ "size", "quantity" ], "type": "object" }, "maxItems": 20, "type": "array" } }, "required": [ "product", "full_name", "email", "phone" ], "type": "object" }, "name": "create_instant_quote", "outputSchema": null }, { "description": "When an order placed today would arrive: the standard FedEx Ground date and, when the product offers it, the rush date — both in one call. Give the buyer's US state for a real shipping lane; dates are business days from today in Central time and include the free proof, production and transit. Rush skips the proof wait and starts the same business day when artwork arrives before noon Central.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "destination_state": { "description": "Where it ships to: a US state code (\"IL\") or full name (\"Illinois\"). Omit if unknown — a typical US transit is assumed. US only.", "maxLength": 40, "type": "string" }, "product": { "description": "Identify the product by exactly one of slug, id or sku.", "properties": { "id": { "description": "The catalog product id, as returned by search_catalog.", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "sku": { "description": "The Promotion Pros SKU shown on the product page.", "minLength": 1, "type": "string" }, "slug": { "description": "The product page path, e.g. \"blue-ceramic-mug-11oz\" — from a search result's handle or a promotionpros.com URL.", "minLength": 1, "type": "string" } }, "type": "object" } }, "required": [ "product" ], "type": "object" }, "name": "estimate_delivery", "outputSchema": null }, { "description": "How a product can be decorated: each imprint method with its minimum and maximum quantity, setup charge and whether it is one-time or per additional location, whether the first imprint is included in the unit price, extra-color and extra-location run charges, imprint locations with their sizes and color limits, and guidance on when to use the method.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "product": { "description": "Identify the product by exactly one of slug, id or sku.", "properties": { "id": { "description": "The catalog product id, as returned by search_catalog.", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "sku": { "description": "The Promotion Pros SKU shown on the product page.", "minLength": 1, "type": "string" }, "slug": { "description": "The product page path, e.g. \"blue-ceramic-mug-11oz\" — from a search result's handle or a promotionpros.com URL.", "minLength": 1, "type": "string" } }, "type": "object" } }, "required": [ "product" ], "type": "object" }, "name": "get_imprint_options", "outputSchema": null }, { "description": "The full UCP product record: description, images, categories, colors, sizes, decoration methods, price range, minimum quantity, lead time, and whether a free sample is offered. For a price at a specific quantity, call quote_price.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "product": { "description": "Identify the product by exactly one of slug, id or sku.", "properties": { "id": { "description": "The catalog product id, as returned by search_catalog.", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "sku": { "description": "The Promotion Pros SKU shown on the product page.", "minLength": 1, "type": "string" }, "slug": { "description": "The product page path, e.g. \"blue-ceramic-mug-11oz\" — from a search result's handle or a promotionpros.com URL.", "minLength": 1, "type": "string" } }, "type": "object" } }, "required": [ "product" ], "type": "object" }, "name": "get_product", "outputSchema": null }, { "description": "The choices before a quote: colors (with hex), sizes with their quantity price ladders, whether sizes are priced differently, quantity step, stock by color and size when tracked, free shipping, lead time and rush availability, and the free-sample link when the product qualifies.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "product": { "description": "Identify the product by exactly one of slug, id or sku.", "properties": { "id": { "description": "The catalog product id, as returned by search_catalog.", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "sku": { "description": "The Promotion Pros SKU shown on the product page.", "minLength": 1, "type": "string" }, "slug": { "description": "The product page path, e.g. \"blue-ceramic-mug-11oz\" — from a search result's handle or a promotionpros.com URL.", "minLength": 1, "type": "string" } }, "type": "object" } }, "required": [ "product" ], "type": "object" }, "name": "get_product_options", "outputSchema": null }, { "description": "Full UCP product records for up to 6 products by id or handle, in one call. Use get_product for one.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "ids": { "description": "Product ids or handles (slugs).", "items": { "minLength": 1, "type": "string" }, "maxItems": 6, "minItems": 1, "type": "array" } }, "required": [ "ids" ], "type": "object" }, "name": "lookup_catalog", "outputSchema": null }, { "description": "Price an order of a given quantity: per-unit price at that quantity, one-time setup, run charges, rush and tariff, the subtotal (before shipping and tax), whether the quantity is orderable, the next price break, and a deep_link that opens promotionpros.com on exactly this configuration with the same total. Optionally choose color, decoration method, number of imprint colors, per-size quantities and rush.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "color": { "description": "Product color name, from get_product_options.", "maxLength": 60, "type": "string" }, "imprint_colors": { "description": "Number of ink colors in the logo on the primary location.", "maximum": 12, "minimum": 1, "type": "integer" }, "imprint_method": { "description": "Decoration method name, from get_imprint_options.", "maxLength": 80, "type": "string" }, "product": { "description": "Identify the product by exactly one of slug, id or sku.", "properties": { "id": { "description": "The catalog product id, as returned by search_catalog.", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "sku": { "description": "The Promotion Pros SKU shown on the product page.", "minLength": 1, "type": "string" }, "slug": { "description": "The product page path, e.g. \"blue-ceramic-mug-11oz\" — from a search result's handle or a promotionpros.com URL.", "minLength": 1, "type": "string" } }, "type": "object" }, "quantity": { "description": "Total pieces.", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "rush": { "type": "boolean" }, "sizes": { "description": "Per-size quantities for apparel; replaces quantity.", "items": { "properties": { "quantity": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "size": { "minLength": 1, "type": "string" } }, "required": [ "size", "quantity" ], "type": "object" }, "maxItems": 20, "type": "array" } }, "required": [ "product" ], "type": "object" }, "name": "quote_price", "outputSchema": null }, { "description": "Find custom branded merchandise by keywords (e.g. \"insulated tumbler\", \"trade show tote bag\", \"eco pen\") with optional category, color, size and price filters. Returns product summaries with a from-price and the handle to pass to get_product or quote_price. Results are ranked by relevance unless sorted by price. Omit `query` to browse: with a `category` and no keywords this returns that category, which is how to answer an occasion or gifting ask. When nothing matches, facets.categories lists the categories worth browsing instead and `notes` says so.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "category": { "description": "A category name from a previous result's facets, e.g. \"Drinkware\", \"2026 Gift Guide\".", "maxLength": 100, "type": "string" }, "color": { "maxLength": 60, "type": "string" }, "page": { "description": "Zero-based page.", "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "page_size": { "maximum": 24, "minimum": 1, "type": "integer" }, "price_max": { "description": "Maximum from-price per unit, USD.", "exclusiveMinimum": 0, "type": "number" }, "price_min": { "description": "Minimum from-price per unit, USD.", "minimum": 0, "type": "number" }, "query": { "description": "Keywords, a product name, or a SKU. Omit to browse everything the other filters allow.", "maxLength": 200, "type": "string" }, "size": { "maxLength": 40, "type": "string" }, "sort": { "enum": [ "relevance", "price_asc", "price_desc" ], "type": "string" } }, "type": "object" }, "name": "search_catalog", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:2e922ec53b034ca7920d73c3040b38130dd3e554f5124e29ff41e4857f7ab73b | sha256sum