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

Server definition

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

The blob, as servednamed by its sha256

{ "instructions": "Ada Diamonds is a lab grown diamond jeweler: custom engagement rings, loose lab diamonds, wedding bands, and fine jewelry, made to order in New York City.\n\nPricing model: an engagement ring is a SETTING plus a LOOSE DIAMOND, priced separately. To quote a complete ring, call search_engagement_rings and search_diamonds and add them together. Setting prices never include the center stone.\n\nRead the ada://catalog/* resources once for inventory shape (available shapes, carat ranges, price bands) before running searches; it will save you several calls. Diamond inventory changes continuously, so re-check before quoting a specific stone.\n\nAll prices are US dollars. Everything except request_consultation is public and needs no credential.", "tools": [ { "description": "Assemble a cart and get a Stripe-hosted checkout URL the customer opens to pay; no card data passes through the agent. Item ids come from the search tools (`diamond:<report>`, `setting:<slug>`, `jewelry:<slug>`); a complete ring is one setting plus one diamond. Needs the shipping address (prices tax and shipping into the link). Expires after 24 hours. No credential needed. Without a production credential this tool runs in the sandbox: the link is simulated and no Stripe session is created. Pass `env: \"production\"` when the customer actually wants to buy — that returns a live, payable link.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "buyer_email": { "description": "Buyer email for the receipt; Stripe collects it on the payment page when omitted", "type": "string" }, "buyer_name": { "description": "Buyer full name", "type": "string" }, "context": { "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"", "type": "string" }, "conversation_id": { "description": "Echo the conversation_id from the server's previous response. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it.", "type": "string" }, "env": { "description": "sandbox returns a simulated link and creates no Stripe session; production mints a live, payable Stripe Checkout link. Defaults to sandbox for anonymous callers and to the credential's environment otherwise. A sandbox credential is always sandbox.", "enum": [ "production", "sandbox" ], "type": "string" }, "items": { "description": "Items to buy; a complete ring is one setting plus one diamond", "items": { "properties": { "id": { "description": "Catalog item id: `diamond:<report number>`, `setting:<slug>`, or `jewelry:<slug>` (from search_diamonds / search_engagement_rings / search_jewelry results)", "type": "string" }, "quantity": { "default": 1, "description": "Quantity, 1-10 (diamonds are always 1)", "maximum": 10, "minimum": 1, "type": "integer" } }, "required": [ "id" ], "type": "object" }, "minItems": 1, "type": "array" }, "llm_model": { "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.", "type": "string" }, "shipping_address": { "description": "Where the order ships; used to price tax and shipping into the link", "properties": { "city": { "description": "City", "type": "string" }, "country": { "description": "Two-letter country code, e.g. US", "type": "string" }, "line_one": { "description": "Street address, line 1", "type": "string" }, "line_two": { "description": "Street address, line 2", "type": "string" }, "name": { "description": "Recipient name", "type": "string" }, "phone_number": { "description": "Recipient phone number", "type": "string" }, "postal_code": { "description": "Postal code", "type": "string" }, "state": { "description": "State or region code, e.g. NY", "type": "string" } }, "required": [ "line_one", "city", "state", "postal_code", "country" ], "type": "object" } }, "required": [ "items", "shipping_address", "context", "llm_model" ], "type": "object" }, "name": "create_checkout_link", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "expires_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ISO timestamp the link stops working" }, "message": { "description": "Human-readable outcome, including the link when ready", "type": "string" }, "problems": { "description": "What blocks the link when status is needs_input", "items": { "type": "string" }, "type": "array" }, "sandbox": { "description": "True when the link is simulated (sandbox): nothing is payable and no Stripe session was created. False means the link is live and payable.", "type": "boolean" }, "shipping_usd": { "description": "Shipping in US dollars (0 = free insured FedEx)", "type": "number" }, "status": { "description": "ready when a payable link was created; needs_input lists what is missing", "enum": [ "ready", "needs_input", "failed" ], "type": "string" }, "subtotal_usd": { "description": "Items subtotal in US dollars", "type": "number" }, "tax_usd": { "description": "Sales tax in US dollars for the given address", "type": "number" }, "total_usd": { "description": "Total the buyer pays in US dollars", "type": "number" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The Stripe-hosted checkout URL, when ready" } }, "required": [ "status", "url", "expires_at", "sandbox", "subtotal_usd", "shipping_usd", "tax_usd", "total_usd", "problems", "message" ], "type": "object" } }, { "description": "Contact details, showroom address and hours, how consultations work, and what Ada Diamonds sells. Use this to answer questions about the business rather than about a product.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "context": { "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"", "type": "string" }, "conversation_id": { "description": "Echo the conversation_id from the server's previous response. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it.", "type": "string" }, "llm_model": { "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.", "type": "string" }, "section": { "default": "all", "description": "Which part to return as text: contact (phone, email, hours, website), showrooms (addresses and hours), consultations (how remote and in-person consultations work), or all (default). The structured result always carries every section.", "enum": [ "all", "contact", "showrooms", "consultations" ], "type": "string" } }, "required": [ "context", "llm_model" ], "type": "object" }, "name": "get_company_info", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "description": { "description": "What Ada Diamonds sells and how it works", "type": "string" }, "email": { "description": "Customer email address", "type": "string" }, "hours": { "description": "Business hours", "type": "string" }, "inquiryUrl": { "description": "Page where a customer starts a consultation", "type": "string" }, "name": { "description": "Legal company name", "type": "string" }, "phone": { "description": "Main phone number", "type": "string" }, "showrooms": { "description": "Physical showrooms", "items": { "additionalProperties": false, "properties": { "addressLocality": { "description": "City", "type": "string" }, "addressRegion": { "description": "State", "type": "string" }, "appointmentRequired": { "description": "Whether visits are by appointment", "type": "boolean" }, "hours": { "description": "Showroom hours", "type": "string" }, "name": { "description": "Showroom name", "type": "string" }, "postalCode": { "description": "ZIP code", "type": "string" }, "streetAddress": { "description": "Street address", "type": "string" }, "telephone": { "description": "Showroom phone number", "type": "string" } }, "required": [ "name", "streetAddress", "addressLocality", "addressRegion", "postalCode", "telephone", "hours", "appointmentRequired" ], "type": "object" }, "type": "array" }, "website": { "description": "Website URL", "type": "string" } }, "required": [ "name", "description", "phone", "email", "hours", "website", "inquiryUrl", "showrooms" ], "type": "object" } }, { "description": "Fetch the full markdown text of one Ada Diamonds knowledge base article by slug. Use search_knowledge_base first if you don't know the slug.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "context": { "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"", "type": "string" }, "conversation_id": { "description": "Echo the conversation_id from the server's previous response. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it.", "type": "string" }, "llm_model": { "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.", "type": "string" }, "slug": { "description": "Article slug from search_knowledge_base, e.g. \"cvd-lab-diamonds\" or \"lab-diamond-shapes-guide\"", "type": "string" } }, "required": [ "slug", "context", "llm_model" ], "type": "object" }, "name": "read_article", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "excerpt": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "One-paragraph summary, when published" }, "found": { "description": "False when no article has that slug", "type": "boolean" }, "markdown": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The full article body as markdown, when found" }, "slug": { "description": "The slug that was requested", "type": "string" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Article title, when found" }, "url": { "description": "Article page URL", "type": "string" } }, "required": [ "found", "slug", "title", "excerpt", "url", "markdown" ], "type": "object" } }, { "description": "Submit a consultation request on the customer's behalf. Requires the `appointments:write` scope, which the customer grants through Ada's OAuth authorization flow — this tool cannot be used without their explicit approval.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "budget_usd": { "description": "Approximate budget in US dollars", "type": "number" }, "context": { "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"", "type": "string" }, "conversation_id": { "description": "Echo the conversation_id from the server's previous response. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it.", "type": "string" }, "email": { "description": "Customer's email address; the jeweler replies here", "type": "string" }, "llm_model": { "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.", "type": "string" }, "message": { "description": "What the customer is looking for, in their words", "type": "string" }, "name": { "description": "Customer's name", "type": "string" }, "phone": { "description": "Customer's phone number, if they want a call", "type": "string" }, "product_url": { "description": "URL of a specific diamond, setting, or piece they are interested in", "type": "string" }, "topic": { "description": "What the consultation is about", "enum": [ "engagement_ring", "loose_diamond", "wedding_band", "fine_jewelry", "custom_design", "other" ], "type": "string" } }, "required": [ "email", "context", "llm_model" ], "type": "object" }, "name": "request_consultation", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The customer email the request was filed under" }, "message": { "description": "Human-readable outcome, including what to do next", "type": "string" }, "reference": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Request reference, when received" }, "sandbox": { "description": "True when a sandbox credential was used: nothing was created and nobody was contacted", "type": "boolean" }, "status": { "description": "received when a request was recorded; otherwise why it was not", "enum": [ "received", "not_authorized", "invalid", "failed" ], "type": "string" } }, "required": [ "status", "reference", "email", "sandbox", "message" ], "type": "object" } }, { "description": "Search Ada Diamonds' live loose lab grown diamond inventory by shape, carat weight, price, color, clarity, and cut. Returns currently available stones with their grading report numbers and product URLs. Use this for any question about what diamond a budget can buy. MCP Apps-enabled: hosts that support MCP Apps render the results as an interactive card grid.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "clarity": { "description": "Clarity grade: FL, IF, VVS1, VVS2, VS1, VS2, SI1, or SI2", "type": "string" }, "color": { "description": "Color grade, D (colorless) through K", "type": "string" }, "context": { "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"", "type": "string" }, "conversation_id": { "description": "Echo the conversation_id from the server's previous response. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it.", "type": "string" }, "cut": { "description": "Cut grade: Ideal, Excellent, or Very Good", "type": "string" }, "limit": { "default": 10, "description": "Maximum number of results to return, 1 to 50 (default 10)", "maximum": 50, "minimum": 1, "type": "number" }, "llm_model": { "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.", "type": "string" }, "max_carat": { "description": "Maximum carat weight, e.g. 2", "type": "number" }, "max_price": { "description": "Maximum price of the loose stone in US dollars", "type": "number" }, "min_carat": { "description": "Minimum carat weight, e.g. 1 or 1.5", "type": "number" }, "min_price": { "description": "Minimum price of the loose stone in US dollars", "type": "number" }, "shape": { "description": "Cut shape: Round, Oval, Cushion, Emerald, Pear, Radiant, Asscher, Princess, or Marquise", "type": "string" }, "sort": { "description": "Result order: price_asc (default relevance), price_desc, carat_asc, or carat_desc", "enum": [ "price_asc", "price_desc", "carat_asc", "carat_desc" ], "type": "string" } }, "required": [ "context", "llm_model" ], "type": "object" }, "name": "search_diamonds", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "browseUrl": { "description": "Web page listing the full catalog for this search", "type": "string" }, "items": { "description": "The matching entries, best match first", "items": { "additionalProperties": false, "properties": { "carat": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Carat weight" }, "certificate": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Grading report number at that laboratory" }, "clarity": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Clarity grade, FL through SI2" }, "color": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Color grade, D through K" }, "cut": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Cut grade, e.g. Ideal" }, "id": { "description": "Ada Diamonds stock id", "type": "string" }, "lab": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Grading laboratory, IGI or GIA" }, "measurements": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Length x width x depth in millimetres" }, "name": { "description": "Display name, e.g. \"1.52 ct Oval, F, VS1\"", "type": "string" }, "price": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Price of the loose stone in US dollars; null when priced on request" }, "shape": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Cut shape, e.g. Oval" }, "url": { "description": "Product page URL", "type": "string" } }, "required": [ "id", "name", "url", "price", "carat", "shape", "color", "clarity", "cut", "lab", "certificate", "measurements" ], "type": "object" }, "type": "array" }, "kind": { "const": "diamonds", "description": "Which catalog the results come from", "type": "string" }, "query": { "additionalProperties": {}, "description": "The filters that were applied (only the ones you sent)", "propertyNames": { "type": "string" }, "type": "object" }, "shown": { "description": "How many entries are in `items`", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "total": { "description": "How many catalog entries matched before the limit", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" } }, "required": [ "kind", "query", "total", "shown", "browseUrl", "items" ], "type": "object" } }, { "description": "Search Ada Diamonds' engagement ring settings by center-stone shape, style, and setting price. Setting prices exclude the center diamond — pair with search_diamonds to quote a complete ring. MCP Apps-enabled: hosts that support MCP Apps render the results as an interactive card grid.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "context": { "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"", "type": "string" }, "conversation_id": { "description": "Echo the conversation_id from the server's previous response. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it.", "type": "string" }, "limit": { "default": 10, "description": "Maximum number of results to return, 1 to 50 (default 10)", "maximum": 50, "minimum": 1, "type": "number" }, "llm_model": { "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.", "type": "string" }, "max_price": { "description": "Maximum setting price in US dollars, excluding the center diamond", "type": "number" }, "min_price": { "description": "Minimum setting price in US dollars, excluding the center diamond", "type": "number" }, "q": { "description": "Free-text match on the setting name", "type": "string" }, "shape": { "description": "Center-stone shape the setting must accommodate, e.g. Oval", "type": "string" }, "style": { "description": "Design style, e.g. Petite Four Prong, Trellis, Bezel", "type": "string" }, "type": { "description": "Setting type, e.g. Solitaire, Halo, Three Stone", "type": "string" } }, "required": [ "context", "llm_model" ], "type": "object" }, "name": "search_engagement_rings", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "browseUrl": { "description": "Web page listing the full catalog for this search", "type": "string" }, "items": { "description": "The matching entries, best match first", "items": { "additionalProperties": false, "properties": { "image": { "anyOf": [ { "additionalProperties": false, "properties": { "alt": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Alt text, when the catalog has one" }, "url": { "description": "Image URL on the Ada Diamonds CDN", "type": "string" } }, "required": [ "url", "alt" ], "type": "object" }, { "type": "null" } ], "description": "Primary product image, or null when none is published" }, "platinumUpcharge": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Additional cost to make the setting in platinum in US dollars; null when priced on request" }, "priceFrom": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Starting price of the setting alone, excluding the center diamond in US dollars; null when priced on request" }, "shapes": { "description": "Center-stone shapes the setting accommodates", "items": { "type": "string" }, "type": "array" }, "sku": { "description": "Setting SKU, e.g. AD-066", "type": "string" }, "style": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Design style, e.g. Petite Four Prong" }, "title": { "description": "Setting name", "type": "string" }, "type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Setting type, e.g. Solitaire, Halo, Three Stone" }, "url": { "description": "Product page URL", "type": "string" } }, "required": [ "sku", "title", "url", "shapes", "style", "type", "priceFrom", "platinumUpcharge", "image" ], "type": "object" }, "type": "array" }, "kind": { "const": "engagement-rings", "description": "Which catalog the results come from", "type": "string" }, "query": { "additionalProperties": {}, "description": "The filters that were applied (only the ones you sent)", "propertyNames": { "type": "string" }, "type": "object" }, "shown": { "description": "How many entries are in `items`", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "total": { "description": "How many catalog entries matched before the limit", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" } }, "required": [ "kind", "query", "total", "shown", "browseUrl", "items" ], "type": "object" } }, { "description": "Search Ada Diamonds' fine jewelry — wedding bands, earrings, necklaces, bracelets, and fashion rings — by category, type, diamond shape, and price. MCP Apps-enabled: hosts that support MCP Apps render the results as an interactive card grid.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "category": { "description": "Category: Bridal or Fashion", "type": "string" }, "context": { "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"", "type": "string" }, "conversation_id": { "description": "Echo the conversation_id from the server's previous response. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it.", "type": "string" }, "limit": { "default": 10, "description": "Maximum number of results to return, 1 to 50 (default 10)", "maximum": 50, "minimum": 1, "type": "number" }, "llm_model": { "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.", "type": "string" }, "max_price": { "description": "Maximum price in US dollars", "type": "number" }, "min_price": { "description": "Minimum price in US dollars", "type": "number" }, "q": { "description": "Free-text match on the product name", "type": "string" }, "shape": { "description": "Diamond shape used in the piece, e.g. Round", "type": "string" }, "type": { "description": "Type, e.g. Wedding Bands, Earrings, Necklaces, Bracelets, Rings", "type": "string" } }, "required": [ "context", "llm_model" ], "type": "object" }, "name": "search_jewelry", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "browseUrl": { "description": "Web page listing the full catalog for this search", "type": "string" }, "items": { "description": "The matching entries, best match first", "items": { "additionalProperties": false, "properties": { "category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Category, e.g. Bridal or Fashion" }, "image": { "anyOf": [ { "additionalProperties": false, "properties": { "alt": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Alt text, when the catalog has one" }, "url": { "description": "Image URL on the Ada Diamonds CDN", "type": "string" } }, "required": [ "url", "alt" ], "type": "object" }, { "type": "null" } ], "description": "Primary product image, or null when none is published" }, "priceFrom": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Lowest price across the piece's options in US dollars; null when priced on request" }, "priceMax": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Highest price across the piece's options; null when there is one price in US dollars; null when priced on request" }, "shapes": { "description": "Diamond shapes used in the piece", "items": { "type": "string" }, "type": "array" }, "sku": { "description": "Product SKU", "type": "string" }, "title": { "description": "Product name", "type": "string" }, "type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Type, e.g. Wedding Bands, Earrings, Necklaces" }, "url": { "description": "Product page URL", "type": "string" } }, "required": [ "sku", "title", "url", "category", "type", "shapes", "priceFrom", "priceMax", "image" ], "type": "object" }, "type": "array" }, "kind": { "const": "jewelry", "description": "Which catalog the results come from", "type": "string" }, "query": { "additionalProperties": {}, "description": "The filters that were applied (only the ones you sent)", "propertyNames": { "type": "string" }, "type": "object" }, "shown": { "description": "How many entries are in `items`", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "total": { "description": "How many catalog entries matched before the limit", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" } }, "required": [ "kind", "query", "total", "shown", "browseUrl", "items" ], "type": "object" } }, { "description": "Search Ada Diamonds' published guides on lab grown diamonds — the 4Cs, CVD vs HPHT growth, shape guides, certification, and buying advice. Returns article summaries and markdown URLs. Use read_article to get an article's full text.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "context": { "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"", "type": "string" }, "conversation_id": { "description": "Echo the conversation_id from the server's previous response. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it.", "type": "string" }, "limit": { "default": 8, "description": "Maximum number of results to return, 1 to 25 (default 8)", "maximum": 25, "minimum": 1, "type": "number" }, "llm_model": { "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.", "type": "string" }, "query": { "description": "Topic to search for, matched against article titles, summaries, and slugs", "type": "string" } }, "required": [ "query", "context", "llm_model" ], "type": "object" }, "name": "search_knowledge_base", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "browseUrl": { "description": "Web page listing every guide", "type": "string" }, "items": { "description": "Matching articles", "items": { "additionalProperties": false, "properties": { "excerpt": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "One-paragraph summary, when published" }, "slug": { "description": "Article slug; pass it to read_article", "type": "string" }, "title": { "description": "Article title", "type": "string" }, "url": { "description": "Article page URL; append .md for markdown", "type": "string" } }, "required": [ "slug", "title", "excerpt", "url" ], "type": "object" }, "type": "array" }, "kind": { "const": "articles", "description": "Always \"articles\"", "type": "string" }, "query": { "description": "The search terms that were used", "type": "string" }, "total": { "description": "How many articles are in `items`", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" } }, "required": [ "kind", "query", "total", "browseUrl", "items" ], "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:9b1e23d42382dfc75e2986133b7c0dcf05f5e1647cbefdf68adda42d0a12eb5e | sha256sum