Der letzte Schritt beim Aufbau unseres MCP-Clients ist die Implementierung der Prompt-Funktionalität. Dies ermöglicht es uns, alle verfügbaren Prompts vom Server aufzulisten und bestimmte Prompts mit interpolierten Variablen abzurufen.
Implementierung von List Prompts
Die Methode list_prompts ist unkompliziert. Wir rufen die List-Prompts-Methode der Session auf und geben die Prompts zurück:
async def list_prompts(self) -> list[types.Prompt]:
result = await self.session().list_prompts()
return result.promptsAbrufen einzelner Prompts
Die Methode get_prompt ist interessanter, da sie die Interpolation von Argumenten übernimmt. Wenn wir einen bestimmten Prompt anfordern, übergeben wir Argumente, die in die Prompt-Funktion eingefügt werden. Wenn unser Server beispielsweise einen „format"-Prompt hat, der einen Parameter doc_id erwartet, wird dieser Wert durchgereicht und in den eigentlichen Prompt-Text interpoliert.
async def get_prompt(self, prompt_name, args: dict[str, str]):
result = await self.session().get_prompt(prompt_name, args)
return result.messagesDie Methode gibt Nachrichten zurück, die eine Konversation bilden, die direkt an Claude übergeben werden kann.
Prompts in Aktion testen
Wenn du den Client ausführst und einen Schrägstrich eingibst, siehst du verfügbare Prompts als Befehle. Die Auswahl eines Prompts wie „format" fordert dich auf, aus verfügbaren Dokumenten zu wählen. Das System macht dann Folgendes:
- Es nimmt den Prompt mit der interpolierten Dokument-ID
- Es übergibt ihn direkt als Benutzernachricht an Claude
- Claude erhält sowohl die Anweisungen als auch die Dokument-ID
- Claude nutzt verfügbare Tools, um den Dokumentinhalt abzurufen
- Claude antwortet mit dem neu formatierten Ergebnis

Wie Prompts funktionieren
Prompts definieren eine Reihe von Benutzer- und Assistentennachrichten, die vom Client verwendet werden können. Diese Prompts sollten von hoher Qualität, gut getestet und relevant für den Gesamtzweck deines MCP-Servers sein.

Der Workflow ist:
- Schreibe und evaluiere einen Prompt, der für den Zweck deines MCP-Servers relevant ist
- Definiere den Prompt innerhalb deines MCP-Servers mit dem Decorator
@mcp.prompt - Dein Client kann diesen Prompt jederzeit anfordern
- Stelle beim Anfordern des Prompts Argumente bereit, die als Keyword-Argumente an die Prompt-Funktion übergeben werden
- Die Funktion verwendet diese Argumente, um den Prompt-Inhalt anzupassen
Dieses System erzeugt wiederverwendbare, parametrisierte Prompts, die über verschiedene Clients und Anwendungsfälle hinweg geteilt werden können, wodurch dein MCP-Server vielseitiger und leistungsfähiger wird.