Bring your own LLM (Infomaniak, lokal, souverän)

Die Anleitung KI-Assistenten (MCP) zeigt, wie du einen fertigen Assistenten verbindest. Diese Anleitung richtet sich an Entwickler/innen, die eine Ebene tiefer gehen und das Modell selbst wählen möchten — zum Beispiel, um alles auf EU- oder Schweizer Infrastruktur zu belassen, vollständig offline zu arbeiten oder einfach ein Modell zu nutzen, auf das sich deine Organisation festgelegt hat.

Die Kernidee: Mit MCP sind das Modell und die Verbindung getrennte Belange. Der Peerdom MCP-Server weiss nicht und kümmert sich nicht darum, welches LLM du nutzt. Du bringst das Modell mit; Peerdom beantwortet nur dessen Fragen.

Wie die Teile zusammenpassen

Ein Modell «spricht» nie MCP. Es äussert lediglich Absichten für Tool-Aufrufe — «Ich möchte list_vacant_roles aufrufen.» Die umgebende Runtime (der MCP-Client) führt den MCP-Handshake aus, ruft den Peerdom-Server auf und gibt das Ergebnis an das Modell zurück. Zwei Dinge müssen also zutreffen:

  • (A) Deine Runtime ist ein MCP-Client — sie kann sich mit einem individuellen Header an einen MCP-Server verbinden.
  • (B) Dein Modell ist gut im Function-/Tool-Calling — damit es das richtige Tool und die richtigen Argumente wählt.
┌─────────────────────────────┐
│  Your MCP client / runtime  │   (LibreChat, Goose, Cline, Open WebUI, LM Studio …)
│                             │
│   ├── model API ────────────┼──▶  Your LLM  (Infomaniak, local, or any provider)
│   │                         │
│   └── MCP + X-Api-Key ───────┼──▶  https://mcp.peerdom.org/mcp
└─────────────────────────────┘

Die Runtime ist die einzige Komponente, die mit beiden spricht. Tausche das Modell frei aus, ohne die Peerdom-Seite zu ändern, und umgekehrt.

Warum Infomaniak als Beispiel

Infomaniak ist ein Schweizer Anbieter mit einer OpenAI-kompatiblen LLM-API. Es ist ein gutes durchgespieltes Beispiel für eine anbieterunabhängige, souveräne Modelloption: Die Daten werden in der Schweiz unter der DSGVO und dem Schweizer DSG gehostet, und der Dienst stellt standardmässiges tools / tool_choice Function-Calling bereit — genau das, was MCP benötigt. Dieselben Schritte gelten für jeden OpenAI-kompatiblen Endpunkt (einen lokalen Server, einen anderen EU-Host oder dein eigenes Deployment).

Schritt 1: Einen Infomaniak-Modell-Endpunkt erhalten

Erstelle im Infomaniak-Produkt AI Tools ein Modell-Deployment und notiere dir drei Dinge:

  • Base URLhttps://api.infomaniak.com/2/ai/{PRODUCT_ID}/openai/v1
  • API-Token — dein Infomaniak API-Token
  • Ein Modell, das Function-Calling unterstützt — wähle eines, das im Katalog mit «Function call: Yes» gekennzeichnet ist (aktuelle Qwen-, Mistral-Small- oder Gemma-Instruct-Modelle sind gute Optionen).
Wähle ein Modell, das Tool-Calling beherrscht. Manche souveränen Modelle — Apertus zum Beispiel — unterstützen kein Function-Calling und können MCP nicht ansteuern. Modell-IDs und ihre Function-Calling-Kennzeichnungen ändern sich, prüfe daher Infomaniaks aktuellen Katalog und bestätige die «Function call»-Kennzeichnung, bevor du dich auf ein Modell festlegst.

Schritt 2: Deinen Peerdom API Key erhalten

Erstelle einen Key unter Settings > My Data > API Keys (Organisationseinstellungen, Owner-Zugriff erforderlich) — derselbe Key, der in der Anleitung KI-Assistenten (MCP) beschrieben ist. Er authentifiziert die MCP-Verbindung.

Schritt 3: Beides in deinen MCP-Client einbinden

