Motif & Moi MCP
An official MCP server that allows AI assistants to browse the Motif & Moi catalog, calculate prices and delivery dates, prepare custom designs with logos and text, and generate pre-filled order links for custom apparel like T-shirts and hoodies.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://motifetmoi.com/mcpWhat you can do with it
- Browse the catalog of customizable apparel
- Calculate exact price and delivery date
- Prepare custom designs with logos and text
- Generate pre-filled order links for verification
Source and maintenance
Protocol and capabilities
- Server
- motif-et-moi 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 7 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
7 advertised
list_products — Catalogue Motif & Moi
Vêtements personnalisables (T-shirt, sweat, hoodie, polo, tote bag…) : qualités, matières, prix « dès » TTC, couleurs, tailles, faces imprimables avec leur taille maximale et leur supplément, remises de quantité, encres et polices. À appeler en premier.
{
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Filtrer sur une catégorie."
}
}
}{
"title": "Catalogue Motif & Moi",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_quote — Devis et date de livraison
Prix TTC exact (remise de quantité comprise), frais de livraison et date de réception estimée pour une personnalisation, sans rien enregistrer. Donner postal_code pour la date.
{
"type": "object",
"required": [
"category"
],
"properties": {
"color": {
"type": "string",
"description": "Couleur du vêtement (nom de list_products, ex. Noir)."
},
"sizes": {
"type": "object",
"description": "Quantités par taille, ex. {\"M\": 10, \"L\": 5}. Inutile avec pieces.",
"additionalProperties": {
"type": "integer",
"minimum": 0
}
},
"texts": {
"type": "array",
"items": {
"type": "object",
"required": [
"side"
],
"properties": {
"ink": {
"type": "string",
"description": "Encre (nom de list_products) ; par défaut la plus contrastée avec le vêtement."
},
"font": {
"type": "string",
"description": "sport (défaut), classique, fun, ou anton, bebas, montserrat, playfair, pacifico, marker, oswald, graduate."
},
"side": {
"enum": [
"front",
"back",
"left",
"right",
"nuque"
],
"type": "string",
"description": "front, back, left (manche gauche), right (manche droite), nuque."
},
"size": {
"enum": [
"s",
"m",
"l"
],
"type": "string",
"description": "Taille dans la zone : s (petit), m (moyen, défaut), l (grand)."
},
"text": {
"type": "string",
"description": "Texte (3 lignes de 40 caractères au plus)."
},
"per_piece": {
"enum": [
"name",
"number"
],
"type": "string",
"description": "Texte variable : prénom ou numéro de chaque pièce."
}
}
},
"description": "Textes imprimés. Pour un prénom ou un numéro différent sur chaque pièce : per_piece, sans text, et la liste pieces."
},
"pieces": {
"type": "array",
"items": {
"type": "object",
"required": [
"size"
],
"properties": {
"name": {
"type": "string"
},
"size": {
"type": "string"
},
"number": {
"type": "string"
}
}
},
"description": "Une entrée par pièce quand un texte est « par pièce » : taille, prénom, numéro."
},
"quality": {
"enum": [
"eco",
"standard",
"premium"
],
"type": "string",
"description": "Qualité : eco, standard (défaut) ou premium, selon la catégorie."
},
"category": {
"type": "string",
"description": "Catégorie (identifiant de list_products), ex. t-shirt, sweat, hoodie, polo, tote-bag."
},
"shipping": {
"enum": [
"standard",
"express"
],
"type": "string"
},
"logo_size": {
"enum": [
"s",
"m",
"l"
],
"type": "string",
"description": "Taille dans la zone : s (petit), m (moyen, défaut), l (grand)."
},
"logo_sides": {
"type": "array",
"items": {
"enum": [
"front",
"back",
"left",
"right",
"nuque"
],
"type": "string"
},
"description": "Faces qui portent le logo (défaut : front)."
},
"postal_code": {
"type": "string",
"description": "Code postal français de livraison : donne la date de réception."
},
"front_format": {
"enum": [
"coeur",
"grand"
],
"type": "string",
"description": "Devant : petit logo sur le cœur (compris dans le prix) ou grand format (supplément)."
}
}
}{
"title": "Devis et date de livraison",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}create_design — Préparer le vêtement et son lien de commande
Enregistre la personnalisation (logo par URL https publique ou en base64, textes, prénoms et numéros par pièce, quantités) et renvoie un lien vers le configurateur prérempli, un aperçu et le devis. Rien n’est commandé : le client ouvre le lien, vérifie le visuel (bon à tirer), puis commande et paie lui-même. Le lien reste valable 90 jours.
{
"type": "object",
"required": [
"category"
],
"properties": {
"color": {
"type": "string",
"description": "Couleur du vêtement (nom de list_products, ex. Noir)."
},
"sizes": {
"type": "object",
"description": "Quantités par taille, ex. {\"M\": 10, \"L\": 5}. Inutile avec pieces.",
"additionalProperties": {
"type": "integer",
"minimum": 0
}
},
"texts": {
"type": "array",
"items": {
"type": "object",
"required": [
"side"
],
"properties": {
"ink": {
"type": "string",
"description": "Encre (nom de list_products) ; par défaut la plus contrastée avec le vêtement."
},
"font": {
"type": "string",
"description": "sport (défaut), classique, fun, ou anton, bebas, montserrat, playfair, pacifico, marker, oswald, graduate."
},
"side": {
"enum": [
"front",
"back",
"left",
"right",
"nuque"
],
"type": "string",
"description": "front, back, left (manche gauche), right (manche droite), nuque."
},
"size": {
"enum": [
"s",
"m",
"l"
],
"type": "string",
"description": "Taille dans la zone : s (petit), m (moyen, défaut), l (grand)."
},
"text": {
"type": "string",
"description": "Texte (3 lignes de 40 caractères au plus)."
},
"per_piece": {
"enum": [
"name",
"number"
],
"type": "string",
"description": "Texte variable : prénom ou numéro de chaque pièce."
}
}
},
"description": "Textes imprimés. Pour un prénom ou un numéro différent sur chaque pièce : per_piece, sans text, et la liste pieces."
},
"pieces": {
"type": "array",
"items": {
"type": "object",
"required": [
"size"
],
"properties": {
"name": {
"type": "string"
},
"size": {
"type": "string"
},
"number": {
"type": "string"
}
}
},
"description": "Une entrée par pièce quand un texte est « par pièce » : taille, prénom, numéro."
},
"quality": {
"enum": [
"eco",
"standard",
"premium"
],
"type": "string",
"description": "Qualité : eco, standard (défaut) ou premium, selon la catégorie."
},
"category": {
"type": "string",
"description": "Catégorie (identifiant de list_products), ex. t-shirt, sweat, hoodie, polo, tote-bag."
},
"logo_url": {
"type": "string",
"description": "Adresse https publique du logo (PNG, JPG, WebP ou SVG, 20 Mo max)."
},
"shipping": {
"enum": [
"standard",
"express"
],
"type": "string"
},
"logo_size": {
"enum": [
"s",
"m",
"l"
],
"type": "string",
"description": "Taille dans la zone : s (petit), m (moyen, défaut), l (grand)."
},
"logo_sides": {
"type": "array",
"items": {
"enum": [
"front",
"back",
"left",
"right",
"nuque"
],
"type": "string"
},
"description": "Faces qui portent le logo (défaut : front)."
},
"logo_base64": {
"type": "string",
"description": "Logo encodé en base64 (à la place de logo_url)."
},
"postal_code": {
"type": "string",
"description": "Code postal français de livraison : donne la date de réception."
},
"front_format": {
"enum": [
"coeur",
"grand"
],
"type": "string",
"description": "Devant : petit logo sur le cœur (compris dans le prix) ou grand format (supplément)."
},
"logo_filename": {
"type": "string"
}
}
}{
"title": "Préparer le vêtement et son lien de commande",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}create_group_order — Lancer une commande de groupe
Pour un club, une classe, une association : crée le modèle et deux liens. Le lien membres est à partager (WhatsApp, e-mail) : chacun y choisit sa taille, saisit son prénom et son numéro si le modèle en a (texte per_piece), et paie sa part en ligne si pay_mode vaut members. Le lien responsable est privé : il suit les inscriptions et passe la commande pour tous à la date limite (il vérifie alors le visuel et paie le solde). Plus le groupe est nombreux, moins c’est cher : la remise porte sur tout le groupe et le trop-perçu des premiers inscrits leur est remboursé.
{
"type": "object",
"required": [
"category",
"title"
],
"properties": {
"color": {
"type": "string",
"description": "Couleur du vêtement (nom de list_products, ex. Noir)."
},
"texts": {
"type": "array",
"items": {
"type": "object",
"required": [
"side"
],
"properties": {
"ink": {
"type": "string",
"description": "Encre (nom de list_products) ; par défaut la plus contrastée avec le vêtement."
},
"font": {
"type": "string",
"description": "sport (défaut), classique, fun, ou anton, bebas, montserrat, playfair, pacifico, marker, oswald, graduate."
},
"side": {
"enum": [
"front",
"back",
"left",
"right",
"nuque"
],
"type": "string",
"description": "front, back, left (manche gauche), right (manche droite), nuque."
},
"size": {
"enum": [
"s",
"m",
"l"
],
"type": "string",
"description": "Taille dans la zone : s (petit), m (moyen, défaut), l (grand)."
},
"text": {
"type": "string",
"description": "Texte (3 lignes de 40 caractères au plus)."
},
"per_piece": {
"enum": [
"name",
"number"
],
"type": "string",
"description": "Texte variable : prénom ou numéro de chaque pièce."
}
}
},
"description": "Textes imprimés. Pour un prénom ou un numéro différent sur chaque pièce : per_piece, sans text, et la liste pieces."
},
"title": {
"type": "string",
"description": "Nom de la commande, ex. « Sweats du FC Rennes Sud »."
},
"quality": {
"enum": [
"eco",
"standard",
"premium"
],
"type": "string",
"description": "Qualité : eco, standard (défaut) ou premium, selon la catégorie."
},
"category": {
"type": "string",
"description": "Catégorie (identifiant de list_products), ex. t-shirt, sweat, hoodie, polo, tote-bag."
},
"deadline": {
"type": "string",
"description": "Date limite des inscriptions (AAAA-MM-JJ), à venir."
},
"logo_url": {
"type": "string",
"description": "Adresse https publique du logo (PNG, JPG, WebP ou SVG, 20 Mo max)."
},
"pay_mode": {
"enum": [
"members",
"owner"
],
"type": "string",
"description": "members (défaut) : chacun paie sa part en ligne ; owner : le responsable règle tout."
},
"logo_size": {
"enum": [
"s",
"m",
"l"
],
"type": "string",
"description": "Taille dans la zone : s (petit), m (moyen, défaut), l (grand)."
},
"logo_sides": {
"type": "array",
"items": {
"enum": [
"front",
"back",
"left",
"right",
"nuque"
],
"type": "string"
},
"description": "Faces qui portent le logo (défaut : front)."
},
"logo_base64": {
"type": "string",
"description": "Logo encodé en base64 (à la place de logo_url)."
},
"front_format": {
"enum": [
"coeur",
"grand"
],
"type": "string",
"description": "Devant : petit logo sur le cœur (compris dans le prix) ou grand format (supplément)."
},
"logo_filename": {
"type": "string"
},
"club_margin_pct": {
"type": "integer",
"maximum": 50,
"minimum": 0,
"description": "Avec pay_mode members : marge en % ajoutée au prix de chaque membre pour la caisse du club, reversée au club par virement après la commande (IBAN à saisir sur owner_url)."
}
}
}{
"title": "Lancer une commande de groupe",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}get_group_status — Suivi d’une commande de groupe
Inscriptions d’une commande de groupe (tailles, prénoms, numéros, paiements) pour son responsable : group_id et owner_key renvoyés par create_group_order.
{
"type": "object",
"required": [
"group_id",
"owner_key"
],
"properties": {
"group_id": {
"type": "string"
},
"owner_key": {
"type": "string"
}
}
}{
"title": "Suivi d’une commande de groupe",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_design_preview — Aperçu d’un design
Image PNG du vêtement personnalisé (chaque face marquée et gros plans), pour montrer le rendu au client avant qu’il ouvre le lien.
{
"type": "object",
"required": [
"design_id"
],
"properties": {
"design_id": {
"type": "string"
}
}
}{
"title": "Aperçu d’un design",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_order_status — Suivi d’une commande
Étape de fabrication et de livraison d’une commande payée, avec son numéro (MM-XXXXXX) et l’e-mail utilisé pour la payer.
{
"type": "object",
"required": [
"order_number",
"email"
],
"properties": {
"email": {
"type": "string"
},
"order_number": {
"type": "string"
}
}
}{
"title": "Suivi d’une commande",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 638 ms
- 95th percentile latency
- 638 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 638 ms · metadata changed · 7 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http motif-moi-mcp https://motifetmoi.com/mcpCodex
codex mcp add motif-moi-mcp --url https://motifetmoi.com/mcpCursor
{
"mcpServers": {
"motif-moi-mcp": {
"url": "https://motifetmoi.com/mcp"
}
}
}Cline
{
"mcpServers": {
"motif-moi-mcp": {
"type": "streamableHttp",
"url": "https://motifetmoi.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"motif-moi-mcp": {
"type": "http",
"url": "https://motifetmoi.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http motif-moi-mcp https://motifetmoi.com/mcpClaude Desktop
{
"mcpServers": {
"motif-moi-mcp": {
"url": "https://motifetmoi.com/mcp"
}
}
}Windsurf
{
"mcpServers": {
"motif-moi-mcp": {
"serverUrl": "https://motifetmoi.com/mcp"
}
}
}Let your agent find its tools
Find servers like Motif & Moi MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other commerce servers
Do you run Motif & Moi MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.