Open demo shop: search products, place a 0.05 CHF order, create a PostFinance payment link.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Storniert eine eigene Bestellung, die noch offen oder reserviert ist. Eine Reservation bei PostFinance wird dabei sofort freigegeben (statt erst nach drei Tagen). Nur auf ausdruecklichen Wunsch der Person: erst ohne confirmed_in_chat aufrufen — das Werkzeug nennt, was storniert wuerde —, die Person fragen, und erst nach ihrem Ja mit confirmed_in_chat: true erneut aufrufen. Nur Bestellungen, deren Nummer die Person ausdruecklich nennt; sagt sie «alle» oder nennt keine Nummer, die stornierbaren Nummern aufzaehlen und sie bitten, die gewuenschten Nummern zu nennen. Verlangt das Handle aus create_order oder list_orders (fuer aeltere Bestellungen aus anderen Gespraechen: zuerst list_orders).
Optional: Grund in den Worten der Person, kurz.
Nur true, wenn die Person der Stornierung im Gespraech ausdruecklich zugestimmt hat. Nie selbst setzen.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Storniert eine eigene Bestellung, die noch offen oder reserviert ist. Eine Reservation bei PostFinance wird dabei sofort freigegeben (statt erst nach drei Tagen). Nur auf ausdruecklichen Wunsch der Person: erst ohne confirmed_in_chat aufrufen — das Werkzeug nennt, was storniert wuerde —, die Person fragen, und erst nach ihrem Ja mit confirmed_in_chat: true erneut aufrufen. Nur Bestellungen, deren Nummer die Person ausdruecklich nennt; sagt sie «alle» oder nennt keine Nummer, die stornierbaren Nummern aufzaehlen und sie bitten, die gewuenschten Nummern zu nennen. Verlangt das Handle aus create_order oder list_orders (fuer aeltere Bestellungen aus anderen Gespraechen: zuerst list_orders).
| Argument | Type | Description |
|---|---|---|
| reason | string | Optional: Grund in den Worten der Person, kurz. |
| order_handle* | string | |
| confirmed_in_chat | boolean | Nur true, wenn die Person der Stornierung im Gespraech ausdruecklich zugestimmt hat. Nie selbst setzen. |
{
"type": "object",
"required": [
"order_handle"
],
"properties": {
"reason": {
"type": "string",
"description": "Optional: Grund in den Worten der Person, kurz."
},
"order_handle": {
"type": "string"
},
"confirmed_in_chat": {
"type": "boolean",
"description": "Nur true, wenn die Person der Stornierung im Gespraech ausdruecklich zugestimmt hat. Nie selbst setzen."
}
}
}Legt im elevai-Demoshop eine Bestellung an. Ein Aufruf mit product_id allein genuegt fuer den Anfang: Das Werkzeug prueft selbst, was noch fehlt, und liefert die Geschaeftsbedingungen samt Fassung mit — Nachfragen nach Bedingungen, E-Mail, Namen oder Adresse erledigen sich damit meist von selbst. Fehlt die Zustimmung, steht das in der Antwort; ein zweiter Aufruf mit accept_terms: true und der terms_version aus dieser Antwort schliesst die Bestellung ab (die Fassung stammt immer aus der Antwort, nie aus einer Annahme). Ist der Agent mit einem Kundenkonto verbunden (OAuth), sind Person und Adresse bereits bekannt; liegt zusaetzlich ein Mandat vor, entfaellt die AGB-Rueckfrage ganz. Zurueck kommt ein order_handle fuer create_payment_link; wie es unter einem Mandat weitergeht, steht dort. Demoshop mit Grenzen: Einzelpreis bis 0.05 CHF, Bestellsumme bis 0.25 CHF. Was sonst gilt, steht in den Geschaeftsbedingungen — nicht in deiner Antwort wiederholen.
| Argument | Type | Description |
|---|---|---|
| string | Nur mitgeben, wenn das Werkzeug in einer vorherigen Antwort ausdruecklich danach gefragt hat. Niemals erfinden, niemals einen Platzhalter wie "?" einsetzen, und nie von sich aus danach fragen. Entfaellt ganz, wenn der Agent mit einem Kundenkonto verbunden ist oder ein bestaetigtes login_handle mitgegeben wird. | |
| country | string | Zwei Buchstaben, ISO 3166-1, Vorgabe CH. |
| quantity | integer | |
| last_name | string | |
| first_name | string | |
| product_id* |
Erzeugt zu einer Bestellung eine PostFinance-Checkout-Zahlseite. Verlangt das Handle aus create_order. Der Betrag stammt aus der Bestellung, nicht vom Aufrufer.
| Argument | Type | Description |
|---|---|---|
| method | string | Zahlart: pfpay fuer PostFinance Pay. Ohne Angabe liefert das Werkzeug die Zahlart zur Bestaetigung zurueck, statt eine Zahlseite zu erzeugen. |
| stepup | boolean | Nur true, wenn die Person die Zahlung lieber selbst in der PostFinance App bestaetigen will, statt im Gespraech zuzustimmen. Zusammen mit no_card: liefert den Link zur Zahlseite. |
| confirm | string | Nur von der Zahlkarte selbst gesetzt (Klick auf den Knopf). Nie vom Modell ausfuellen. |
| no_card | boolean | Nur true, wenn die Person sagt, dass KEINE Zahlkarte und kein Knopf angezeigt wird. Dann liefert das Werkzeug einen Link zur Zahlseite (Bestaetigung in der PostFinance App) — auch unter einem Mandat mit Direktzahlung. Sonst weglassen. |
| unattended | boolean | Nur true bei einer autonomen, geplanten Aufgabe, bei der KEIN Mensch im Gespraech ist. Dann bucht ein Mandat mit Direktzahlung ohne Klick. Ist eine Person im Chat, IMMER weglassen. |
| order_handle* | string | Das Handle aus create_order. |
| request_approval | boolean | Nur aus der Zahlkarte. Stoesst die Freigabe in der PostFinance App an, ohne eine Seite zu oeffnen. Verlangt eine Bestellung, fuer die schon ein Zahllink erzeugt wurde. |
Zeigt, mit welchem Kundenkonto dieser Agent verbunden ist und was er darf: Mandat, Hoechstbetraege, verbrauchtes Monatsbudget, freigegebene Kategorien, Art der Zahlungsfreigabe, Laufzeit. Aufrufen, wenn die Person fragt, was der Agent darf, oder bevor eine Bestellung an einer Grenze scheitern koennte. Mandat anlegen, aendern, widerrufen oder Verbindung trennen: https://elevai.ch/demos/woo-shop/wordpress/my-account/agenten/?von=chat
No arguments.
{
"type": "object",
"required": [],
"properties": {}
}Zeigt den aktuellen Stand einer Bestellung. In dieser Demo ist "reserviert" (on-hold) der Endzustand: der Betrag wird nie eingezogen und die Reservation faellt nach drei Tagen weg. Verlangt das Handle aus create_order.
| Argument | Type | Description |
|---|---|---|
| order_handle* | string |
{
"type": "object",
"required": [
"order_handle"
],
"properties": {
"order_handle": {
"type": "string"
}
}
}Liefert die Einzelheiten zu einem Produkt: Beschreibung, Preis, Lagerstatus, Kategorien und Bild.
| Argument | Type | Description |
|---|---|---|
| product_id* | integer | Die id aus search_products. |
{
"type": "object",
"required": [
"product_id"
],
"properties": {
"product_id": {
"type": "integer",
"description": "Die id aus search_products."
}
}
}Listet die Bestellungen, die Agenten fuer das verbundene Kundenkonto angelegt haben (letzte sieben Tage, neueste zuerst), je mit einem frischen order_handle. Damit lassen sich auch aeltere Bestellungen aus anderen Gespraechen finden, ihr Stand abfragen (get_order_status) und offene oder reservierte stornieren (cancel_order). Bezahlen laesst sich nur eine Bestellung, die hoechstens zwei Stunden alt ist.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Vorgabe 10. |
| status | string | open: nur offene und reservierte (stornierbar). Vorgabe: all. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Vorgabe 10."
},
"status": {
"enum": [
"open",
"all"
],
"type": "string",
"description": "open: nur offene und reservierte (stornierbar). Vorgabe: all."
}
}
}Search the product catalog des elevai-Demoshops by keyword (UCP name; same as search_products). Returns id, name, price, currency, stock and product URL. Without a query: the newest products. No sign-in needed. The id is the product_id for get_product and create_order.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query | string | Suchbegriff, etwa "Kite" oder "Abo". |
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1
},
"query": {
"type": "string",
"description": "Suchbegriff, etwa \"Kite\" oder \"Abo\"."
}
}
}Durchsucht den Katalog des elevai-Demoshops nach einem Begriff und liefert Name, Preis, Waehrung und Produktseite. Ohne Begriff kommen die zuletzt aufgenommenen Produkte.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query | string | Suchbegriff, etwa "Kite" oder "Abo". |
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1
},
"query": {
"type": "string",
"description": "Suchbegriff, etwa \"Kite\" oder \"Abo\"."
}
}
}Haelt die Anfrage offen, bis die Zahlung zu einer Bestellung eingetroffen ist, und meldet dann den Endstand. Eine Runde dauert rund 25 Sekunden; kommt in dieser Zeit nichts an, ist das KEIN Fehler, sondern das Zeichen, sofort die naechste Runde zu starten (hoechstens 5 hintereinander, mit hochgezaehltem attempt). Sinnvoll direkt nach create_payment_link, sobald die Zahlungsaufforderung im Gespraech steht. Grund: Der Chat erfaehrt von einer Zahlung nichts von selbst, und die Bestaetigungsseite von PostFinance fuehrt nicht hierher zurueck. Wer waehrend des Wartens bezahlt und dann in den Chat zurueckkehrt, findet die Bestaetigung bereits vor. Verlangt das Handle aus create_order.
| Argument | Type | Description |
|---|---|---|
| attempt | integer | Die wievielte Warterunde das ist. Erste Runde 1, danach hochzaehlen. Das Werkzeug sagt selbst, wann Schluss ist. |
| max_seconds | integer | Wie lange eine Runde warten soll. Ohne Angabe 25 Sekunden — nicht erhoehen, der Webserver schneidet laengere Anfragen ab. |
| order_handle* | string |
{
"type": "object",
"required": [
"order_handle"
],
"properties": {
"attempt": {
"type": "integer",
"maximum": 5,
"minimum": 1,
"description": "Die wievielte Warterunde das ist. Erste Runde 1, danach hochzaehlen. Das Werkzeug sagt selbst, wann Schluss ist."
},
"max_seconds": {
"type": "integer",
"maximum": 90,
"minimum": 5,
"description": "Wie lange eine Runde warten soll. Ohne Angabe 25 Sekunden — nicht erhoehen, der Webserver schneidet laengere Anfragen ab."
},
"order_handle": {
"type": "string"
}
}
}| integer |
| Die id aus search_products. |
| accept_terms | boolean | Nur true, wenn der Mensch den Geschaeftsbedingungen ausdruecklich zugestimmt hat. Nie selbst setzen. |
| login_handle | string | Nur fuer den alten Anmeldeweg ohne OAuth (Werkzeug start_login, einem verbundenen Agenten gar nicht angeboten). Bist du per OAuth verbunden, lass dieses Feld weg — das Konto steht bereits fest. |
| terms_version | string | Die Fassung, der zugestimmt wurde — woertlich aus der Antwort dieses Werkzeugs. Ohne eine solche Antwort gibt es keine Fassung: dann das Werkzeug erst ohne accept_terms aufrufen. |
{
"type": "object",
"required": [
"product_id"
],
"properties": {
"email": {
"type": "string",
"format": "email",
"description": "Nur mitgeben, wenn das Werkzeug in einer vorherigen Antwort ausdruecklich danach gefragt hat. Niemals erfinden, niemals einen Platzhalter wie \"?\" einsetzen, und nie von sich aus danach fragen. Entfaellt ganz, wenn der Agent mit einem Kundenkonto verbunden ist oder ein bestaetigtes login_handle mitgegeben wird."
},
"country": {
"type": "string",
"description": "Zwei Buchstaben, ISO 3166-1, Vorgabe CH."
},
"quantity": {
"type": "integer",
"default": 1,
"maximum": 5,
"minimum": 1
},
"last_name": {
"type": "string"
},
"first_name": {
"type": "string"
},
"product_id": {
"type": "integer",
"description": "Die id aus search_products."
},
"accept_terms": {
"type": "boolean",
"description": "Nur true, wenn der Mensch den Geschaeftsbedingungen ausdruecklich zugestimmt hat. Nie selbst setzen."
},
"login_handle": {
"type": "string",
"description": "Nur fuer den alten Anmeldeweg ohne OAuth (Werkzeug start_login, einem verbundenen Agenten gar nicht angeboten). Bist du per OAuth verbunden, lass dieses Feld weg — das Konto steht bereits fest."
},
"terms_version": {
"type": "string",
"description": "Die Fassung, der zugestimmt wurde — woertlich aus der Antwort dieses Werkzeugs. Ohne eine solche Antwort gibt es keine Fassung: dann das Werkzeug erst ohne accept_terms aufrufen."
}
}
}| confirmed_in_chat | boolean | Nur true, wenn die Person im Gespraech soeben ausdruecklich Ja gesagt hat auf deine Frage, ob jetzt bezahlt werden soll. Gilt nur unter einem Mandat mit Direktzahlung und nur zusammen mit no_card. Nie selbst setzen, nie annehmen, nie aus dem Zusammenhang erschliessen. |
{
"type": "object",
"required": [
"order_handle"
],
"properties": {
"method": {
"enum": [
"pfpay"
],
"type": "string",
"description": "Zahlart: pfpay fuer PostFinance Pay. Ohne Angabe liefert das Werkzeug die Zahlart zur Bestaetigung zurueck, statt eine Zahlseite zu erzeugen."
},
"stepup": {
"type": "boolean",
"description": "Nur true, wenn die Person die Zahlung lieber selbst in der PostFinance App bestaetigen will, statt im Gespraech zuzustimmen. Zusammen mit no_card: liefert den Link zur Zahlseite."
},
"confirm": {
"type": "string",
"description": "Nur von der Zahlkarte selbst gesetzt (Klick auf den Knopf). Nie vom Modell ausfuellen."
},
"no_card": {
"type": "boolean",
"description": "Nur true, wenn die Person sagt, dass KEINE Zahlkarte und kein Knopf angezeigt wird. Dann liefert das Werkzeug einen Link zur Zahlseite (Bestaetigung in der PostFinance App) — auch unter einem Mandat mit Direktzahlung. Sonst weglassen."
},
"unattended": {
"type": "boolean",
"description": "Nur true bei einer autonomen, geplanten Aufgabe, bei der KEIN Mensch im Gespraech ist. Dann bucht ein Mandat mit Direktzahlung ohne Klick. Ist eine Person im Chat, IMMER weglassen."
},
"order_handle": {
"type": "string",
"description": "Das Handle aus create_order."
},
"request_approval": {
"type": "boolean",
"description": "Nur aus der Zahlkarte. Stoesst die Freigabe in der PostFinance App an, ohne eine Seite zu oeffnen. Verlangt eine Bestellung, fuer die schon ein Zahllink erzeugt wurde."
},
"confirmed_in_chat": {
"type": "boolean",
"description": "Nur true, wenn die Person im Gespraech soeben ausdruecklich Ja gesagt hat auf deine Frage, ob jetzt bezahlt werden soll. Gilt nur unter einem Mandat mit Direktzahlung und nur zusammen mit no_card. Nie selbst setzen, nie annehmen, nie aus dem Zusammenhang erschliessen."
}
}
}