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.

Keine Parameter
Gibt zurück: Array mit 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.

ParameterTypPflichtBeschreibung
querystringjaSuchbegriff oder -konzept
tagsstring[]neinNur Geräte mit allen angegebenen Tags
limitnumberneinMaximale Trefferzahl (1–20, Standard: 5)
Gibt zurück: Array mit 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.

Keine Parameter
Gibt zurück: Array mit id, name, description, pricePerDay, deposit

get_item

Zeigt alle Details eines bestimmten Geräts inkl. Bilderliste.

ParameterTypPflichtBeschreibung
idstringjaGeräte-ID
Gibt zurück: 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.

ParameterTypPflichtBeschreibung
deviceIdstringbedingtGeräte-ID (oder setId)
setIdstringbedingtSet-ID (oder deviceId)
startDatestringjaStartdatum YYYY-MM-DD
endDatestringjaEnddatum YYYY-MM-DD
Gibt zurück: { 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.

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.

ParameterTypPflichtBeschreibung
deviceIdstringbedingtGeräte-ID
setIdstringbedingtSet-ID
startDatestringjaStartdatum YYYY-MM-DD
endDatestringjaEnddatum YYYY-MM-DD
firstNamestringjaVorname des Mieters
lastNamestringjaNachname des Mieters
phonestringjaTelefonnummer des Mieters
notesstringneinHinweise zur Buchung
Gibt zurück: { 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.

Keine Parameter
Gibt zurück: Array mit 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.

ParameterTypPflichtBeschreibung
bookingIdstringjaID der Buchung
Gibt zurück: { status: "cancelled" }

approve_booking nur Vermieter

Bestätigt eine ausstehende Buchungsanfrage. Nur der Vermieter des betreffenden Geräts darf bestätigen.

ParameterTypPflichtBeschreibung
bookingIdstringjaID der Buchung
Gibt zurück: { status: "approved" }

reject_booking nur Vermieter

Lehnt eine ausstehende Buchungsanfrage ab. Nur der Vermieter des betreffenden Geräts darf ablehnen.

ParameterTypPflichtBeschreibung
bookingIdstringjaID der Buchung
Gibt zurück: { status: "rejected" }

get_owner_bookings nur Vermieter

Zeigt alle Buchungen auf den eigenen Geräten (alle Status).

Keine Parameter
Gibt zurück: Array mit id, deviceId, deviceName, startDate, endDate, firstName, lastName, phone, status

create_item nur Vermieter

Legt ein neues Gerät an. Erfordert den Vermieter-Status (einmalig zu beantragen über request_lender_status).

ParameterTypPflichtBeschreibung
namestringjaName des Geräts
pricePerDaynumberjaTagespreis in Euro
pricePerWeeknumberneinWochenpreis in Euro
pricePerWeekendnumberneinWochenendpreis in Euro
depositnumberneinKaution in Euro
productUrlstringneinLink zum Produkt
descriptionstringneinBeschreibung
tagsstring[]neinSchlagwörter (werden klein geschrieben)
Gibt zurück: { itemId: string }

update_item nur Vermieter des Geräts

Aktualisiert ein eigenes Gerät. Alle Parameter außer id sind optional.

ParameterTypPflichtBeschreibung
idstringjaGeräte-ID
namestringneinNeuer Name
pricePerDaynumberneinNeuer Tagespreis
pricePerWeeknumberneinNeuer Wochenpreis
pricePerWeekendnumberneinNeuer Wochenendpreis
depositnumberneinNeue Kaution
descriptionstringneinNeue Beschreibung
activebooleanneinAktiv/Inaktiv schalten
tagsstring[]neinNeue Schlagwörter
thumbnailPathstringneinNeuer Thumbnail-Pfad
Gibt zurück: { success: true, item: ... }

list_my_items nur Vermieter

Zeigt alle eigenen Geräte (auch inaktive).

Keine Parameter
Gibt zurück: Array mit 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.

ParameterTypPflichtBeschreibung
itemIdstringjaGeräte-ID
imageIdstringjaBild-ID (vom Upload zurückgegeben)
setAsThumbnailbooleanneinAls Thumbnail setzen
Gibt zurück: { success: true, imageId, path, url?, thumbnailSet }

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").

Keine Parameter
Gibt zurück: 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.

ParameterTypPflichtBeschreibung
namestringneinAnzeigename
phonestringneinTelefonnummer
addressStreetstringneinStraße + Hausnummer
addressZipstringneinPostleitzahl
addressCitystringneinStadt
Gibt zurück: Aktualisiertes Profil-Objekt

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.

Keine Parameter
Gibt zurück: { ok: true, message } oder Fehler bei unvollständigem Profil bzw. aktivem Cooldown.