Un serveur Model Context Protocol sans état, sans authentification et en lecture seule qui expose le catalogue de sérigraphie public de Grünig-SignTronic — produits, offres d’emploi, distributeurs, pages légales et actualités — à tout client MCP ou assistant IA, via un seul endpoint standard.
Le serveur parle le Model Context Protocol via Streamable HTTP sur un seul endpoint. Il n’y a ni clé API ni compte — pointez un client vers l’URL et ses tools apparaissent.
Endpoint MCP
https://mcp.grunig-signtronic.com/mcp
Streamable HTTPSans authentificationLecture seule
1Recommandé
Connector Claude.ai
Ajoutez-le comme connector personnalisé dans Claude.
Ouvrez Paramètres → Connectors.
Cliquez sur « Ajouter un connector personnalisé ».
Enregistrez, activez-le dans une conversation, puis posez une question sur le catalogue.
Utilisez l’endpoint MCP indiqué ci-dessus
2
ChatGPT
Ajoutez-le comme connector personnalisé dans ChatGPT (Plus, Pro, Team ou Enterprise).
Ouvrez Paramètres → Connectors.
Cliquez sur « Créer » et choisissez un connector personnalisé (MCP).
Collez l’endpoint indiqué ci-dessus comme URL du serveur ; réglez l’authentification sur « aucune ».
Enregistrez, activez-le dans une conversation, puis posez une question sur le catalogue.
Utilisez l’endpoint MCP indiqué ci-dessus
3
MCP Inspector
Inspectez et appelez les tools directement depuis un terminal.
Exécutez la commande ci-dessous.
Choisissez le transport Streamable HTTP.
Saisissez l’endpoint et cliquez sur « Connect ».
Explorez avec « List Tools » / « Call Tool ».
Exécuter
npx @modelcontextprotocol/inspector
Ou laissez votre assistant s’en charger
Collez ceci dans Claude, ChatGPT ou tout assistant compatible MCP pour ajouter le serveur et l’essayer en une seule étape :
Prompt de configuration
Ajoutez le serveur MCP distant « Grünig-SignTronic Catalog » à l’adresse https://mcp.grunig-signtronic.com/mcp (Model Context Protocol via Streamable HTTP, sans authentification) à mon client MCP, puis listez ses outils et exécutez search_products avec la requête « coating » pour vérifier que tout fonctionne.
Appeler un tool directement (curl)
Chaque requête est un seul POST JSON-RPC. Celui-ci interroge le catalogue de produits :
Chaque entité suit une structure uniforme list / search + get : les tools list et search renvoient des résumés compacts, les tools get_* renvoient le détail complet. Tous les tools sont en lecture seule, et chaque tool sauf ping prend un lang parmi « en », « de », « fr », « it », « es » ou « pt ». Cette référence est générée à partir des définitions de tools du serveur, elle correspond donc toujours à ce que l’endpoint expose.
ping
Ping
Contrôle de disponibilité — renvoie 'pong' et l’environnement actif. Ne prend aucun argument.
Renvoie :Une courte chaîne de texte, p. ex. pong (production).
Recherche ou liste les produits Grünig-SignTronic actifs dans la langue demandée. Avec « query », la requête est une sous-chaîne insensible à la casse comparée à l’ensemble du texte du produit — nom, description courte et complète, caractéristiques, avantages, applications et spécifications — de sorte que les numéros de modèle et les termes techniques (p. ex. « 1270 », « UV-LED ») correspondent aussi. SANS « query », l’outil liste au lieu de rechercher : « { lang, category } » répond donc à « quels produits appartiennent à cette catégorie » et « { lang } » liste le catalogue. « category » accepte un slug OU un nom de catégorie dans l’une des langues du catalogue (voir list_categories). Renvoie des résumés compacts (slug, nom, description courte, catégorie, URL canonique) ; pour le détail complet, utiliser get_product.
Paramètre
Type
Oblig.
Description
query
string (1–200)
optionnel
Terme de recherche insensible à la casse. À omettre pour lister au lieu de rechercher.
lang
"en" | "de" | "fr" | "it" | "es" | "pt"
obligatoire
Langue de réponse pour les contenus du catalogue.
limit
integer (1–50)
optionnel
Résultats max. Par défaut 10.
category
string (≤100)
optionnel
Slug de catégorie ou nom de catégorie dans l’une des langues du catalogue (voir list_categories).
Renvoie le détail complet d’un seul produit actif dans la langue demandée : descriptions, caractéristiques, avantages, applications, spécifications, documents et slugs des produits associés. Résolution par « slug », « id » ou « name » — « name » est le nom d’affichage (« G-COAT 746 ») ; tous trois sont insensibles à la casse, et « name » correspond aussi comme sous-chaîne. Si rien ne correspond, la réponse porte « suggestions » avec les produits réels les plus proches — relancer la demande avec l’un d’eux plutôt que de deviner.
Paramètre
Type
Oblig.
Description
slug
string (≤200)
optionnel
Slug du produit. Indiquer slug, id ou name.
id
string (≤100)
optionnel
id du produit. Indiquer slug, id ou name.
name
string (≤200)
optionnel
Nom d’affichage du produit ; insensible à la casse, sous-chaîne autorisée.
lang
"en" | "de" | "fr" | "it" | "es" | "pt"
obligatoire
Langue de réponse pour les contenus du catalogue.
Renvoie :{ found, truncated, product } — truncated: true signifie qu’un champ a atteint la limite de longueur. found: false (plus suggestions) si inconnu ou inactif.
Au moins l’un de slug, id ou name est obligatoire.
Liste toutes les catégories de produits actives dans la langue demandée (slug, nom, description, productCount). « productCount » est le nombre de produits actifs dans la catégorie — cette liste est donc la carte du catalogue : commencer ici, puis passer un slug ou un nom comme « category » à search_products pour lister les produits de la catégorie.
Liste les offres d’emploi ouvertes sous forme de résumés compacts dans la langue demandée. Filtrage optionnel par type de poste. Pour le détail complet, utiliser get_job.
Renvoie le détail complet d’une seule offre d’emploi ouverte dans la langue demandée : description, exigences, avantages et type de poste. Résolution par « slug », « id » ou « name » (le titre de l’annonce) — tous insensibles à la casse, « name » aussi comme sous-chaîne. Un échec porte « suggestions » avec les annonces ouvertes les plus proches de la demande.
Paramètre
Type
Oblig.
Description
slug
string (≤200)
optionnel
Slug de l’offre. Indiquer slug, id ou name.
id
string (≤100)
optionnel
id de l’offre. Indiquer slug, id ou name.
name
string (≤200)
optionnel
Titre de l’annonce ; insensible à la casse, sous-chaîne autorisée.
lang
"en" | "de" | "fr" | "it" | "es" | "pt"
obligatoire
Langue de réponse pour les contenus du catalogue.
Renvoie :{ found, truncated, job } — truncated: true signifie qu’un champ a atteint la limite de longueur. found: false (plus suggestions) si inconnu ou clôturé.
Au moins l’un de slug, id ou name est obligatoire.
Liste les distributeurs sous forme de résumés au niveau de l’entreprise dans la langue demandée (nom, adresse, e-mail, site web, coordonnées géographiques). Filtrage optionnel par pays. Les coordonnées de contact au niveau des personnes ne sont PAS incluses ici — utiliser get_distributor.
Renvoie le détail complet d’un seul distributeur dans la langue demandée — y compris la personne de contact nommée (e-mail/téléphone/mobile), qui n’est exposée qu’ici et jamais dans la liste groupée. Résolution par « slug », « id » ou « name » (le nom de l’entreprise) — tous insensibles à la casse, « name » aussi comme sous-chaîne. Un échec porte « suggestions » avec les partenaires les plus proches.
Paramètre
Type
Oblig.
Description
slug
string (≤200)
optionnel
Slug du distributeur. Indiquer slug, id ou name.
id
string (≤100)
optionnel
id du distributeur. Indiquer slug, id ou name.
name
string (≤200)
optionnel
Nom de l’entreprise ; insensible à la casse, sous-chaîne autorisée.
lang
"en" | "de" | "fr" | "it" | "es" | "pt"
obligatoire
Langue de réponse pour les contenus du catalogue.
Renvoie :{ found, truncated, distributor } incluant un objet contact; truncated: true signifie qu’un champ a atteint la limite de longueur.
Au moins l’un de slug, id ou name est obligatoire.
Renvoie un document légal (p. ex. mentions légales, politique de confidentialité, conditions générales) dans la langue demandée. « page » accepte la clé de page ou le slug d’URL, sans distinction de casse ; un échec porte « suggestions » avec les pages publiées dans cette langue. Seule la version allemande fait foi ; « document.lang » indique la langue du texte renvoyé.
Paramètre
Type
Oblig.
Description
page
string (1–100)
obligatoire
Clé de la page légale ou slug d’URL, p. ex. `imprint` / `privacy`.
lang
"en" | "de" | "fr" | "it" | "es" | "pt"
obligatoire
Langue de réponse pour les contenus du catalogue. Les documents légaux existent dans toutes les langues du catalogue ; seule la version allemande fait foi, les autres sont des traductions informatives. Une page sans version approuvée dans cette langue est renvoyée en anglais.
Renvoie :{ found, document: { page, urlSlug, lang, summary, body, truncated } } — found: false plus suggestions en cas d’échec.
Liste les actualités les plus récentes dans la langue demandée (titre, extrait, tags, date). Filtrage optionnel par tag. Seuls les extraits sont exposés — jamais le HTML complet de l’article.
Chaque tool déclare également un outputSchema et renvoie sa charge utile deux fois — comme structuredContent (du vrai JSON, validé à chaque appel) et comme bloc de texte JSON lisible.
Au-delà des tools
Resources & prompts
Le serveur annonce quatre capabilities : tools, resources, prompts et completions. Les resources rendent le même catalogue adressable par URI — un client peut ainsi joindre et relire un document sans choisir un tool. Les prompts sont des modèles prêts à l’emploi qui composent les tools ci-dessus.
Resources
Découvrez-les via resources/list (URI concrètes) et resources/templates/list (motifs). {lang} vaut « en », « de », « fr », « it », « es » ou « pt » — la langue fait partie de l’adresse, car chaque enregistrement du catalogue est localisé. Les resources renvoient l’enregistrement complet, pas les résumés des tools.
URI
Contenu
catalog://{lang}/products
{ count, products } — chaque produit actif, en détail complet
Chaque prompt compose les tools ci-dessus ; l’argument lang se complète automatiquement, et c’est précisément à cela que sert la capability completions. Aucun prompt ne demande de slug : produits et catégories sont passés en texte libre et le modèle les résout lui-même via search_products. Les arguments optionnels le sont volontairement, pour qu’un formulaire client ne bloque jamais sur une saisie.
Prompt
Arguments
Objectif
explore_catalog
interest?, lang?
Orientation : catégories avec le nombre de produits, puis la suite
category_overview
category?, lang?
Les produits d’une catégorie — le nom de la catégorie suffit
find_machine
application, lang?
Recommandation d’équipement pour un besoin de production décrit
compare_products
products?, criteria?, lang?
Comparaison côte à côte sur les champs qui diffèrent
plan_screen_making_line
requirements, lang?
Une ligne complète sous forme de flux ordonné, étape par étape
product_documents
product, lang?
Les fiches techniques et notices publiées pour un produit
find_distributor
country, lang?
Le distributeur couvrant un pays, avec son contact
request_quote
need, country?, lang?
Demande de devis : présélection, partenaire compétent, voie de contact
news_digest
topic?, lang?
Les dernières actualités publiées, résumées à partir de leurs extraits
open_positions
interest?, lang?
Les offres d’emploi ouvertes et ce qu’elles impliquent
À propos
À propos de ce serveur
Objectif
Il permet aux clients MCP et aux assistants IA d’interroger le catalogue public Grünig-SignTronic via un seul endpoint standard et bien connu — sans scraping, sans API sur mesure.
Source des données
Tous les contenus proviennent du site web public Grünig-SignTronic et sont servis en lecture seule. Le catalogue est actualisé à chaque publication du site web ; le serveur n’écrit jamais.
Sécurité
L’endpoint est sans authentification, en lecture seule et sans état. Il n’expose aucun secret, aucune écriture et aucune donnée personnelle au-delà de ce qui est déjà public sur le site web.
Transport
Model Context Protocol via Streamable HTTP. Les requêtes sont du simple JSON-RPC en POST ; les réponses sont mises en cache à l’edge lorsque c’est sans risque.