ToolsUniverse

Agents, assistenten en antwoordmachines

Winkel bij Tools Universe vanuit Claude

De winkel is ook een MCP-server: Claude kan de catalogus doorzoeken, gereedschap op een accuplatform vergelijken, een huurmachine boeken en een winkelwagen vullen, met dezelfde Crystallize-data en dezelfde persoonlijke ranking als de website. En elke pagina is geschreven voor machines: gestructureerde data, getypeerde specificaties met eenheids- en ETIM-codes, en tekstversies voor taalmodellen.

MCP-server (Streamable HTTP)

https://tools-universe.superfast.shop/api/mcp

Deel A

De MCP-server instellen

Vijf minuten in Claude, één regel in Claude Code. De open tools werken zonder account; log in als democlient voor eigen prijzen, historie en aanbevelingen.

A1

De winkel toevoegen aan Claude

claude.ai, Claude Desktop en de mobiele apps delen connectors. Interactieve productkaarten vragen een host met MCP Apps; de tools zelf werken overal.

Claude (web en desktop)

  1. 1
    Open Instellingen → Connectors en kies Aangepaste connector toevoegen.
  2. 2
    Noem hem “Tools Universe” en plak de server-URL hierboven.
  3. 3
    Laat authenticatie op Inloggen wanneer nodig staan: de server antwoordt bewust zonder token, en alleen de persoonlijke tools vragen om in te loggen.
  4. 4
    Wordt er om een OAuth-client gevraagd, laat Claude zichzelf registreren. Laat request headers leeg.
  5. 5
    Begin een nieuwe chat, open + → Connectors en zet Tools Universe aan.

Claude Code

claude mcp add --transport http tools-universe https://tools-universe.superfast.shop/api/mcp
claude "Ik werk met Milwaukee M18. Welke SDS-plus boorhamers werken op de accu’s die ik al heb?"

Voer /mcp uit in een sessie om in te loggen wanneer een persoonlijke tool daarom vraagt.

Andere MCP-hosts

Streamable HTTP, stateless, OAuth 2.1 met PKCE en discovery op /.well-known/oauth-protected-resource. VS Code, Cursor, ChatGPT en de MCP Inspector verbinden op dezelfde manier.
A2

Inloggen als democlient

Er zijn geen wachtwoorden. Vraag iets persoonlijks en Claude toont een Verbinden-knop; de winkel opent een pagina waar je een van de democlients kiest, dezelfde mensen als de accountkiezer in de header.

Elke klant heeft een echte bestelhistorie in de Shop API, een bedrijf met vak- of contractprijzen, en een markt. Sindre, de meubelmaker die alleen Festool gebruikt, heeft de duidelijkste smaak; Martin zaagt beton met Hilti Nuron; Lotte is weekendhoutbewerker op DeWalt XR.

Prijzen en markt

Prijzen volgen de markt van de klant (EUR, NOK of SEK) en de prijslijst: zakelijke klanten zien de vak- of contractprijs van hun bedrijf, excl. btw.

Persoonlijke ranking

Elke lijst wordt gerankt met de smaakvector uit hun bestellingen: het accuplatform dat ze hebben, hun vak, het gereedschap dat ze kopen.

Eigen gegevens

Bestellingen, huurboekingen en offertes komen uit de Shop API. Winkelwagens en boekingen worden voor die klant gemaakt.

Democlients

  • Sindre AasCabinetmaker, Festool only · Aas Møbelsnekkeri ASb2b · no
  • Kari NilsenCarpentry contractor, Makita LXT · Fjordbygg ASb2b · no
  • Ola BergCarpenter, Makita LXT · Fjordbygg ASb2b · no
  • Ingrid HaugenElectricians, Milwaukee M12/M18 · Nordlys Elektro ASb2b · no
  • Martin SolbergConcrete cutting and demolition, Hilti Nuron · Betongteknikk Øst ASb2b · no
  • Johan LindqvistPlumbing and heating, Milwaukee M18 · Stockholm Rör & VVS ABb2b · se
  • Daan MulderInterior fit-out, Festool · Mulder Interieurbouw B.V.b2b · nl
  • Erik JohansenRenovating a 1950s house, Bosch 18Vb2c · no
  • Emma SvenssonGarden and summer house, Makita LXTb2c · se
  • Lotte JansenWeekend woodworker, DeWalt XRb2c · nl
