Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,534Letters: 13Defects: 1,322counted 4 min ago
teppi

Server definition

Hash
sha256:2166620e69e61acd84f892071b8230ebabfa5f050b5a2b10ca3d344713050127
What it is
What a remote MCP server returned when asked what it offers: 5 tools

The blob, as servednamed by its sha256

{ "instructions": "Dinilu Print+Promo — B2B custom-printed promotional products.\n\nThis endpoint is bound to ONE domain and language: dinilu.us, language \"en-US\", prices in USD, sold from China.\nOther domains and languages are separate endpoints (e.g. https://dinilu.us/en/mcp).\nDo not translate prices or assume another currency.\n\nWorkflow: search_products -> get_product (read the attribute and option ids)\n-> get_quote (pass those ids in \"attributes\").\n\nEvery quote is indicative and excludes VAT and shipping; \"binding\" is always false.\nMinimum order quantities apply and quantities below the MOQ are raised silently,\nso ALWAYS read the \"warnings\" array before repeating a price to anyone. An\nattribute you do not supply is filled with the product default and reported as\nan attribute_defaulted warning — a default can be wrong for the customer at a\nprice that is right.\n\nTo turn a quote into a real quotation, give the customer the \"cart_url\" from the\nquote result. They complete checkout and enter their own company details. Never\ncollect a customer's address, VAT number or contact details yourself, and never\nappend them to a URL.", "tools": [ { "description": "Compatibility fetch for research clients that require a tool named \"fetch\". Returns one product as readable text. It carries NO price: prices depend on quantity and options and come from get_quote.", "inputSchema": { "additionalProperties": false, "properties": { "id": { "description": "The id returned by search (the product mpn, as a string).", "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "fetch", "outputSchema": { "properties": { "content": { "type": "string" }, "id": { "type": "string" }, "metadata": { "type": "object" }, "text": { "type": "string" }, "title": { "type": "string" }, "url": { "type": "string" } }, "required": [ "id", "title", "text", "url" ], "type": "object" } }, { "description": "Get a product's configurable attributes and their options, plus its minimum order quantity and quantity step. Call this before get_quote: the attribute and option ids it returns are what get_quote expects.", "inputSchema": { "additionalProperties": false, "properties": { "mpn": { "description": "Product MPN, from search_products or from the mpn field in a product page's JSON-LD.", "type": "integer" } }, "required": [ "mpn" ], "type": "object" }, "name": "get_product", "outputSchema": null }, { "description": "Price a specific configuration and quantity, with production time and shipping options. Indicative, excludes VAT and shipping, never binding. Read the returned \"warnings\" before presenting the price.", "inputSchema": { "additionalProperties": false, "properties": { "attributes": { "additionalProperties": { "type": [ "integer", "string" ] }, "description": "Option selection as {\"<attribute id>\": <option id>}, e.g. {\"19\": 251, \"58\": 490}. Both ids come from get_product. Option NAMES are also accepted as values but must match exactly, including double spaces, and are translated per domain — prefer ids. Any attribute you omit is filled with the product default and reported in warnings.", "type": "object" }, "country": { "description": "Destination country for shipping rates. Accepts a name (\"Germany\"), ISO 3166-1 alpha-2 (\"DE\"), alpha-3 (\"DEU\") or numeric (\"276\"). Defaults to this domain's country.", "type": "string" }, "mpn": { "description": "Product MPN.", "type": "integer" }, "qty": { "description": "Quantity in PIECES. Below the product minimum it is raised to the MOQ and a qty_below_minimum warning is returned. Omitting it quotes the product default and warns — always pass the real target quantity, because price per piece changes substantially with volume.", "type": "integer" }, "zone": { "description": "Optional zone/state id, where shipping rates depend on it.", "type": "integer" } }, "required": [ "mpn" ], "type": "object" }, "name": "get_quote", "outputSchema": null }, { "description": "Compatibility search for research clients that require a tool named \"search\". Returns only id, title and URL. Prefer search_products, which also filters by category and returns the category of each hit.", "inputSchema": { "additionalProperties": false, "properties": { "query": { "description": "Free text matched against the product title.", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search", "outputSchema": { "properties": { "ids": { "items": { "type": "string" }, "type": "array" }, "results": { "items": { "properties": { "id": { "type": "string" }, "title": { "type": "string" }, "url": { "type": "string" } }, "required": [ "id", "title", "url" ], "type": "object" }, "type": "array" } }, "required": [ "results" ], "type": "object" } }, { "description": "Find products in this catalogue by free text and/or category. Returns mpn, title, page URL and category for each match. The mpn is what get_product and get_quote take.", "inputSchema": { "additionalProperties": false, "properties": { "category": { "description": "Taxonomy term id to filter by. Read the category tree from the dinilu://categories resource.", "type": "integer" }, "limit": { "description": "Maximum results to return. Default 50, maximum 200.", "type": "integer" }, "query": { "description": "Free text matched against the product title, case-insensitive. Omit to list everything (optionally narrowed by category).", "type": "string" } }, "type": "object" }, "name": "search_products", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:2166620e69e61acd84f892071b8230ebabfa5f050b5a2b10ca3d344713050127 | sha256sum