Zum Hauptinhalt springen
Lektion 13 von 14 · Vibe (ehemals Le Chat) und MCP: Automatisierung Ihrer Workflows

Bauen und Bereitstellen Ihres eigenen MCP-Servers

Lektion 13 von 14 Aktualisiert am 2. November 2026 Mittelstufe
Auf dieser Seite
  1. Vom Konzept zum Produktionsserver
  2. Lokale Erstellung eines MCP-Servers
  3. Lokales Testen
  4. Bereitstellungs-Optionen
  5. Mehr-Tool- vs. Einzel-Tool-Server
  6. Verwaltung von Umgebungsvariablen
  7. Kernaussagen

Update vom 2. November 2026 — Le Chat ist jetzt Vibe. Seit dem 28. Mai 2026 wurde Le Chat in Vibe umbenannt (nach wie vor unter chat.mistral.ai): ein einzelner Agent für Arbeit und Code, der Ihre Gespräche, Einstellungen und Abonnements übernimmt. Die klassische Le Chat-Erfahrung bleibt im Chat-Modus zugänglich; im Work-Modus sind Agenten zu Fähigkeiten geworden (über @ aufgerufen), Speicher dient als Wissensbasis und die tiefe Suche ist nun die Fähigkeit Deep Research. Pläne werden jetzt als Mistral Free, Pro, Team und Enterprise bezeichnet. Diese Lektion verwendet den Namen Vibe; beachten Sie, dass einige hier beschriebene Menüs möglicherweise andere Namen oder Standorte haben.

Vom Konzept zum Produktionsserver

Sie wissen bereits, wie Sie bestehende Konnektoren nutzen und eigene hinzufügen. Jetzt ist es an der Zeit, den letzten Schritt zu gehen: Schreiben Sie Ihren eigenen MCP-Server und stellen Sie ihn für die Nutzung in Vibe bereit. Wir führen Sie hier den gesamten Weg von der ersten Python-Datei auf Ihrem Gerät bis zur produktiven Bereitstellung, einschließlich der Designentscheidungen, die einen nutzbaren Server von einem unterscheiden, den das Modell niemals korrekt aufruft.

Lokale Erstellung eines MCP-Servers

Die Bibliothek FastMCP (pip install fastmcp, Version 4 Stand November 2026), ein Framework, das unabhängig vom offiziellen mcp-SDK ist, reduziert die Servererstellung auf wenige Dekoratoren:

from fastmcp import FastMCP

mcp = FastMCP("My Server")

@mcp.tool()
def greet(name: str) -> str:
    """Begrüßt eine Person nach dem Namen.

    Args:
        name: Der Vorname der zu begrüßenden Person.

    Returns:
        Eine personalisierte Begrüßungsmitteilung.
    """
    return f"Hello {name}! Welcome to our platform."

Alles hängt von diesen wenigen Zeilen ab. Der @mcp.tool()-Dekorator registriert die Funktion als MCP-Tool. Die Docstring wird zur Beschreibung, die das Modell sieht, wenn es entscheidet, ob es das Tool aufruft – es ist also kein Kommentar für Ihre Kollegen, sondern ein funktionales Element. Die Typisierung der Parameter (name: str) und der Rückgabewerte (-> str) informiert das Modell über die erwarteten Typen, und der Funktionsname muss klar und deskriptiv sein. Die offizielle Alternative ist das MCP-SDK von Anthropic, verfügbar in Python und TypeScript: es bietet mehr Kontrolle, erfordert aber eine etwas aufwendigere Konfiguration.

Da das Modell nur die Textbeschreibung Ihres Tools sieht, schreiben Sie es wie ein vollständiges Benutzerhandbuch:

@mcp.tool()
def search_products(
    query: str,
    category: str = "all",
    max_results: int = 10
) -> str:
    """Durchsucht das Produktkatalog.

    Verwenden Sie dieses Tool, wenn der Nutzer nach einem Produkt
    nach Name, SKU oder Kategorie sucht.

    Args:
        query: Suchbegriffe (Produktname, SKU, Schlüsselwörter).
        category: Filterkategorie. Mögliche Werte: 'all',
                  'electronics', 'clothing', 'food'. Standard: 'all'.
        max_results: Maximale Anzahl der zurückgegebenen Ergebnisse (1-50).

    Returns:
        Liste von Produkten mit Name, Preis, Verfügbarkeit und SKU.
    """

Beachten Sie, was dieser Docstring hinzufügt, das der vorherige fehlte: die Nutzungsbedingung, mögliche Werte für category und Grenzen für max_results. Zwei weitere Regeln vervollständigen die Übung. Namen müssen explizit sein – bevorzugen Sie search_products gegenüber search, create_invoice gegenüber create und get_user_orders gegenüber get_data. Und Rückgaben müssen lesbar sein: Senden Sie verständlichen Text zurück, anstatt roher IDs, sonst wird das Modell diese nicht verwenden können, um eine natürliche Antwort zu formulieren.

