Vintage Postcard
Affiches vintage : catalogue, devis livraison comprise et paiement Stripe.
使うべきか
品質と安全性
検出事項(4)
- LOWquote_cart 内
- LOWstart_order 内
- LOWget_order_status 内
- LOWrequest_custom_poster 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"boutique": {
"url": "https://vintage-postcard.fr/mcp"
}
}
}リモートエンドポイント
https://vintage-postcard.fr/mcpstreamable-httpできること
ツール一覧
ツール(10)
🟢search_postcards(collection, country, limit, max_price, min_price, ...)
Recherche dans tout le catalogue d'affiches vintage par mot-clé (ville, pays, région, thème), collection et filtres de prix. Renvoie les affiches avec prix, promo, image et URL de la page produit.
入力スキーマ
{
"type": "object",
"properties": {
"collection": {
"description": "Filtre collection exact : « Destinations » (affiches de villes) ou « Vintage »",
"type": "string"
},
"country": {
"description": "Filtre pays exact, ex. « Portugal »",
"type": "string"
},
"limit": {
"default": 12,
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"max_price": {
"description": "Prix maximum en euros",
"type": "number"
},
"min_price": {
"description": "Prix minimum en euros",
"type": "number"
},
"offset": {
"default": 0,
"minimum": 0,
"type": "integer"
},
"query": {
"description": "Mot-clé : ville, pays, paysage… ex. « Lisbonne », « île »",
"type": "string"
},
"region": {
"description": "Filtre région exact",
"type": "string"
},
"sort": {
"default": "relevance",
"enum": [
"relevance",
"price_asc",
"price_desc",
"name"
],
"type": "string"
}
},
"additionalProperties": false
}🟢get_postcard(name, product_id)
Fiche complète d'une affiche : description, prix, prix barré, formats, option cadre, image, frais de port et affiches similaires. Accepte un identifiant ou un nom de ville.
入力スキーマ
{
"type": "object",
"properties": {
"name": {
"description": "Nom de la ville / du lieu",
"type": "string"
},
"product_id": {
"description": "Identifiant de l'affiche",
"type": "integer"
}
},
"additionalProperties": false,
"anyOf": [
{
"required": [
"product_id"
]
},
{
"required": [
"name"
]
}
]
}🟢list_destinations
Toutes les destinations du catalogue, groupées par pays avec le nombre d'affiches et quelques exemples.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢get_catalog_overview
Chiffres clés de la boutique : nombre d'affiches, pays couverts, fourchette de prix, formats, prix du cadre, règles de livraison.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢quote_cart(items)
Devis exact d'un panier : sous-total, option cadre, frais de livraison (offerts dès 30 €) et total. À utiliser avant d'annoncer un prix au client.
入力スキーマ
{
"type": "object",
"properties": {
"items": {
"items": {
"additionalProperties": false,
"properties": {
"product_id": {
"type": "integer"
},
"quantity": {
"default": 1,
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"size": {
"default": "A4",
"enum": [
"A5",
"A4",
"A3"
],
"type": "string"
},
"with_frame": {
"default": false,
"type": "boolean"
}
},
"required": [
"product_id"
],
"type": "object"
},
"minItems": 1,
"type": "array"
}
},
"required": [
"items"
],
"additionalProperties": false
}⚪start_order(email, first_name, items, last_name, shipping_address)
Crée une session de commande pour le client (panier + email + adresse de livraison optionnelle) et renvoie son identifiant, à utiliser ensuite avec `pay_order`. Aucun paiement n'est déclenché à cette étape.
入力スキーマ
{
"type": "object",
"properties": {
"email": {
"description": "Email du client (confirmation de commande)",
"type": "string"
},
"first_name": {
"type": "string"
},
"items": {
"items": {
"additionalProperties": false,
"properties": {
"product_id": {
"type": "integer"
},
"quantity": {
"default": 1,
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"size": {
"enum": [
"A5",
"A4",
"A3"
],
"type": "string"
},
"with_frame": {
"default": false,
"type": "boolean"
}
},
"required": [
"product_id"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"last_name": {
"type": "string"
},
"shipping_address": {
"additionalProperties": false,
"properties": {
"address": {
"type": "string"
},
"city": {
"type": "string"
},
"country": {
"default": "France",
"type": "string"
},
"zip_code": {
"type": "string"
}
},
"type": "object"
}
},
"required": [
"items",
"email"
],
"additionalProperties": false
}⚪pay_order(method, payment_token, session_id)
Déclenche le paiement d'une session ouverte avec `start_order`. • method="hosted_checkout" (défaut) : renvoie un lien de paiement Stripe à transmettre au client, qui confirme lui-même sa carte. • method="delegated_token" : confirme immédiatement le paiement avec un token délégué. Réservé aux agents authentifiés par une clé API de la boutique, et plafonné par commande.
入力スキーマ
{
"type": "object",
"properties": {
"method": {
"default": "hosted_checkout",
"enum": [
"hosted_checkout",
"delegated_token"
],
"type": "string"
},
"payment_token": {
"description": "Token de paiement délégué (Stripe), pour delegated_token",
"type": "string"
},
"session_id": {
"description": "Identifiant renvoyé par `start_order`",
"type": "string"
}
},
"required": [
"session_id"
],
"additionalProperties": false
}🟢get_order_status(email, order_id, session_id)
Statut d'une commande (en attente, payée, annulée) à partir de son numéro et de l'email du client, ou de l'identifiant de session de commande.
入力スキーマ
{
"type": "object",
"properties": {
"email": {
"type": "string"
},
"order_id": {
"type": "integer"
},
"session_id": {
"type": "string"
}
},
"additionalProperties": false
}⚪request_custom_poster(additional_info, city, email, style)
Enregistre une demande de création d'affiche vintage sur mesure (ville, style, précisions). L'équipe recontacte le client par email avec une proposition.
入力スキーマ
{
"type": "object",
"properties": {
"additional_info": {
"description": "Précisions, souvenir, couleurs…",
"type": "string"
},
"city": {
"description": "Ville ou lieu à illustrer",
"type": "string"
},
"email": {
"type": "string"
},
"style": {
"description": "Style souhaité, ex. « vintage années 50 »",
"type": "string"
}
},
"required": [
"email",
"city"
],
"additionalProperties": false
}🟢get_store_policies
Livraison, retours, formats, moyens de paiement et FAQ. À citer plutôt que de deviner.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}コミュニティ
エビデンス