Das Gruppenreise-Team der Nordlicht Reisen GmbH greift über drei MCP-Server auf seine Werkzeuge zu (M-04, F-02): lieferanten (Hotel- und Fährenverfügbarkeit) als Azure Functions, rechner (Preisregeln) als ASP.NET Core auf einer Container App, buchungen aus AI-103; alle drei hinter API Management. Die Lektion baut die Server, den Client und das Tor davor, und sie fragt: Wo läuft was, wer darf hinein, und was ist bei Learn noch nicht entschieden?
Vorwissen. „KI-Track, Lektion T8.1“ baut einen MCP-Server in .NET, „T8.2“ den Client und den Agenten mit fremdem Server als fremdem Code, „T8.3“ Rechte für Werkzeuge und MCP über HTTP. „AI-103, Lektion 2.4“ zeigt das MCP-Werkzeug eines Foundry-Agenten mit Freigabe. Das wird nicht wiederholt. Neu: Hosting, das Tor, der Client mit Kopfzeile je Lauf.
Neu in dieser Lektion. Die Function App heißt func-lieferanten, die Container App app-rechner, die API-Management-Instanz apim-nordlicht (je Umgebung in rg-ai500-<umgebung>, M-09). Die Server liegen hinter den Pfaden /lieferanten, /rechner und /buchungen. lieferanten bietet verfuegbarkeit_lesen (lesend, A0) und vorreservieren (ändernd, A2, Lektion 2.6); rechner bietet preis_berechnen (lesend). Unser Code nutzt die Server mit einem MCP-Client; er sendet die Kopfzeile x-mandant-id mit der mandantId des Laufs (M-07, M-11).
Die Anforderung
Alle Zahlen sind Annahmen der Aufgabe.
| Nr. | Anforderung | Art | Messgröße | Gewicht | Quelle |
|---|---|---|---|---|---|
| 2.7-01 | Jeder Aufruf erreicht die Server nur über API Management. | R | 0 Aufrufe an die Adresse der App | Muss | F-02, F-04 |
| 2.7-02 | Jede Anfrage trägt die mandantId des Laufs; ohne sie antwortet der Server mit Fehler. |
R | 0 Antworten ohne Kennung | Muss | M-07 |
| 2.7-03 | Ein Agent sieht nur die Werkzeuge seiner Rolle. | R | feste Liste je Rolle | Muss | F-04 |
| 2.7-04 | Lesende Werkzeuge sind als lesend gekennzeichnet; das ersetzt keine Freigabe. | R | A2 nur mit Freigabe | Muss | M-05 |
| 2.7-05 | Ein Aufruf bleibt unter der Zeitgrenze des Dienstes. | Q | unter 100 Sekunden | Soll | Learn |
| 2.7-06 | Server laufen lokal ohne Konto und sind testbar. | Q | dotnet run und Client |
Soll | F-06 |