Wiederverwendbare Prompt-Vorlagen und Workflows erstellenPrompts ermöglichen es Servern, wiederverwendbare Prompt-Vorlagen und Workflows zu definieren, die Clients den Benutzern und LLMs leicht zugänglich machen können. Sie bieten eine leistungsstarke Möglichkeit, gängige LLM-Interaktionen zu standardisieren und zu teilen.Prompts sind benutzergesteuert konzipiert, d. h. sie werden von Servern an Clients weitergegeben, wobei der Benutzer sie explizit auswählen und verwenden kann.Prompts in MCP sind vordefinierte Vorlagen, die Folgendes können:Dynamische Argumente akzeptieren
Kontext aus Ressourcen einbeziehen
Mehrere Interaktionen verketten
Spezifische Workflows steuern
Als UI-Elemente (wie Slash-Befehle) angezeigt werden
Jeder Prompt wird definiert mit:Clients können verfügbare Prompts über den prompts/list-Endpunkt entdecken:Um einen Prompt zu verwenden, senden Clients eine prompts/get-Anfrage:Prompts können dynamisch sein und Folgendes beinhalten:{
"name": "analyze-project",
"description": "Projektprotokolle und Code analysieren",
"arguments": [
{
"name": "timeframe",
"description": "Zeitraum zur Analyse von Protokollen",
"required": true
},
{
"name": "fileUri",
"description": "URI der zu überprüfenden Codedatei",
"required": true
}
]
}
Bei der Bearbeitung der prompts/get-Anfrage:{
"messages": [
{
"role": "user",
"content": {
"type": "text",
"text": "Analysieren Sie diese Systemprotokolle und die Codedatei auf Probleme:"
}
},
{
"role": "user",
"content": {
"type": "resource",
"resource": {
"uri": "logs://recent?timeframe=1h",
"text": "[2024-03-14 15:32:11] ERROR: Connection timeout in network.py:127\n[2024-03-14 15:32:15] WARN: Retrying connection (attempt 2/3)\n[2024-03-14 15:32:20] ERROR: Max retries exceeded",
"mimeType": "text/plain"
}
}
},
{
"role": "user",
"content": {
"type": "resource",
"resource": {
"uri": "file:///path/to/code.py",
"text": "def connect_to_service(timeout=30):\n retries = 3\n for attempt in range(retries):\n try:\n return establish_connection(timeout)\n except TimeoutError:\n if attempt == retries - 1:\n raise\n time.sleep(5)\n\ndef establish_connection(timeout):\n # Connection implementation\n pass",
"mimeType": "text/x-python"
}
}
}
]
}
Hier ist ein vollständiges Beispiel für die Implementierung von Prompts in einem MCP-Server:Bei der Implementierung von Prompts:1.
Verwenden Sie klare, beschreibende Prompt-Namen
2.
Geben Sie detaillierte Beschreibungen für Prompts und Argumente an
3.
Validieren Sie alle erforderlichen Argumente
4.
Behandeln Sie fehlende Argumente auf elegante Weise
5.
Erwägen Sie die Versionierung für Prompt-Vorlagen
6.
Cachen Sie dynamische Inhalte, wenn dies angebracht ist
7.
Implementieren Sie die Fehlerbehandlung
8.
Dokumentieren Sie die erwarteten Argumentformate
9.
Erwägen Sie die Zusammensetzbarkeit von Prompts
10.
Testen Sie Prompts mit verschiedenen Eingaben
Prompts können in Client-UIs wie folgt angezeigt werden:Server können Clients über Prompt-Änderungen benachrichtigen:1.
Server-Funktion: prompts.listChanged
2.
Benachrichtigung: notifications/prompts/list_changed
3.
Client ruft die Prompt-Liste erneut ab
Bei der Implementierung von Prompts:Validieren Sie alle Argumente
Bereinigen Sie Benutzereingaben
Erwägen Sie die Ratenbegrenzung
Implementieren Sie Zugriffskontrollen
Überwachen Sie die Prompt-Nutzung
Behandeln Sie sensible Daten angemessen
Validieren Sie generierte Inhalte
Implementieren Sie Timeouts
Erwägen Sie Prompt-Injection-Risiken
Dokumentieren Sie die Sicherheitsanforderungen
Modified at 2025-03-13 04:01:28