A3

Wat Claude kan doen

De tools volgen de webwinkel. Zoek- en producttools geven kaarten met productfoto, prijs en voorraad; elk antwoord linkt naar dezelfde pagina in de winkel.

Catalogus

search_products
Vrije tekst plus filters: categorie, merk, platform, vak, getypeerde specificaties (concrete.impactEnergy ≥ 8), prijs en voorraad.
get_product
Alles over één machine: specificaties met eenheden en ETIM-codes, uitvoeringen en sets met inhoud, prijs, voorraad.
similar_products
Alternatieven op producttype, platform en specificaties.
show_products
Kaarten voor een selectie die Claude zelf maakte.
list_categories
De afdelingen en producttypes.
list_brands
De zes fabrikanten.

Accuplatformen

battery_platforms
Alle platformen met spanning en merk; met een platform, de machines erop en de accu’s en laders die passen; met een artikelnummer, wat op die machine past.

Verhuur

search_rentals
Machines te huur, met prijs per dag, weekend, week en 4 weken.
rental_availability
Vrije eenheden per depot en periode.

Winkelwagen en afrekenen

add_to_cart
Voeg een uitvoering toe op artikelnummer; geeft een winkelwagen om op door te bouwen.
view_cart
Regels en totalen incl. en excl. btw.
update_cart_line
Aantal wijzigen of een regel verwijderen.
suggest_add_ons
Accessoires, accu’s en opslag die passen bij wat in de winkelwagen ligt.
checkout
Een link die de winkelwagen opent in de kassa van de winkel.

IngelogdVragen om in te loggen

book_rental
Reserveer een machine in de winkelwagen; bevestigd bij het afrekenen.
whoami
Wie je bent voor de winkel: bedrijf, markt, prijslijst en smaak.
my_orders
Bestellingen, huur en offertes, met hun status.
recommendations
Suggesties gerankt met jouw smaakvector.
A4

Om te proberen

Vaag mag: de zoekfunctie stelt voor wat je waarschijnlijk bedoelde.
  • Open“Ik werk met Milwaukee M18. Welke SDS-plus boorhamers werken op de accu’s die ik al heb?”
  • Open“Vergelijk 18V slagschroevendraaiers met minstens 200 Nm, goedkoopste eerst, alleen wat op voorraad is.”
  • Open“Welke accu en lader heb ik nodig voor een Makita LXT cirkelzaag? Zet ze in een winkelwagen.”
  • Open“Ik moet volgend weekend in Rotterdam een betonvloer opbreken. Wat kan ik huren en wat kost het?”
  • Open“What is the difference between Hilti Nuron and Milwaukee MX FUEL for demolition?”
  • Open“Een diamantkernboor voor gaten van 150 mm: kopen of een week huren?”
  • Ingelogd“Wat zou je mij aanraden, en waarom?”
  • Ingelogd“Wat heb ik eerder besteld? Welke accu’s passen op mijn machines?”
  • Ingelogd“Boek de breekhamer bij het dichtstbijzijnde depot van vrijdag tot maandag.”
  • Ingelogd“Toon mijn openstaande offertes en huur.”

Deel B

Gemaakt om gevonden te worden door zoekmachines en taalmodellen

Verbinding kunnen maken is de helft. De andere helft is goed gelezen worden als iemand een AI-assistent vraagt naar een accubreekhamer of een 5 Ah-accu. Alles hieronder komt uit dezelfde Crystallize-data als de pagina’s, in vier talen.

B1

Een JSON-LD-graaf op elke pagina

schema.org in <script type="application/ld+json">, gekoppeld met @id, zodat het product, de merkpagina en de accuplatformpagina één graaf beschrijven.