Lokales Testen

Starten Sie zunächst den Server, der auf einem lokalen Port läuft, standardmäßig localhost:8000:

python server.py

Machen Sie ihn dann zugänglich, damit Vibe ihn erreichen kann:

ngrok http 8000

ngrok stellt eine öffentliche URL bereit, beispielsweise https://abc123.ngrok.io, die Sie als Konnektor-URL in Vibe verwenden werden – denken Sie daran, /mcp anzuhängen, um die vollständige Endpunkt-Adresse zu erhalten. Bevor Sie in Vibe eintauchen, validieren Sie den Server mit dem MCP Inspector:

npx @modelcontextprotocol/inspector

Verbinden Sie sich mit Ihrem lokalen Server, listen Sie die Tools auf, testen Sie diese einzeln und prüfen Sie die Rückgaben. Dies zeigt Ihnen, ob Probleme aus Ihrem Code oder aus der Interpretation Ihrer Beschreibungen durch das Modell resultieren.

Bereitstellungs-Optionen

Sobald Ihr Server bereit ist, hängt die Bereitstellung hauptsächlich von Ihren Einschränkungen ab. Hugging Face Spaces ist die kostenlose Option, die vom Mistral AI-Team empfohlen wird: Dies sind virtuelle Maschinen, die Webanwendungen hosten, die völlig kostenlos sind, solange Sie keine GPU benötigen. Sie können Ihren MCP-Server dort mit FastAPI einrichten und mehrere Server auf demselben Space bereitstellen, jeder mit seiner eigenen Endpunkt-Adresse – /api1/mcp, /api2/mcp –, die Vibe als separate Konnektoren hinzufügt. Ein zusätzlicher Bonus: Es hindert niemanden daran, eine Benutzeroberfläche zum Space hinzuzufügen, um die Aktivität Ihres Servers zu visualisieren.

Prefect Horizon (ehemals FastMCP Cloud), die Plattform des FastMCP-Teams, importiert direkt ein GitHub-Repository, das einen FastMCP-Server enthält: Sie wählen das Repository auf horizon.prefect.io aus, die Plattform baut es und veröffentlicht eine authentifizierte URL; ein kostenloser Tarif existiert für persönliche Projekte. Für leichte Server ohne schwere Abhängigkeiten bietet Cloudflare Workers eine schnelle, kostengünstige Edge-Bereitstellung. Schließlich bleiben traditionelle Anbieter für bereits ausgestattete Teams vollkommen lebensfähig: AWS (Lambda, ECS), Google Cloud (Cloud Run, Cloud Functions) oder Azure (Functions, Container Apps).

Mehr-Tool- vs. Einzel-Tool-Server

Eine häufige Reflex ist, Tools sehr fein zu unterteilen. Erfahrungen zeigen das Gegenteil: Ein von Mistral organisierter MCP-Hackathon zeigte, dass die leistungsstärksten Teams hochstufige Tools entwarfen, die vollständigen Arbeitsabläufen entsprechen. Sie stellten book_restaurant bereit, anstatt list_restaurants + check_availability + make_reservation, oder deploy_application anstatt build + test + push + deploy. Das Modell hat weniger Chancen, die Sequenz zu verwirren, und die kumulative Latenz sinkt entsprechend.

Granularität macht in drei Situationen weiterhin Sinn: Wenn Sie einen generischen MCP-Server erstellen, der von verschiedenen Teams genutzt wird, wenn Arbeitsablaufschritte unabhängig voneinander dienen können und wenn Sie Flexibilität in der Reihenfolge der Operationen benötigen.

Verwaltung von Umgebungsvariablen

Ihre Server benötigen häufig API-Schlüssel, Datenbankanmeldedaten oder andere Geheimnisse. Speichern Sie diese systematisch in Umgebungsvariablen, niemals im Code. Denken Sie insbesondere daran, dass ein öffentlicher MCP-Server ohne Authentifizierung jedem den Zugriff auf Ihre API-Schlüssel ermöglicht: Schützen Sie ihn mit einem Token oder OAuth, sobald er einen kostenpflichtigen Dienst aufruft. Auf Hugging Face Spaces sind die Space Secrets genau dafür konzipiert.

Kernaussagen

  • FastMCP ist der einfachste Weg, einen MCP-Server in Python zu erstellen
  • Polieren Sie Ihre Tool-Beschreibungen, -Namen und -Typisierung
  • Testen Sie lokal zuerst mit ngrok und dem MCP Inspector, bevor Sie bereitstellen
  • Hugging Face Spaces bietet ideale kostenlose Hosting-Möglichkeiten für MCP-Server
  • Bevorzugen Sie Tools im Arbeitsablauf-Stil gegenüber übermäßig granulareren
  • Schützen Sie Ihre Geheimnisse und erwägen Sie Authentifizierung für Ihre Server