Zum Inhalt springen

3. Semester · Zusatz-Unterrichtsblock · 90 Minuten

Model Context Protocol (MCP)

Wie KI-Anwendungen über einen einheitlichen Standard auf Werkzeuge, Datenquellen und wiederverwendbare Prompts zugreifen – von der Architektur bis zum ersten eigenen Python-Tool.

Kursinhalte und Ablauf

Dieser Unterrichtsblock ist für zwei Schulstunden (90 Minuten) geplant. Am Ende könnt ihr MCP erklären, Host, Client und Server unterscheiden, Tools, Resources und Prompts zuordnen sowie ein einfaches MCP-Tool in Python entwerfen.

ZeitPhaseInhalt
0–10 Min.EinstiegWarum ein KI-Modell ohne Schnittstellen keine Dateien lesen oder Systeme bedienen kann
10–25 Min.GrundlagenDefinition, Nutzen und Abgrenzung zu API und LLM
25–40 Min.ArchitekturHost, Client, Server sowie Tools, Resources und Prompts
40–50 Min.Übung 1MCP-Bausteine richtig zuordnen
50–75 Min.PraxisEin kleines MCP-Tool planen und in Python umsetzen
75–85 Min.SicherheitBerechtigungen, Freigaben und sichere Server
85–90 Min.AbschlussExit-Ticket und Ergebnissicherung

Lernziele

  • Ihr erklärt MCP in eigenen Worten.
  • Ihr beschreibt den Weg von einer Nutzeranfrage bis zum Werkzeugergebnis.
  • Ihr unterscheidet Tool, Resource und Prompt.
  • Ihr erkennt typische Sicherheitsrisiken.
  • Ihr erstellt ein minimales MCP-Tool mit Python.

Was ist MCP?

MCP steht für Model Context Protocol. Es ist ein offener Standard, mit dem KI-Anwendungen kontrolliert auf externe Systeme zugreifen können. Solche Systeme können Dateien, Datenbanken, Suchdienste, Kalender, Entwicklungswerkzeuge oder eigene Unternehmensanwendungen sein.

Merksatz: MCP ist wie ein einheitlicher Anschluss für KI-Anwendungen. Ein MCP-Server beschreibt, welche Daten und Aktionen er anbietet. Eine kompatible KI-Anwendung kann diese Angebote entdecken und verwenden.

Warum braucht man MCP?

Ein Sprachmodell erzeugt zunächst nur Text. Es kennt nicht automatisch den aktuellen Inhalt einer Datei und kann nicht selbstständig einen Kalendereintrag anlegen. Über MCP erhält die KI klar beschriebene und begrenzte Fähigkeiten.

  • Ohne MCP: Für jedes System wird eine eigene, individuelle Integration programmiert.
  • Mit MCP: Ein Server stellt seine Fähigkeiten standardisiert bereit und kann von unterschiedlichen MCP-Hosts genutzt werden.
  • Wichtig: MCP ersetzt weder das Sprachmodell noch die eigentliche API. Es standardisiert die Kommunikation dazwischen.

Ein einfaches Beispiel

Die Anfrage „Welche Aufgaben sind heute noch offen?“ kann ein Sprachmodell allein nicht zuverlässig beantworten. Ein Aufgabenverwaltungs-MCP-Server könnte jedoch eine Resource mit Projektdaten und ein Tool zum Suchen offener Aufgaben anbieten. Die KI wählt die passende Fähigkeit, erhält das Ergebnis und formuliert daraus eine verständliche Antwort.

Erklärgrafik: Die MCP-Architektur

Der Host ist die KI-Anwendung. Er koordiniert das Sprachmodell und einen eigenen MCP-Client je verbundenem Server. Der MCP-Server kapselt den Zugriff auf externe Systeme und gibt nur klar definierte Fähigkeiten frei.

MCP-Architektur: Nutzer, MCP-Host mit Sprachmodell und Client, MCP-Server sowie externe Dateien, Datenbanken und APIs

Erklärgrafik: Tools, Resources und Prompts

Die drei zentralen serverseitigen Bausteine haben verschiedene Aufgaben: Tools führen Aktionen aus, Resources liefern Kontext und Prompts stellen wiederverwendbare Anleitungen bereit.