Konfiguriere in deiner Runtime zwei Dinge: den Modellanbieter (Infomaniak) und den MCP-Server (Peerdom). Hier ein durchgespieltes Beispiel mit LibreChat, das individuelle OpenAI-kompatible Endpunkte und MCP-Server in einer einzigen Konfigurationsdatei unterstützt:

# librechat.yaml
endpoints:
  custom:
    - name: "Infomaniak"
      apiKey: "${INFOMANIAK_API_TOKEN}"
      baseURL: "https://api.infomaniak.com/2/ai/${INFOMANIAK_PRODUCT_ID}/openai/v1"
      models:
        default: ["mistral-small"]   # jedes Modell mit der Kennzeichnung "Function call: Yes"
        fetch: false

mcpServers:
  peerdom:
    type: streamable-http
    url: "https://mcp.peerdom.org/mcp"
    headers:
      X-Api-Key: "${PEERDOM_API_KEY}"

Starte einen Chat gegen den Infomaniak-Endpunkt, und die Peerdom-Tools stehen dem Modell zur Verfügung. Frage «Welche Rollen sind vakant?», und das Schweiz-gehostete Modell schliesst über die Antwort, die der Peerdom-Server zurückgibt.

Die Konfigurationsschemata unterscheiden sich je nach Client und Version — prüfe die Dokumentation deiner Runtime für die genauen Schlüssel. Konstant bleiben die Daten: die Infomaniak Base URL und das Token sowie der Peerdom-Endpunkt (https://mcp.peerdom.org/mcp) mit deinem X-Api-Key.

Andere Runtimes folgen demselben zweiteiligen Muster — richte die Modelleinstellung auf die Infomaniak Base URL aus und füge den Peerdom-MCP-Server-Block aus der Hauptanleitung hinzu:

  • Goose, Cline, Continue — setze den Modellanbieter auf einen individuellen OpenAI-kompatiblen Endpunkt und füge dann den Peerdom-MCP-Server hinzu.
  • Open WebUI — füge Infomaniak als OpenAI-kompatible Verbindung hinzu; erreiche MCP über HTTP (oder via den MCPO-Proxy).
  • LM Studio — für einen vollständig offline laufenden Stack lass ein lokales Function-Calling-Modell statt Infomaniak laufen und behalte denselben Peerdom-MCP-Block bei.

Deinen eigenen Agenten bauen

Wenn du den Agenten selbst schreibst, ist der Modellaufruf schlicht OpenAI-kompatibel — richte das SDK auf Infomaniaks Base URL aus und übergib die Peerdom-Tools (vom MCP-Server ermittelt) als tools:

from openai import OpenAI

client = OpenAI(
    base_url="https://api.infomaniak.com/2/ai/{PRODUCT_ID}/openai/v1",
    api_key="INFOMANIAK_API_TOKEN",
)

# `tools` are the Peerdom MCP tools, fetched via an MCP client library and
# converted to OpenAI function definitions; tool calls are dispatched back
# to https://mcp.peerdom.org/mcp with your X-Api-Key.
response = client.chat.completions.create(
    model="mistral-small",
    messages=[{"role": "user", "content": "Which roles are vacant in Marketing?"}],
    tools=tools,
    tool_choice="auto",
)

Eine MCP-Client-Bibliothek übernimmt den Handshake und das Tool-Dispatching; deine Schleife leitet lediglich Tool-Aufrufe zwischen dem Modell und dem Peerdom-Server weiter.

Gut zu wissen

  • Die Qualität des Tool-Callings ist entscheidend. Schwächere Modelle können in Schleifen geraten, Tool-Namen halluzinieren oder einen nötigen Aufruf auslassen. Falls die Ergebnisse unzuverlässig sind, wechsle zu einem stärkeren Function-Calling-Modell, bevor du irgendetwas anderes debuggst.
  • Die Datenhoheit liegt in deiner Hand. Mit Infomaniak oder einem lokalen Modell wird über deine Organisationsdaten auf EU-/Schweizer- oder On-Premise-Infrastruktur geschlossen — nur dein API Key erreicht Peerdom, und der MCP-Server speichert nichts.
  • Heute schreibgeschützt. Wie bei jedem MCP-Client kann die Verbindung deine Organisation lesen und zusammenfassen, sie aber nicht verändern.

Verwandte Artikel