Vertiefung · Model Context Protocol
.mcp.json, Scopes, Freigabe, echtes Beispiel
3Eigenen Server bauen — einen Service als MCP-Server exponieren (Quarkus)
4Abgrenzung zur CLI — Token Overhead, Entscheidung, Vendor Lock-in
Übung — einen eigenen Tool-Endpoint exponieren
Glossar — Begriffe zum Nachschlagen
MCP (Model Context Protocol) ist ein offenes Protokoll, über das ein Client wie Claude Code strukturiert an fremde Werkzeuge und Daten andockt — einmal gebaut, an jedem Client nutzbar.
Sechs Begriffe genügen, um jede MCP-Config zu lesen — in der Praxis begegnen euch fast nur die ersten drei.
Die Anwendung, in der das Modell läuft — hier Claude Code. Verbindet sich zu Servern.
Ein Prozess, der Fähigkeiten anbietet. Lokal gestartet oder remote erreichbar.
Aufrufbare Funktionen mit Parametern — das, was der Agent tatsächlich ausführt.
Lesbare Inhalte, die der Server bereitstellt — Dokumente, Datensätze, Zustände.
Vom Server mitgelieferte Vorlagen, die der Nutzer auswählen kann.
Fertige, gehostete Anbindungen an Dienste — MCP als Produkt statt Selbstbau.
Ein MCP-Server läuft entweder als lokaler Prozess (stdio) oder als Remote-Dienst (HTTP) — die Config verrät sofort, welcher.
command + args starten einen Kindprozess; Claude Code redet über stdin/stdout — kein Netzwerk.type: "http" + url — Verbindung zu einem laufenden Dienst über das Netz.command drin, ist es lokal; steht url drin, ist es remote..mcp.json: Scopes & FreigabeWo ein Server konfiguriert ist, entscheidet, wer ihn bekommt — und jeder Server wird beim ersten Start einzeln freigegeben.
.mcp.json im Repo-Root, per Versionskontrolle geteilt: das ganze Team bekommt dieselben Server.~/.claude.json), z. B. für Server mit persönlichen Credentials./mcp zeigt jederzeit, welche Server verbunden sind und welche Werkzeuge sie anbieten.
Aus cgsit-finance — genau ein Server, ein lokaler stdio-Prozess, und der aus gutem Grund.
get_best_practices, list_projects, search_documentation, run_target — Wissen nach dem Trainings-Cutoff, das keine CLI so ausliefert. Doku: angular.dev/ai/mcp.command: npx startet ng mcp als Kindprozess; Internet berührt nur der einmalige Paket-Download.Jedes Tool eines Servers trägt einen eindeutigen Namen nach festem Schema — so weiß der Agent, welchen Server er anspricht.
mcp__<server>__<tool> — der Präfix macht sichtbar, woher ein Werkzeug kommt.settings.local.json stehen die erlaubten Tools namentlich — nicht der ganze Server pauschal.Zusatzthema — über das Kern-Curriculum hinaus
Ein eigener MCP-Server lohnt sich erst, wenn ein vorhandenes CLI oder Skill die Aufgabe nicht sauber löst.
Einen MCP-Server bauen heißt: Methoden als Tools deklarieren — Name, Beschreibung, typisierte Parameter, Rückgabewert.
Mit der Quarkus-MCP-Extension wird aus einer annotierten Methode ein Tool — die Fachlogik bleibt euer bestehender Service.
@Tool macht die Methode aufrufbar, @ToolArg beschreibt die Parameter —
mehr braucht ein erstes Tool nicht. Der Service dahinter ist unverändert.
Der fertige stdio-Server wird wie jeder andere in .mcp.json eingetragen —
als command, der euren Prozess startet.
./mvnw package).command-Server eintragen, der die App über stdio startet./mcp zeigt den Server und sein Tool freeSeats.mcp__seminar__freeSeats aufrufen — strukturiert, ohne euren Service als Text zu parsen.
Jeder aktive MCP-Server lädt seine Tool-Definitionen in den Kontext — das kostet, bevor irgendetwas passiert, und in jeder Runde erneut.
Drei Werkzeuge, drei Fragen — die Antwort ergibt sich fast immer aus Ort und Häufigkeit.
| Wenn ich will… | dann | weil |
|---|---|---|
| ein Shell-Kommando einmalig ausführen | CLI | kostet Kontext nur beim Aufruf |
| ein wiederkehrendes Verfahren abrufbar machen | Skill | Anleitung, kein externer Zugriff |
| strukturiert auf ein System außerhalb zugreifen | MCP | strukturierte Schnittstelle statt Textparsen |
| einen eigenen Dienst wiederholt anbinden | MCP (eigener Server) | kein Standard-CLI kennt ihn |
Weil MCP ein offenes Protokoll ist, bindet euch ein selbst gebauter Server an keinen Anbieter — er läuft an jedem MCP-fähigen Client.
1. Nehmt eine bestehende Service-Methode (z. B. freeSeats) und macht sie
mit @Tool zu einem MCP-Tool.
2. Registriert den stdio-Server in einer lokalen .mcp.json und gebt ihn frei.
3. Lasst Claude Code die Frage „wie viele freie Plätze hat Seminar 7?" beantworten —
ohne dass ihr den Endpoint im Prompt nennt.
/mcp listet euren Server samt Tool,
und Claude Code ruft nachweislich mcp__<server>__freeSeats auf, statt zu raten
oder Text zu parsen.
Dauer ca. 30–40 Minuten · Zusatzthema, optional
stdin/stdout statt Netzwerk.
.mcp.json), Local und User (privat).
Alle Rechte vorbehalten
Diese Schulungsunterlagen sind urheberrechtlich geschützt. Vervielfältigung, Weitergabe oder kommerzielle Nutzung — auch in Auszügen — nur mit ausdrücklicher schriftlicher Genehmigung der CGS IT Solutions GmbH.
cgsit-claude-training · Modul 8 · MCP · v0.4.7