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

Als Vermieter kannst du Zeiträume auf deinen Geräten sperren, wenn du das Gerät selbst brauchst oder wenn du es gerade über eine andere Plattform vermietet hast. Gesperrte Zeiträume erscheinen im öffentlichen Kalender als belegt und verhindern neue Buchungsanfragen.

block_period nur Vermieter des Geräts

Sperrt einen Zeitraum auf einem deiner Geräte. Überschneidet sich der Zeitraum mit einer bestehenden Buchung oder Sperre, wird abgelehnt.

ParameterTypPflichtBeschreibung
deviceIdstringjaGeräte-ID
startDatestringjaStartdatum YYYY-MM-DD
endDatestringjaEnddatum YYYY-MM-DD
reasonstringneinInterner Grund (z.B. „Eigennutzung", nur für dich sichtbar)
Gibt zurück: { blockId, deviceId, startDate, endDate, reason }

unblock_period nur Vermieter des Geräts

Hebt eine eigene Sperre wieder auf. Fremde Sperren können nicht aufgehoben werden.

ParameterTypPflichtBeschreibung
blockIdstringjaID der Sperre
Gibt zurück: { ok: true }

list_my_blocks nur Vermieter

Zeigt alle eigenen Sperren auf allen eigenen Geräten.

Keine Parameter
Gibt zurück: Array mit id, deviceId, deviceName, startDate, endDate, reason

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.