De organisatie en website (met zoekactie) op de voorpagina; Product of ProductGroup met een Product per uitvoering op productpagina’s; verhuurde Products op huurpagina’s; CollectionPage met ItemList op categorieën, merken en platformen; BreadcrumbList overal.

ProductGroup / Product
uitvoeringen (zonder accu, sets) met artikelnummer, GTIN en eigen Offer
Offer
prijs incl. en excl. btw, staffelprijzen, voorraad als availability en inventoryLevel, inhoud, garantie
category
producttypepad en de ETIM-klasse als CategoryCode
isAccessoryOrSparePartFor · isConsumableFor
de machines waarvoor een accu, lader, zaagblad of boor gemaakt is
DefinedTerm
het accuplatform, gedefinieerd op zijn eigen pagina en gerefereerd vanuit elk product erop
Offer bij verhuur
LeaseOut, huurduur in uren, de depots als plaatsen met adres en coördinaten

Live fragment van deze productpagina (ingekort)

{
  "@type": "Product",
  "name": "Milwaukee M18 HB5 HIGH OUTPUT 5,0 Ah accu",
  "sku": "4932499042",
  "brand": {
    "@type": "Brand",
    "@id": "https://tools-universe.superfast.shop/nl/merken/milwaukee#brand",
    "name": "Milwaukee",
    "url": "https://tools-universe.superfast.shop/nl/merken/milwaukee"
  },
  "category": [
    "Accu's en laders > Accu",
    {
      "@type": "CategoryCode",
      "codeValue": "EC001199",
      "name": "Accupack elektrisch gereedschap",
      "inCodeSet": {
        "@type": "CategoryCodeSet",
        "name": "ETIM International classification",
        "url": "https://www.etim-international.com/"
      }
    }
  ],
  "weight": {
    "@type": "QuantitativeValue",
    "value": 0.78,
    "unitText": "kg",
    "unitCode": "KGM"
  },
  "additionalProperty": [
    {
      "@type": "PropertyValue",
      "name": "Accucapaciteit",
      "propertyID": "EF001985",
      "value": 5,
      "unitText": "Ah",
      "unitCode": "AMH"
    },
    {
      "@type": "PropertyValue",
      "name": "Stroomvoorziening",
      "propertyID": "EF000145",
      "value": "Accu",
      "valueReference": [
        {
          "@type": "DefinedTerm",
          "name": "Accu",
          "termCode": "cordless",
          "identifier": {
            "@type": "PropertyValue",
            "propertyID": "ETIM",
            "value": "EV000449"
          }
        }
      ]
    },
    {
      "@type": "PropertyValue",
      "name": "Nominale spanning",
      "propertyID": "EF000002",
      "value": 18,
      "unitText": "V",
      "unitCode": "VLT"
    },
    {
      "@type": "PropertyValue",
      "name": "Accuplatform",
      "value": "Milwaukee M18",
      "valueReference": {
        "@type": "DefinedTerm",
        "@id": "https://tools-universe.superfast.shop/nl/accuplatformen/milwaukee-m18#platform",
        "name": "Milwaukee M18",
        "url": "https://tools-universe.superfast.shop/nl/accuplatformen/milwaukee-m18",
        "inDefinedTermSet": {
          "@type": "DefinedTermSet",
          "name": "Accuplatformen"
        }
      }
    }
  ],
  "isRelatedTo": [
    {
      "@type": "Product",
      "@id": "https://tools-universe.superfast.shop/nl/accus-en-laders/milwaukee-m18-dfc-snellader-met-twee-posities#product",
      "name": "Milwaukee M18 DFC snellader met twee posities",
      "url": "https://tools-universe.superfast.shop/nl/accus-en-laders/milwaukee-m18-dfc-snellader-met-twee-posities"
    },
    "…"
  ],
  "offers": {
    "@type": "Offer",
    "sku": "4932499042",
    "price": 149,
    "priceCurrency": "EUR",
    "availability": "https://schema.org/InStock",
    "inventoryLevel": {
      "@type": "QuantitativeValue",
      "value": 20,
      "unitCode": "C62"
    },
    "itemCondition": "https://schema.org/NewCondition",
    "warranty": [
      {
        "@type": "WarrantyPromise",
        "durationOfWarranty": {
          "@type": "QuantitativeValue",
          "value": 1,
          "unitCode": "ANN",
          "unitText": "years"
        }
      },
      {
        "@type": "WarrantyPromise",
        "durationOfWarranty": {
          "@type": "QuantitativeValue",
          "value": 3,
          "unitCode": "ANN",
          "unitText": "years"
        },
        "description": "3 jaar na registratie"
      }
    ]
  }
}

