Skybridge Ecommerce Example
Example MCP App based on Skybridge framework showing an e-commerce products based on request
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (2)
- LOWin search-products
- LOWin render-carousel
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"ecom-carousel": {
"url": "https://ecommerce.skybridge.tech"
}
}
}Remote-Endpunkte
https://ecommerce.skybridge.techstreamable-httphttps://ecommerce.skybridge.techsseWas es kann
Tool-Inventar
Tools (2)
🟢search-products(keyword, sort, category)
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. The 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). Act on the response as follows: - 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). - REFINEMENT: if the user narrows to a category, re-search with that `category`. If they change intent, search with a new keyword. - 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. - 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. The sweet spot is 2-3 products.
Eingabe-Schema
{
"type": "object",
"properties": {
"keyword": {
"type": "string",
"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."
},
"sort": {
"description": "Sort order. Price sorts are applied over the fetched results.",
"type": "string",
"enum": [
"price-asc",
"price-desc",
"newest",
"name"
]
},
"category": {
"description": "Restrict to one category. Only these three exist; omit to search all.",
"type": "string",
"enum": [
"apparel",
"goggles",
"skis"
]
}
},
"required": [
"keyword"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"products": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Stable product ID; pass to render-carousel."
},
"title": {
"type": "string"
},
"category": {
"description": "apparel, goggles, or skis.",
"type": "string"
},
"description": {
"type": "string"
},
"price": {
"description": "\"From\" price (cheapest variant).",
"type": "object",
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string"
}
},
"required": [
"amount",
"currency"
],
"additionalProperties": false
},
"rating": {
"description": "Average review rating, 0–5.",
"type": "number"
},
"reviewCount": {
"type": "number"
},
"badges": {
"description": "Display badges, e.g. \"New\", \"Bestseller\".",
"type": "array",
"items": {
"type": "string"
}
},
"specs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value"
],
"additionalProperties": false
},
"description": "Product-specific facts to curate on (material, dimensions…)."
}
},
"required": [
"id",
"title",
"specs"
],
"additionalProperties": false
},
"description": "Matching products, sorted."
},
"pages": {
"description": "Pagination: current page and total page count.",
"type": "object",
"properties": {
"current": {
"type": "number"
},
"total": {
"type": "number"
}
},
"required": [
"current",
"total"
],
"additionalProperties": false
},
"totalHits": {
"description": "Total matching products across all pages.",
"type": "number"
}
},
"required": [
"products"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢render-carousel(ids)
Display the Skybridge products you curated as an inline carousel for the client. ## When to call Call this AFTER searching and curating, and BEFORE writing your recommendation. Avoid describing the products in text first since the carousel shows them. ## What to pass Pass 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). ## After the carousel Recommend 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. ## Accuracy Use 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.
Eingabe-Schema
{
"type": "object",
"properties": {
"ids": {
"minItems": 1,
"maxItems": 3,
"type": "array",
"items": {
"type": "string"
},
"description": "Product IDs to present, in display order."
}
},
"required": [
"ids"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"products": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Product ID."
},
"title": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"label",
"values"
],
"additionalProperties": false
},
"description": "Variations available (e.g. colors, sizes)."
},
"description": {
"type": "string"
},
"price": {
"description": "\"From\" price (cheapest variant).",
"type": "object",
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string"
}
},
"required": [
"amount",
"currency"
],
"additionalProperties": false
},
"rating": {
"description": "Average review rating, 0–5.",
"type": "number"
},
"reviewCount": {
"type": "number"
},
"badges": {
"description": "e.g. \"Bestseller\".",
"type": "array",
"items": {
"type": "string"
}
},
"specs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value"
],
"additionalProperties": false
},
"description": "Product-specific facts (material, dimensions, care…)."
}
},
"required": [
"id",
"title",
"options",
"specs"
],
"additionalProperties": false
},
"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."
}
},
"required": [
"products"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Empfohlene Prompts
search-productssearch-productsCommunity
Nachweis