Leitfaden zur MCP-Serverentwicklung
Überblick
Erstellen Sie MCP (Model Context Protocol)-Server, die es LLMs ermöglichen, mit externen Diensten durch gut entworfene Werkzeuge zu interagieren. Die Qualität eines MCP-Servers wird daran gemessen, wie gut er es LLMs ermöglicht, reale Aufgaben zu erledigen.
Prozess
🚀 Hochrangiger Arbeitsablauf
Die Erstellung eines hochwertigen MCP-Servers umfasst vier Hauptphasen:
Phase 1: Tiefgehende Recherche und Planung
1.1 Modernes MCP-Design verstehen
API-Abdeckung vs. Workflow-Werkzeuge: Bringen Sie eine umfassende Abdeckung der API-Endpunkte mit spezialisierten Workflow-Werkzeugen ins Gleichgewicht. Workflow-Werkzeuge können für bestimmte Aufgaben bequemer sein, während eine umfassende Abdeckung den Agenten die Flexibilität gibt, Operationen zu kombinieren. Die Leistung variiert je nach Client – einige Clients profitieren von Code-Ausführung, die grundlegende Werkzeuge kombiniert, während andere mit höherwertigen Workflows besser arbeiten. Wenn Sie unsicher sind, priorisieren Sie eine umfassende API-Abdeckung.
Werkzeugbenennung und Auffindbarkeit:
Klare, aussagekräftige Werkzeugnamen helfen Agenten, die richtigen Werkzeuge schnell zu finden. Verwenden Sie konsistente Präfixe (z. B. github_create_issue, github_list_repos) und handlungsorientierte Namen.
Kontextmanagement: Agenten profitieren von präzisen Werkzeugbeschreibungen und der Möglichkeit, Ergebnisse zu filtern/zu paginieren. Entwerfen Sie Werkzeuge, die fokussierte, relevante Daten zurückgeben. Einige Clients unterstützen die Code-Ausführung, die Agenten helfen kann, Daten effizient zu filtern und zu verarbeiten.
Aktionsorientierte Fehlermeldungen: Fehlermeldungen sollten Agenten mit spezifischen Vorschlägen und nächsten Schritten zu Lösungen führen.
1.2 MCP-Protokolldokumentation studieren
Navigieren Sie in der MCP-Spezifikation:
Beginnen Sie mit der Sitemap, um relevante Seiten zu finden: https://modelcontextprotocol.io/sitemap.xml
Rufen Sie dann bestimmte Seiten mit dem Suffix .md für das Markdown-Format ab (z. B. https://modelcontextprotocol.io/specification/draft.md).
Wichtige Seiten zum Überprüfen:
- Spezifikationsüberblick und Architektur
- Transportmechanismen (streamable HTTP, stdio)
- Definitionen von Werkzeugen, Ressourcen und Prompts
1.3 Framework-Dokumentation studieren
Empfohlener Stack:
- Sprache: TypeScript (hochwertige SDK-Unterstützung und gute Kompatibilität in vielen Ausführungsumgebungen, z. B. MCPB. Außerdem sind KI-Modelle gut darin, TypeScript-Code zu generieren, was von seiner breiten Nutzung, statischen Typisierung und guten Linting-Werkzeugen profitiert)
- Transport: Streamable HTTP für Remote-Server, unter Verwendung von zustandslosem JSON (einfacher zu skalieren und zu warten, im Gegensatz zu zustandsbehafteten Sitzungen und Streaming-Antworten). stdio für lokale Server.
Framework-Dokumentation laden:
- MCP Best Practices: 📋 Best Practices anzeigen - Kernrichtlinien
Für TypeScript (empfohlen):
- TypeScript SDK: Verwenden Sie WebFetch, um
https://raw.githubusercontent.com/modelcontextprotocol/typescript-sdk/main/README.mdzu laden - ⚡ TypeScript-Leitfaden - TypeScript-Muster und Beispiele
Für Python:
- Python SDK: Verwenden Sie WebFetch, um
https://raw.githubusercontent.com/modelcontextprotocol/python-sdk/main/README.mdzu laden - 🐍 Python-Leitfaden - Python-Muster und Beispiele
1.4 Planen Sie Ihre Implementierung
Die API verstehen: Überprüfen Sie die API-Dokumentation des Dienstes, um wichtige Endpunkte, Authentifizierungsanforderungen und Datenmodelle zu identifizieren. Verwenden Sie bei Bedarf Websuche und WebFetch.
Werkzeugauswahl: Priorisieren Sie eine umfassende API-Abdeckung. Listen Sie die zu implementierenden Endpunkte auf, beginnend mit den häufigsten Operationen.
Phase 2: Implementierung
2.1 Projektstruktur einrichten
Siehe sprachspezifische Leitfäden für die Projekteinrichtung:
- ⚡ TypeScript-Leitfaden - Projektstruktur, package.json, tsconfig.json
- 🐍 Python-Leitfaden - Modulorganisation, Abhängigkeiten
2.2 Kerninfrastruktur implementieren
Gemeinsame Hilfsprogramme erstellen:
- API-Client mit Authentifizierung
- Hilfsprogramme zur Fehlerbehandlung
- Antwortformatierung (JSON/Markdown)
- Paginierungsunterstützung
2.3 Werkzeuge implementieren
Für jedes Werkzeug:
Eingabeschema:
- Verwenden Sie Zod (TypeScript) oder Pydantic (Python)
- Fügen Sie Einschränkungen und klare Beschreibungen hinzu
- Fügen Sie Beispiele in Feldbeschreibungen hinzu
Ausgabeschema:
- Definieren Sie
outputSchemawo möglich für strukturierte Daten - Verwenden Sie
structuredContentin Werkzeugantworten (TypeScript SDK-Funktion) - Hilft Clients, Werkzeugausgaben zu verstehen und zu verarbeiten
Werkzeugbeschreibung:
- Präzise Zusammenfassung der Funktionalität
- Parameterbeschreibungen
- Rückgabetyp-Schema
Implementierung:
- Async/await für I/O-Operationen
- Ordnungsgemäße Fehlerbehandlung mit aktionsorientierten Meldungen
- Paginierung unterstützen, wo anwendbar
- Sowohl Textinhalte als auch strukturierte Daten zurückgeben, wenn moderne SDKs verwendet werden
Annotationen:
readOnlyHint: wahr/falschdestructiveHint: wahr/falschidempotentHint: wahr/falschopenWorldHint: wahr/falsch
Phase 3: Überprüfung und Test
3.1 Codequalität
Überprüfen auf:
- Kein doppelter Code (DRY-Prinzip)
- Einheitliche Fehlerbehandlung
- Vollständige Typabdeckung
- Klare Werkzeugbeschreibungen
3.2 Build und Test
TypeScript:
- Führen Sie
npm run buildaus, um die Kompilierung zu überprüfen - Testen Sie mit dem MCP Inspector:
npx @modelcontextprotocol/inspector
Python:
- Syntax überprüfen:
python -m py_compile your_server.py - Testen Sie mit dem MCP Inspector
Siehe sprachspezifische Leitfäden für detaillierte Testansätze und Qualitätschecklisten.
Phase 4: Evaluierungen erstellen
Nachdem Sie Ihren MCP-Server implementiert haben, erstellen Sie umfassende Evaluierungen, um seine Effektivität zu testen.
Laden Sie ✅ Evaluierungsleitfaden für vollständige Evaluierungsrichtlinien.
4.1 Evaluierungszweck verstehen
Verwenden Sie Evaluierungen, um zu testen, ob LLMs Ihren MCP-Server effektiv nutzen können, um realistische, komplexe Fragen zu beantworten.
4.2 10 Evaluierungsfragen erstellen
Um effektive Evaluierungen zu erstellen, befolgen Sie den im Evaluierungsleitfaden beschriebenen Prozess:
- Werkzeuginspektion: Listen Sie verfügbare Werkzeuge auf und verstehen Sie ihre Fähigkeiten
- Inhaltserkundung: Verwenden Sie READ-ONLY-Operationen, um verfügbare Daten zu erkunden
- Fragengenerierung: Erstellen Sie 10 komplexe, realistische Fragen
- Antwortüberprüfung: Lösen Sie jede Frage selbst, um Antworten zu überprüfen
4.3 Evaluierungsanforderungen
Stellen Sie sicher, dass jede Frage:
- Unabhängig: Nicht von anderen Fragen abhängig
- Schreibgeschützt: Nur nicht-destruktive Operationen erforderlich
- Komplex: Mehrere Werkzeugaufrufe und tiefgehende Erkundung erforderlich
- Realistisch: Basierend auf realen Anwendungsfällen, die Menschen betreffen
- Überprüfbar: Einzelne, klare Antwort, die durch Zeichenfolgenvergleich überprüft werden kann
- Stabil: Antwort ändert sich im Laufe der Zeit nicht
4.4 Ausgabeformat
Erstellen Sie eine XML-Datei mit dieser Struktur:
<evaluation>
<qa_pair>
<question>Finden Sie Diskussionen über KI-Modellveröffentlichungen mit Tier-Codenamen. Ein Modell benötigte eine spezifische Sicherheitsbezeichnung im Format ASL-X. Welche Nummer X wurde für das nach einer gefleckten Wildkatze benannte Modell bestimmt?</question>
<answer>3</answer>
</qa_pair>
<!-- Weitere qa_pairs... -->
</evaluation>
Referenzdateien
📚 Dokumentationsbibliothek
Laden Sie diese Ressourcen bei Bedarf während der Entwicklung:
Kern-MCP-Dokumentation (zuerst laden)
- MCP-Protokoll: Beginnen Sie mit der Sitemap unter
https://modelcontextprotocol.io/sitemap.xml, rufen Sie dann bestimmte Seiten mit dem Suffix.mdab - 📋 MCP Best Practices - Universelle MCP-Richtlinien, einschließlich:
- Konventionen zur Server- und Werkzeugbenennung
- Richtlinien zum Antwortformat (JSON vs. Markdown)
- Best Practices für Paginierung
- Transportauswahl (streamable HTTP vs. stdio)
- Sicherheits- und Fehlerbehandlungsstandards
SDK-Dokumentation (während Phase 1/2 laden)
- Python SDK: Abrufen von
https://raw.githubusercontent.com/modelcontextprotocol/python-sdk/main/README.md - TypeScript SDK: Abrufen von
https://raw.githubusercontent.com/modelcontextprotocol/typescript-sdk/main/README.md
Sprachspezifische Implementierungsleitfäden (während Phase 2 laden)
-
🐍 Python-Implementierungsleitfaden - Vollständiger Python/FastMCP-Leitfaden mit:
- Initialisierungsmustern für Server
- Pydantic-Modellbeispielen
- Werkzeugregistrierung mit
@mcp.tool - Vollständigen funktionierenden Beispielen
- Qualitätscheckliste
-
⚡ TypeScript-Implementierungsleitfaden - Vollständiger TypeScript-Leitfaden mit:
- Projektstruktur
- Zod-Schema-Mustern
- Werkzeugregistrierung mit
server.registerTool - Vollständigen funktionierenden Beispielen
- Qualitätscheckliste
Evaluierungsleitfaden (während Phase 4 laden)
- ✅ Evaluierungsleitfaden - Vollständiger Leitfaden zur Erstellung von Evaluierungen mit:
- Richtlinien zur Fragenerstellung
- Strategien zur Antwortüberprüfung
- XML-Formatspezifikationen
- Beispielfragen und -antworten
- Durchführung einer Evaluierung mit den bereitgestellten Skripten