Vintage Postcard

Affiches vintage : catalogue, devis livraison comprise et paiement Stripe.

¿Debería usar esto?

Calidad y seguridad

B
Calidad de la descripción
86%
Integridad del esquema
69%
Calidad de los nombres
94%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (4)

  • LOWTool 'quote_cart' description lacks action verben quote_cart
  • LOWTool 'start_order' description lacks action verben start_order
  • LOWTool 'get_order_status' description lacks action verben get_order_status
  • LOWTool 'request_custom_poster' description lacks action verben request_custom_poster

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~1,573Tokens (definiciones de herramientas)
~993 BTamaño de respuesta típico
Impacto moderado en la atención (1.23% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "boutique": {
      "url": "https://vintage-postcard.fr/mcp"
    }
  }
}

Puntos de conexión remotos

https://vintage-postcard.fr/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (10)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada10 herramientas
verificadoversión no registrada10 herramientas
verificadoversión no registrada10 herramientas