Die drei MCP-Bausteine: Tools für Aktionen, Resources für Kontextdaten und Prompts für wiederverwendbare Anleitungen

Erklärgrafik 3

Vom Auftrag zum Ergebnis

MCP trennt Sprachverständnis, Verbindungsverwaltung und eigentliche Programmlogik.

  1. 1. Nutzerauftrag

    Der Nutzer beschreibt sein Ziel in natürlicher Sprache.

    Ergebnis: Ziel ist bekannt

  2. 2. Fähigkeiten entdecken

    Der Client fragt ab, welche Tools, Resources und Prompts der Server anbietet.

    Ergebnis: Angebote sind bekannt

  3. 3. Werkzeug auswählen

    Die KI-Anwendung wählt eine passende Fähigkeit und bereitet die Argumente vor.

    Ergebnis: Strukturierter Aufruf

  4. 4. Freigabe prüfen

    Bei sensiblen Aktionen werden Berechtigung und gegebenenfalls Nutzerbestätigung geprüft.

    Ergebnis: Aufruf ist erlaubt

  5. 5. Server ausführen

    Der MCP-Server validiert die Eingaben und spricht das externe System an.

    Ergebnis: Strukturiertes Ergebnis

  6. 6. Antwort formulieren

    Das Ergebnis wird in den Gesprächskontext übernommen und verständlich erklärt.

    Ergebnis: Antwort für den Nutzer

Transport, Protokoll und Sicherheit

Wie werden Nachrichten übertragen?

TransportTypischer EinsatzEigenschaft
stdioLokaler MCP-ServerKommunikation über Standardeingabe und Standardausgabe zwischen zwei Prozessen
Streamable HTTPRemote-MCP-ServerHTTP POST; optional Streaming über Server-Sent Events; Authentifizierung für entfernte Systeme

Auf der Datenebene verwendet MCP strukturierte JSON-RPC-2.0-Nachrichten. Vor der Nutzung kann der Client die Fähigkeiten des Servers entdecken. Dadurch muss er nicht raten, welche Werkzeuge existieren oder welche Parameter sie benötigen.

Sicherheitsregeln

  • Nur MCP-Server aus vertrauenswürdigen Quellen verbinden.
  • Nach dem Prinzip der minimalen Rechte arbeiten: nur notwendige Ordner, Daten und Aktionen freigeben.
  • Schreib-, Lösch- und Versandaktionen vor der Ausführung sichtbar bestätigen lassen.
  • Zugangsdaten nie fest in den Quellcode schreiben; sichere Umgebungsvariablen oder einen Secret-Speicher verwenden.
  • Eingaben serverseitig validieren und Ausgaben protokollieren, ohne Geheimnisse in Logs zu speichern.
  • Bei einem stdio-Server keine normalen print()-Ausgaben verwenden, weil stdout für die Protokollnachrichten gebraucht wird. Logs gehören nach stderr.

Grundregel: Ein MCP-Server läuft mit echten Rechten. Je mächtiger ein Tool ist, desto strenger müssen Prüfung, Freigabe und Protokollierung sein.

Praxis: ein minimales MCP-Tool mit Python

Das folgende Beispiel stellt ein Tool namens addiere bereit. Python-Typangaben und der Docstring helfen dem SDK dabei, eine verständliche Werkzeugbeschreibung zu erzeugen.

Projekt vorbereiten

Terminal
uv init schul-mcp
cd schul-mcp
uv venv
uv add "mcp[cli]"

Datei server.py

from mcp.server import MCPServer

mcp = MCPServer("schul-mcp")

@mcp.tool()
async def addiere(a: float, b: float) -> float:
    """Addiert zwei Zahlen."""
    return a + b

if __name__ == "__main__":
    mcp.run(transport="stdio")

Start mit uv run server.py. Bei stdio bleibt das Programm anschließend scheinbar still, weil es auf Protokollnachrichten eines MCP-Clients wartet. Zum Prüfen kann der MCP Inspector oder ein bereits eingerichteter MCP-Host verwendet werden.

Was entsteht automatisch?

  • Werkzeugname: addiere
  • Parameter: a und b als Zahlen
  • Beschreibung: aus dem Docstring
  • Rückgabewert: eine Zahl

