Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Prépare le dépôt d'un visuel (PNG, JPEG ou PDF, 25 Mo max) à imprimer sur les cartes. Renvoie un `upload_id` et une URL de PUT valable 15 minutes : envoie-y les octets du fichier en un seul PUT, avec l'en-tête Content-Type du fichier (ex. curl -T visuel.png -H "Content-Type: image/png" <upload_url>). Cite ensuite l'`upload_id` dans prepare_cart. Un dépôt ne sert qu'une fois. Si tu ne peux pas faire de requête HTTP, utilise upload_file pour un petit fichier, ou prépare le panier sans visuel : la personne l'enverra elle-même depuis le Studio.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http shop https://studio.printags.com/mcp
Prépare le dépôt d'un visuel (PNG, JPEG ou PDF, 25 Mo max) à imprimer sur les cartes. Renvoie un `upload_id` et une URL de PUT valable 15 minutes : envoie-y les octets du fichier en un seul PUT, avec l'en-tête Content-Type du fichier (ex. curl -T visuel.png -H "Content-Type: image/png" <upload_url>). Cite ensuite l'`upload_id` dans prepare_cart. Un dépôt ne sert qu'une fois. Si tu ne peux pas faire de requête HTTP, utilise upload_file pour un petit fichier, ou prépare le panier sans visuel : la personne l'enverra elle-même depuis le Studio.
| Argument | Type | Description |
|---|---|---|
| file_name* | string | |
| content_type* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"file_name",
"content_type"
],
"properties": {
"file_name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"content_type": {
"enum": [
"image/png",
"image/jpeg",
"application/pdf"
],
"type": "string"
}
},
"additionalProperties": false
}Statut d'une commande du Studio d'après son JETON DE SUIVI (UUID), que la personne trouve dans l'e-mail de confirmation ou dans l'adresse de la page de suivi (/orders/track/<jeton>). Renvoie statut, paiement, articles et numéro de suivi du colis. Pas de référence CMD-… : elle ne suffit pas. Un statut « validé » ou « en production » n'est pas « expédié » : ne promets pas de date de livraison.
| Argument | Type | Description |
|---|---|---|
| tracking_token* | string | Le jeton de suivi de la commande (UUID). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"tracking_token"
],
"properties": {
"tracking_token": {
"type": "string",
"format": "uuid",
"description": "Le jeton de suivi de la commande (UUID)."
}
},
"additionalProperties": false
}Le catalogue du Studio (studio.printags.com) : cartes PVC avec ou sans NFC, MIFARE, bois. Pour chaque produit : `slug` (à citer partout), nom, description, puce, quantité minimale, paliers de prix unitaires HORS TAXES (le prix baisse avec la quantité) et `encodable` (la puce peut recevoir un lien ou un texte). À appeler d'abord : jamais de slug ni de prix de mémoire.
| Argument | Type | Description |
|---|---|---|
| locale | string | Langue de la personne : noms des produits, et page du Studio où elle arrivera. Celle de la conversation. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"locale": {
"enum": [
"fr",
"en",
"de",
"it",
"es"
],
"type": "string",
"description": "Langue de la personne : noms des produits, et page du Studio où elle arrivera. Celle de la conversation."
}
},
"additionalProperties": false
}Prépare un panier du Studio pour la personne et renvoie `claim_url`, un lien à lui donner. Elle l'ouvre : elle voit son panier et le BAT (épreuve) de ses cartes, l'approuve, saisit son adresse (et son numéro de TVA), choisit le transport et PAIE elle-même. Cet outil ne crée AUCUNE commande, n'envoie aucun e-mail, ne paie rien et n'approuve aucun BAT. Le lien est valable 48 heures et ne sert qu'une fois. Le prix vient du Studio. Les visuels sont facultatifs : ceux qui manquent, la personne les envoie depuis le Studio. Une ligne = un produit : un visuel pour toutes les cartes (front_upload_id…), des contenus de puce différents (encodings), ou un visuel par carte (cards). N'invente ni visuel, ni lien, ni texte de puce : demande ce qui manque.
| Argument | Type | Description |
|---|---|---|
| lines* | array | |
| locale | string | Langue de la personne : noms des produits, et page du Studio où elle arrivera. Celle de la conversation. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"lines"
],
"properties": {
"lines": {
"type": "array",
"items": {
"type": "object",
"required": [
"product",
"quantity"
],
"properties": {
"cards": {
"type": "array",
"items": {
"type": "object",
"properties": {
"encoding": {
"$ref": "#/properties/lines/items/properties/encoding",
"description": "Contenu de la puce NFC. Seulement pour une carte à puce NTAG (voir `encodable` de list_products)."
},
"back_upload_id": {
"$ref": "#/properties/lines/items/properties/front_upload_id"
},
"front_upload_id": {
"$ref": "#/properties/lines/items/properties/front_upload_id"
}
},
"additionalProperties": false
},
"maxItems": 50,
"minItems": 2,
"description": "Un visuel (et un contenu de puce) PAR CARTE, pour une équipe : autant d'entrées que `quantity`, au moins deux. Le tarif dégressif s'applique sur la quantité totale. Ne se combine pas avec front_upload_id, back_upload_id, encoding, encodings."
},
"product": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Le slug rendu par list_products. Jamais de mémoire."
},
"encoding": {
"type": "object",
"required": [
"type"
],
"properties": {
"lock": {
"type": "boolean",
"description": "true (défaut, comme sur le Studio) : la puce est verrouillée en lecture seule après l'écriture, IRRÉVERSIBLE ; le panier l'indique (« verrouillé »). false : seulement si la personne veut pouvoir la réécrire. Préviens-la que la puce sera verrouillée sauf demande contraire."
},
"type": {
"enum": [
"uri",
"text",
"empty"
],
"type": "string",
"description": "'uri' : une adresse (dans `content`), 'text' : un texte, 'empty' : puce non encodée."
},
"content": {
"type": "string",
"maxLength": 1000,
"description": "L'adresse complète (https://…) ou le texte. Jamais inventé : donné par la personne."
}
},
"description": "Un même contenu de puce pour toutes les cartes.",
"additionalProperties": false
},
"quantity": {
"type": "integer",
"maximum": 10000,
"minimum": 1,
"description": "Nombre de cartes de cette ligne. Au moins `min_quantity` du produit."
},
"encodings": {
"type": "array",
"items": {
"$ref": "#/properties/lines/items/properties/encoding"
},
"maxItems": 10000,
"description": "Un contenu de puce par carte, même visuel : au plus `quantity` entrées, dans l'ordre. Ne se combine pas avec `encoding`."
},
"blank_back": {
"type": "boolean",
"description": "true : verso vierge (aucun fichier verso)."
},
"back_upload_id": {
"$ref": "#/properties/lines/items/properties/front_upload_id",
"description": "Visuel du verso. Sans lui ni blank_back, la personne l'enverra elle-même."
},
"front_upload_id": {
"type": "string",
"format": "uuid",
"description": "Visuel du recto, rendu par create_upload ou upload_file. Le même pour toutes les cartes de la ligne."
}
},
"additionalProperties": false
},
"maxItems": 10,
"minItems": 1
},
"locale": {
"enum": [
"fr",
"en",
"de",
"it",
"es"
],
"type": "string",
"description": "Langue de la personne : noms des produits, et page du Studio où elle arrivera. Celle de la conversation."
}
},
"additionalProperties": false
}Chiffre un panier avec les règles du Studio : total HT, TVA 20 %, total TTC, frais d'expédition hors de France (offerte en France). Les montants sont indicatifs : le paiement recalcule tout. La livraison Chrono et l'autoliquidation de TVA (professionnel de l'UE) se choisissent et se vérifient au paiement, sur le Studio, pas ici.
| Argument | Type | Description |
|---|---|---|
| lines* | array | |
| locale | string | Langue de la personne : noms des produits, et page du Studio où elle arrivera. Celle de la conversation. |
| country_code | string | Pays de livraison, ISO 3166-1 alpha-2 (défaut FR). Hors de France, des frais d'expédition s'ajoutent. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"lines"
],
"properties": {
"lines": {
"type": "array",
"items": {
"type": "object",
"required": [
"product",
"quantity"
],
"properties": {
"product": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Le slug rendu par list_products."
},
"quantity": {
"type": "integer",
"maximum": 10000,
"minimum": 1
}
},
"additionalProperties": false
},
"maxItems": 10,
"minItems": 1
},
"locale": {
"enum": [
"fr",
"en",
"de",
"it",
"es"
],
"type": "string",
"description": "Langue de la personne : noms des produits, et page du Studio où elle arrivera. Celle de la conversation."
},
"country_code": {
"type": "string",
"maxLength": 2,
"minLength": 2,
"description": "Pays de livraison, ISO 3166-1 alpha-2 (défaut FR). Hors de France, des frais d'expédition s'ajoutent."
}
},
"additionalProperties": false
}Dépose directement un petit visuel (PNG, JPEG ou PDF, 3 Mo max) envoyé en base64 dans l'appel. Renvoie l'`upload_id` à citer dans prepare_cart. Pour un fichier plus gros, utilise create_upload ; sans moyen d'envoyer le fichier, prépare le panier sans visuel.
| Argument | Type | Description |
|---|---|---|
| file_name* | string | |
| content_type* | string | |
| content_base64* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"file_name",
"content_type",
"content_base64"
],
"properties": {
"file_name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"content_type": {
"enum": [
"image/png",
"image/jpeg",
"application/pdf"
],
"type": "string"
},
"content_base64": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}Dépose le visuel (PNG, JPEG ou PDF, 25 Mo max) que la personne a joint à la conversation ChatGPT, pour l'imprimer sur ses cartes. À utiliser dès qu'elle a joint un fichier. Renvoie l'`upload_id` à citer dans prepare_cart ; un dépôt ne sert qu'une fois. Sans fichier joint, prépare le panier sans visuel : la personne l'enverra elle-même depuis le Studio.
| Argument | Type | Description |
|---|---|---|
| file* | object | Le fichier joint par la personne, rempli par ChatGPT : ne jamais inventer ni modifier ces champs. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"file"
],
"properties": {
"file": {
"type": "object",
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"maxLength": 200
},
"file_name": {
"type": "string",
"maxLength": 200
},
"mime_type": {
"type": "string",
"maxLength": 100
},
"download_url": {
"type": "string",
"format": "uri",
"maxLength": 2048
}
},
"description": "Le fichier joint par la personne, rempli par ChatGPT : ne jamais inventer ni modifier ces champs.",
"additionalProperties": false
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 4, 2026.