Wird geladen

Prompts in MCP-Servern ermöglichen es dir, vorgefertigte, hochwertige Anweisungen zu definieren, die Clients verwenden können, anstatt ihre eigenen Prompts von Grund auf zu schreiben. Betrachte sie als sorgfältig ausgearbeitete Vorlagen, die bessere Ergebnisse liefern als das, was Nutzer selbst erstellen könnten.

Warum Prompts verwenden?

Angenommen, du möchtest, dass Claude ein Dokument in Markdown umformatiert. Ein Nutzer könnte einfach „convert report.pdf to markdown" eingeben, und das würde gut funktionieren. Aber er würde wahrscheinlich viel bessere Ergebnisse mit einem gründlich getesteten Prompt erzielen, der spezifische Anweisungen zu Formatierung, Struktur und Ausgabeanforderungen enthält.

Der einzeilige Prompt des Nutzers neben einem getesteten Prompt, der eine Rolle für die Dokumentkonvertierung, Formatierungsregeln und Analyse-Tags festlegt.

Die zentrale Erkenntnis ist, dass Nutzer diese Aufgaben zwar selbst bewältigen können, aber konsistentere und hochwertigere Ergebnisse erzielen, wenn sie Prompts verwenden, die von den Autoren des MCP-Servers sorgfältig entwickelt und getestet wurden.

Wie Prompts funktionieren

Prompts definieren eine Reihe von Nutzer- und Assistenten-Nachrichten, die Clients direkt verwenden können. Wenn ein Client einen Prompt anfordert, gibt dein Server eine Liste von Nachrichten zurück, die direkt an Claude gesendet werden können.

Ein MCP-Server mit einem Prompt namens „format", dessen Funktion format_document eine Liste von Nachrichten zurückgibt, die unten dargestellt ist.

Die grundlegende Struktur sieht folgendermaßen aus:

  • Definiere Prompts mit dem Decorator @mcp.prompt()
  • Füge für jeden Prompt einen Namen und eine Beschreibung hinzu
  • Gib eine Liste von Nachrichten zurück, die den vollständigen Prompt bilden
  • Diese Prompts sollten hochwertig, gut getestet und relevant für den Zweck deines MCP-Servers sein

Einen Format-Befehl erstellen

So implementierst du einen Prompt zur Dokumentformatierung. Zunächst musst du die grundlegenden Nachrichtentypen importieren:

python
from mcp.server.fastmcp.prompts import base

Definiere dann deine Prompt-Funktion:

python
@mcp.prompt(
    name="format",
    description="Rewrites the contents of the document in Markdown format."
)
def format_document(
    doc_id: str = Field(description="Id of the document to format")
) -> list[base.Message]:
    prompt = f"""
Your goal is to reformat a document to be written with markdown syntax.

The id of the document you need to reformat is:

{doc_id}


Add in headers, bullet points, tables, etc as necessary. Feel free to add in extra formatting.
Use the 'edit_document' tool to edit the document. After the document has been reformatted...
"""
    
    return [
        base.UserMessage(prompt)
    ]

Deine Prompts testen

Du kannst Prompts mit dem MCP Inspector testen. Navigiere zum Bereich „Prompts", wähle deinen Prompt aus und gib alle erforderlichen Parameter an. Der Inspector zeigt dir die generierten Nachrichten, die an Claude gesendet würden.

MCP Inspector zeigt den Prompt „format" mit doc_id outlook.pdf und das Ergebnis von Get Prompt, eine Nachricht mit der Rolle „user".

So kannst du überprüfen, ob dein Prompt Variablen korrekt interpoliert und die erwartete Nachrichtenstruktur erzeugt, bevor du ihn in einer echten Anwendung einsetzt.

Best Practices

Beim Erstellen von Prompts für deinen MCP-Server:

  • Konzentriere dich auf Aufgaben, die für den Zweck deines Servers zentral sind
  • Schreibe detaillierte, spezifische Anweisungen statt vager Anfragen
  • Teste deine Prompts gründlich mit unterschiedlichen Eingaben
  • Füge klare Beschreibungen hinzu, damit Nutzer verstehen, was jeder Prompt tut
  • Überlege, wie der Prompt mit den Tools und Ressourcen deines Servers zusammenarbeitet

Denke daran, dass Prompts einen Mehrwert bieten sollen, den Nutzer nicht ohne Weiteres selbst erzielen könnten – sie sollten deine Expertise in dem Bereich widerspiegeln, den dein MCP-Server abdeckt.