MCP · Lektion 03 · Primitive

Tools, Resources, Prompts — wann was?

Die häufigste Anfänger-Frage im Workshop wird sein: „Soll das ein Tool oder eine Resource sein?“ Diese Lektion gibt dir die Entscheidungsregel.

Dein Gewinn: Du entscheidest in Sekunden, welches Primitive ein gegebener Use-Case braucht — anhand der Frage „wer steuert den Aufruf?“.

1. Die Steuerungs-Achse

Alle drei Primitive stellen Fähigkeiten bereit — der Unterschied ist, wer die Kontrolle hat, wann sie benutzt werden:1

Primitive Gesteuert von Analogie (HTTP) Seiteneffekt?
Tool dem Modell POST / Aktion ja, typisch
Resource der App / Host GET / Lesen nein (idempotent)
Prompt dem User Vorlage / Makro nein (nur Text)

2. Tool — das Modell handelt

Ein Tool ist eine Funktion, die das LLM autonom aufrufen darf, wenn es im Gespräch sinnvoll ist. Es hat ein Input-Schema (JSON Schema) und gibt ein Ergebnis zurück. create_issue, get_pr_diff, run_query — alles Tools. Die zwei zugehörigen Methoden auf dem Wire: tools/list (welche gibt es?) und tools/call (führ dieses aus).

Faustregel: Verändert es etwas oder ruft es eine API mit Parametern? → Tool.

3. Resource — die App liefert Kontext

Eine Resource ist eine lesbare Datenquelle, adressiert über eine URI (z.B. file:///logs/app.log oder greeting://{name}). Wichtig: Resources sind app-controlled — der Host/User entscheidet, welche in den Kontext geladen werden, nicht das Modell autonom. Methoden: resources/list, resources/read, optional resources/subscribe für Live-Updates.1

Faustregel: Reine Daten zum Lesen, kein Seiteneffekt? → Resource.

4. Prompt — der User ruft einen Workflow

Ein Prompt ist eine vordefinierte, parametrisierbare Vorlage, die der User bewusst auslöst — in Claude Code etwa als Slash-Command. Sie kann Argumente haben und expandiert zu einer fertigen Nachricht/Konversation. Methoden: prompts/list, prompts/get.

Faustregel: Ein wiederkehrender User-Workflow als Knopfdruck? → Prompt.

5. Für deinen ersten Server

Fang mit Tools an — das ist der 80%-Fall und das, was Agents am meisten nutzen. Resources und Prompts baust du später drauf (Lektion 7). Ein Server kann alle drei mischen; er muss nur die jeweiligen Capabilities deklarieren (siehe Lektion 2).

6. Mini-Check — interleaved (aus dem Kopf!)

„Lies die Datei README.md ein.“ → welches Primitive?
„Lege ein GitLab-Issue mit Titel X an.“ → welches Primitive?
„/review-pr als Slash-Command für das Team.“ → welches Primitive?

7. Primärquelle

📖 MCP Specification — Server Features (Abschnitte Tools, Resources, Prompts). Die verbindliche Referenz für die Methoden und Schemas jedes Primitivs.

Frag mich: „Gib mir 5 Use-Cases und ich ordne sie zu“ ist eine super Übung, wenn du das im Workshop drillen willst. Sag „weiter“ für Lektion 4 (Transports: STDIO vs Streamable HTTP).

1 — MCP Docs, Server concepts & Spec Server Features: modelcontextprotocol.io/docs/concepts