/nl/accus-en-laders/milwaukee-m18-hb5-high-output-50-ah-accu .md

B2

Getypeerde feiten, geen tekst

Specificaties zijn getypeerde componenten in Crystallize, dus ze komen binnen als getallen met eenheden, waar/onwaar en optiesleutels. De JSON-LD houdt ze zo.

Elke specificatie is een PropertyValue met het ETIM-kenmerk als propertyID, een numerieke value, unitText en de UN/CEFACT-code unitCode, en maxValue of minValue als het veld een grens is. Keuzes hebben de optiesleutel en de ETIM-waardecode. Dezelfde codes staan in de Markdown-pagina’s en in llms-full.txt.

SpecificatieWaardeunitCodeETIM
Nominale spanning18 VVLTEF000002
Capaciteit5 AhAMHEF001985
Draaimoment, harde schroefverbinding230 NmNUEF002842
Nullasttoerental3.400 1/minRPMEF011125
Gewicht zonder accu2,2 kgKGMEF011121
GereedschapsopnameSDS-max–EF002843 · EV005657
B3

Platte tekst voor taalmodellen

Agents die geen JavaScript draaien, of liever tekst lezen, krijgen dezelfde catalogus zonder opmaak.

llms.txt en llms-full.txt

Een Markdown-kaart van de winkel (markten, categorieën, platformen, merken, verhuur) volgens llmstxt.org, en de hele catalogus in één bestand met prijzen in drie valuta, voorraad, producttype, ETIM-klasse en elke getypeerde specificatie met codes./llms.txt /llms-full.txt

Een Markdown-versie van elke pagina

Zet .md achter een URL, of stuur Accept: text/markdown. Productpagina’s geven specificaties met eenheids- en ETIM-codes, uitvoeringen, inhoud, past op en vaak samen gekocht; elke pagina linkt naar de andere. Aangekondigd in <head> met rel="alternate" type="text/markdown"./nl.md
B4

Crawlers, kaarten en talen

De basis goed gedaan, zodat een crawler elke pagina één keer en in de juiste taal vindt.

robots.txt met AI-crawlers bij naam

GPTBot, ClaudeBot, Claude-SearchBot, PerplexityBot, Google-Extended en andere zijn bij naam toegestaan, met Content-Signal: search=yes, ai-input=yes. Winkelwagen, account, API en OAuth blijven buiten./robots.txt

Sitemap met hreflang

Elke categorie-, product-, huur-, merk-, platform- en technologiepagina in vier talen, met vertaalde alternatieven en de laatste wijziging uit Crystallize./sitemap.xml

Canonicals en hreflang

Paden zijn per taal vertaald, dus alternatieven worden opgezocht op item-id. Gefilterde categorieweergaven wijzen met canonical naar de schone categorie; zoekresultaten zijn noindex.

Metadata in de HTML voor bots

Next.js streamt metadata na de eerste byte. Voor crawlers die HTML lezen zonder JavaScript (zoekmachines en AI-agents) zet htmlLimitedBots titel, beschrijving, canonical en hreflang in <head>.

Controleer het zelf: plak een product-URL in Claude met webtoegang en vraag naar spanning, gewicht en prijs incl. btw, of open de .md-versie van de pagina.

Zo is de demo gebouwd →← Terug naar de winkel