Server definition
- Hash
- sha256:71b15c45bc7766d7a1b80a00637824e8246e56160b337d5ed1628ecadac646e7
- What it is
- What a remote MCP server returned when asked what it offers: 2 tools
The blob, as servednamed by its sha256
{
"instructions": "Skybridge is a winter-sports shop: skis, goggles, and cold-weather apparel. Two phases:\n\nSEARCH: Call search-products (at least 1) before presenting. Vary the keyword or scope with a category (apparel, goggles, skis) when the user narrows. Stay silent while searching: emit NO text between calls. Speak only once the carousel renders.\n\nRENDER: After curating, call render-carousel with the chosen product IDs (aim for 2-3). Speak once it renders, then recommend products in carousel order.",
"tools": [
{
"description": "Display the Skybridge products you curated as an inline carousel for the client.\n\n## When to call\nCall this AFTER searching and curating, and BEFORE writing your recommendation. Avoid describing the products in text first since the carousel shows them.\n\n## What to pass\nPass the IDs of the 2-3 products you chose, in display order (most relevant first). Order is significant: the carousel shows them in this exact order and your recommendation must follow the same sequence. Pass distinct products, not several variants of the same one; the detail view lets the client explore a product's variants (colors, sizes, and so on).\n\n## After the carousel\nRecommend in carousel order so the client can follow along. The cards already show image, title, price, and key facts, so do not repeat them: add useful analysis tied to the client's need. Suggest a refinement the client has not addressed yet (from the available filters), never one they already used.\n\n## Accuracy\nUse only the data returned for each product. Never invent facts, materials, or availability. If the client asks about something not present, open that product's detail or search again before answering.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"ids": {
"description": "Product IDs to present, in display order.",
"items": {
"type": "string"
},
"maxItems": 3,
"minItems": 1,
"type": "array"
}
},
"required": [
"ids"
],
"type": "object"
},
"name": "render-carousel",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"products": {
"description": "The products shown in the carousel, in display order. For your reference only — to curate, compare, and answer follow-ups. Ground every claim in this data; never invent facts.",
"items": {
"additionalProperties": false,
"properties": {
"badges": {
"description": "e.g. \"Bestseller\".",
"items": {
"type": "string"
},
"type": "array"
},
"description": {
"type": "string"
},
"id": {
"description": "Product ID.",
"type": "string"
},
"options": {
"description": "Variations available (e.g. colors, sizes).",
"items": {
"additionalProperties": false,
"properties": {
"label": {
"type": "string"
},
"values": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"label",
"values"
],
"type": "object"
},
"type": "array"
},
"price": {
"additionalProperties": false,
"description": "\"From\" price (cheapest variant).",
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string"
}
},
"required": [
"amount",
"currency"
],
"type": "object"
},
"rating": {
"description": "Average review rating, 0–5.",
"type": "number"
},
"reviewCount": {
"type": "number"
},
"specs": {
"description": "Product-specific facts (material, dimensions, care…).",
"items": {
"additionalProperties": false,
"properties": {
"label": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"title": {
"type": "string"
}
},
"required": [
"id",
"title",
"options",
"specs"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"products"
],
"type": "object"
}
},
{
"description": "Search the Skybridge winter-sports catalog: skis, goggles, and cold-weather apparel. Handles any query: a specific product, a category, a gift, or open browsing. Never assume something is unavailable — always search before responding.\n\nThe response is data only: matching products (title, ID, \"from\" price, rating, badges, description, facts). The raw results are for your eyes only; the client never sees them. Avoid characterizing the raw results to the client (how many, what categories).\n\nAct on the response as follows:\n\n- SEARCH: pass a keyword. Optionally scope with `category` (apparel, goggles, or skis) or `sort`. This is a small catalog — one focused search usually surfaces everything relevant (1+ calls).\n- REFINEMENT: if the user narrows to a category, re-search with that `category`. If they change intent, search with a new keyword.\n- CURATION: pick the best matches for the client's intent, grounding your choice in each product's description. If zero results, broaden the keyword and search again; do NOT call render-carousel on an empty set.\n- PRESENT: once you have 2-3 distinct, relevant products, call render-carousel with their IDs. Recommend products ONLY AFTER the carousel displays, and in the same order as in the carousel.\n\nThe sweet spot is 2-3 products.\n",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"category": {
"description": "Restrict to one category. Only these three exist; omit to search all.",
"enum": [
"apparel",
"goggles",
"skis"
],
"type": "string"
},
"keyword": {
"description": "Short noun phrases extracted from conversational input, matched against product titles, descriptions, and SKUs. Never pass full sentences. Include color or material descriptors when the user mentions them (e.g. \"cyan skis\", \"fur hat\"). This is a small winter-sports catalog: skis, goggles, and cold-weather apparel. For vague or broad requests use a plain category term.",
"type": "string"
},
"sort": {
"description": "Sort order. Price sorts are applied over the fetched results.",
"enum": [
"price-asc",
"price-desc",
"newest",
"name"
],
"type": "string"
}
},
"required": [
"keyword"
],
"type": "object"
},
"name": "search-products",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"pages": {
"additionalProperties": false,
"description": "Pagination: current page and total page count.",
"properties": {
"current": {
"type": "number"
},
"total": {
"type": "number"
}
},
"required": [
"current",
"total"
],
"type": "object"
},
"products": {
"description": "Matching products, sorted.",
"items": {
"additionalProperties": false,
"properties": {
"badges": {
"description": "Display badges, e.g. \"New\", \"Bestseller\".",
"items": {
"type": "string"
},
"type": "array"
},
"category": {
"description": "apparel, goggles, or skis.",
"type": "string"
},
"description": {
"type": "string"
},
"id": {
"description": "Stable product ID; pass to render-carousel.",
"type": "string"
},
"price": {
"additionalProperties": false,
"description": "\"From\" price (cheapest variant).",
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string"
}
},
"required": [
"amount",
"currency"
],
"type": "object"
},
"rating": {
"description": "Average review rating, 0–5.",
"type": "number"
},
"reviewCount": {
"type": "number"
},
"specs": {
"description": "Product-specific facts to curate on (material, dimensions…).",
"items": {
"additionalProperties": false,
"properties": {
"label": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"title": {
"type": "string"
}
},
"required": [
"id",
"title",
"specs"
],
"type": "object"
},
"type": "array"
},
"totalHits": {
"description": "Total matching products across all pages.",
"type": "number"
}
},
"required": [
"products"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:71b15c45bc7766d7a1b80a00637824e8246e56160b337d5ed1628ecadac646e7 | sha256sum