MCP-Tools Referenz
Maschinchenring ist auch ein MCP-Server. Du kannst die Plattform also direkt aus einem LLM-Client wie Claude Desktop nutzen statt über die Webseite — suchen, Verfügbarkeit prüfen, buchen, alles per Chat.
Diese Seite beschreibt die verfügbaren Tools aus Sicht eines MCP-Clients: welches Tool was macht, welche Parameter es erwartet und was es zurückgibt. Die MCP-Server-URL findest du nach dem Login unter /konto; der Login läuft über OAuth (PKCE) mit Magic-Link oder GitHub.
Öffentliche Tools
Diese Tools kannst du ohne Login aufrufen — nützlich, um sich erst mal einen Überblick zu verschaffen.
list_items
Gibt alle aktiven Geräte zurück. Nur aufrufen wenn der Nutzer explizit die komplette Geräteübersicht möchte — für gezielte Suchen besser search_items verwenden.
id, name, pricePerDay, pricePerWeek, pricePerWeekend, deposit, description, itemUrl, thumbnailUrl search_items
Findet Geräte nach Stichwort oder Konzept. Die Suche versteht auch freiere Formulierungen („etwas um Unkraut zu entfernen"). Standard-Limit: 5 Treffer.
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
query | string | ja | Suchbegriff oder -konzept |
tags | string[] | nein | Nur Geräte mit allen angegebenen Tags |
limit | number | nein | Maximale Trefferzahl (1–20, Standard: 5) |
id, name, pricePerDay, pricePerWeekend, pricePerWeek, tags, score list_sets
Gibt alle verfügbaren Gerätesets zurück. Sets sind Bündel aus mehreren Geräten zu einem gemeinsamen Tagespreis.
id, name, description, pricePerDay, deposit get_item
Zeigt alle Details eines bestimmten Geräts inkl. Bilderliste.
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
id | string | ja | Geräte-ID |
id, name, pricePerDay, pricePerWeek, pricePerWeekend, deposit, description, thumbnailUrl, images[], itemUrl, productUrl check_availability
Prüft, ob ein Gerät oder Set in einem bestimmten Zeitraum verfügbar ist.
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
deviceId | string | bedingt | Geräte-ID (oder setId) |
setId | string | bedingt | Set-ID (oder deviceId) |
startDate | string | ja | Startdatum YYYY-MM-DD |
endDate | string | ja | Enddatum YYYY-MM-DD |
{ available: boolean } Authentifizierte Tools
Diese Tools brauchen ein gültiges Bearer-Token. Ohne Token wird
{ error: "Nicht angemeldet" } zurückgegeben.
Mit dem orangen Rahmen markierte Tools sind zusätzlich nur für den
Vermieter eines bestimmten Geräts nutzbar.
Buchungsverwaltung
create_booking
Erstellt eine Buchungsanfrage. Der Vermieter erhält eine E-Mail mit einem Bestätigungs- und einem Ablehnungs-Link. Genau eines von deviceId oder setId ist erforderlich.
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
deviceId | string | bedingt | Geräte-ID |
setId | string | bedingt | Set-ID |
startDate | string | ja | Startdatum YYYY-MM-DD |
endDate | string | ja | Enddatum YYYY-MM-DD |
firstName | string | ja | Vorname des Mieters |
lastName | string | ja | Nachname des Mieters |
phone | string | ja | Telefonnummer des Mieters |
notes | string | nein | Hinweise zur Buchung |
{ bookingId: string, status: "pending" } get_my_bookings
Zeigt alle Buchungen des eingeloggten Nutzers als Mieter. Bei bestätigten Buchungen werden Abholadresse und Telefonnummer des Vermieters mitgeliefert.
id, deviceId, setId, startDate, endDate, status (+ pickupAddress, ownerPhone bei approved)
cancel_booking
Storniert eine Buchung. Sowohl Mieter als auch Vermieter können jeweils stornieren. Beide Parteien werden per E-Mail benachrichtigt.
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
bookingId | string | ja | ID der Buchung |
{ status: "cancelled" } approve_booking nur Vermieter
Bestätigt eine ausstehende Buchungsanfrage. Nur der Vermieter des betreffenden Geräts darf bestätigen.
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
bookingId | string | ja | ID der Buchung |
{ status: "approved" } reject_booking nur Vermieter
Lehnt eine ausstehende Buchungsanfrage ab. Nur der Vermieter des betreffenden Geräts darf ablehnen.
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
bookingId | string | ja | ID der Buchung |
{ status: "rejected" } get_owner_bookings nur Vermieter
Zeigt alle Buchungen auf den eigenen Geräten (alle Status).
id, deviceId, deviceName, startDate, endDate, firstName, lastName, phone, status Geräteverwaltung
create_item nur Vermieter
Legt ein neues Gerät an. Erfordert den Vermieter-Status (einmalig zu beantragen über request_lender_status).
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
name | string | ja | Name des Geräts |
pricePerDay | number | ja | Tagespreis in Euro |
pricePerWeek | number | nein | Wochenpreis in Euro |
pricePerWeekend | number | nein | Wochenendpreis in Euro |
deposit | number | nein | Kaution in Euro |
productUrl | string | nein | Link zum Produkt |
description | string | nein | Beschreibung |
tags | string[] | nein | Schlagwörter (werden klein geschrieben) |
{ itemId: string } update_item nur Vermieter des Geräts
Aktualisiert ein eigenes Gerät. Alle Parameter außer id sind optional.
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
id | string | ja | Geräte-ID |
name | string | nein | Neuer Name |
pricePerDay | number | nein | Neuer Tagespreis |
pricePerWeek | number | nein | Neuer Wochenpreis |
pricePerWeekend | number | nein | Neuer Wochenendpreis |
deposit | number | nein | Neue Kaution |
description | string | nein | Neue Beschreibung |
active | boolean | nein | Aktiv/Inaktiv schalten |
tags | string[] | nein | Neue Schlagwörter |
thumbnailPath | string | nein | Neuer Thumbnail-Pfad |
{ success: true, item: ... } list_my_items nur Vermieter
Zeigt alle eigenen Geräte (auch inaktive).
id, name, pricePerDay, active, thumbnailUrl u.a.
attach_image_to_item nur Vermieter
Verknüpft ein hochgeladenes Bild (via POST /images/upload) mit einem Gerät und setzt es optional als Thumbnail.
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
itemId | string | ja | Geräte-ID |
imageId | string | ja | Bild-ID (vom Upload zurückgegeben) |
setAsThumbnail | boolean | nein | Als Thumbnail setzen |
{ success: true, imageId, path, url?, thumbnailSet } Profilverwaltung
get_profile
Gibt das eigene Profil zurück, inklusive Vermieter-Status. Nützlich,
um zu prüfen, ob du schon Vermieter bist (lender) oder
eine Vermieter-Anfrage offen hast
(lenderStatus: "pending").
name, email, phone,
addressStreet, addressZip, addressCity,
lender (boolean),
lenderStatus ("approved" | "pending" | "none"),
lenderRequestedAt, profileComplete,
missingProfileFields update_profile
Aktualisiert das eigene Profil. Alle Parameter sind optional.
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
name | string | nein | Anzeigename |
phone | string | nein | Telefonnummer |
addressStreet | string | nein | Straße + Hausnummer |
addressZip | string | nein | Postleitzahl |
addressCity | string | nein | Stadt |
Vermieter werden
request_lender_status
Beantragt die einmalige Freischaltung als Vermieter. Voraussetzung: vollständiges Profil (Name, Telefon, Adresse). Danach schaut ein Mensch kurz drüber und schaltet dich frei oder meldet sich zurück. Zwischen zwei Anfragen liegt ein 1-Stunden-Cooldown.
{ ok: true, message }
oder Fehler bei unvollständigem Profil bzw. aktivem Cooldown.