Übungsaufgaben – Grundlagen

Aufgabe 1: Tool, Resource oder Prompt? (10 Minuten)

Ordnet jede Fähigkeit einem der drei MCP-Bausteine zu und begründet eure Entscheidung mit einem Satz.

  1. Den Inhalt einer Schulordnung als PDF bereitstellen
  2. Einen Kalendereintrag anlegen
  3. Eine Vorlage für die strukturierte Zusammenfassung einer Unterrichtsstunde anbieten
  4. Den aktuellen Lagerbestand aus einer Datenbank abrufen
  5. Eine E-Mail versenden
  6. Eine wiederverwendbare Code-Review-Anweisung bereitstellen

Abgabe: Tabelle mit Beispiel, Zuordnung und Begründung.

Aufgabe 2: Entwerft ein MCP-Tool (10 Minuten)

Entwerft in Zweiergruppen ein Tool für den Schulalltag, zum Beispiel note_speichern, raum_finden oder termin_anlegen. Definiert:

  • einen eindeutigen Werkzeugnamen,
  • eine kurze Beschreibung,
  • notwendige Eingabeparameter mit Datentypen,
  • den Rückgabewert,
  • mögliche Fehlerfälle,
  • ob vor der Ausführung eine Bestätigung nötig ist.

Zusatzfrage: Welche Daten dürfte euer Tool ausdrücklich nicht erhalten?

Übungsaufgaben – Umsetzung und Sicherheit

Aufgabe 3: Erweitert den Python-Server (25 Minuten)

Übernehmt den Startercode und ergänzt mindestens zwei weitere Tools:

  1. multipliziere(a, b) gibt das Produkt zweier Zahlen zurück.
  2. begruesse(name) gibt eine freundliche Begrüßung zurück.
  3. Freiwillig: teile(a, b) verhindert eine Division durch null und liefert eine verständliche Fehlermeldung.

Anforderungen

  • Jedes Tool besitzt passende Typangaben.
  • Jedes Tool besitzt einen klaren Docstring.
  • Werkzeugnamen beschreiben die Aktion eindeutig.
  • Mindestens ein möglicher Fehler wird kontrolliert behandelt.

Ergebnissicherung: Notiert für jedes Tool Name, Eingaben, Ausgabe und einen Testfall.

Aufgabe 4: Sicherheitsprüfung (10 Minuten)

Bewertet die folgenden Situationen mit unbedenklich, prüfen oder gefährlich. Begründet jede Entscheidung.

  • Ein unbekannter lokaler Server verlangt Zugriff auf den gesamten persönlichen Benutzerordner.
  • Ein Lesetool darf ausschließlich einen freigegebenen Kursordner öffnen.
  • Ein Tool löscht Dateien sofort, ohne den Zielpfad anzuzeigen.
  • Ein API-Schlüssel steht direkt im öffentlich geteilten Python-Code.
  • Vor dem E-Mail-Versand werden Empfänger und Inhalt angezeigt und bestätigt.

Abschluss: Formuliert drei Regeln für einen sicheren MCP-Server.

Abschluss und Quellen

Exit-Ticket (5 Minuten)

  1. Erkläre MCP in höchstens zwei Sätzen.
  2. Nenne den Unterschied zwischen einem Tool und einer Resource.
  3. Nenne eine Sicherheitsmaßnahme, die du bei einem MCP-Server immer prüfen würdest.

Das Wichtigste in Kürze

  • MCP ist ein offener Standard zur Verbindung von KI-Anwendungen mit Daten und Aktionen.
  • Ein Host verwaltet MCP-Clients; jeder Client verbindet sich mit einem MCP-Server.
  • Server können Tools, Resources und Prompts bereitstellen.
  • Lokale Verbindungen nutzen häufig stdio, entfernte Server häufig Streamable HTTP.
  • Standardisierung ersetzt keine Sicherheitsprüfung.

Weiterführende offizielle Quellen

Fachstand: September 2026, Protokollfassung 2026-07-28.

Diese Website verwendet notwendige Speicherung fuer Ihre Auswahl. Optionale Dienste werden erst nach Ihrer Einwilligung geladen.

Kategorien