Gebruik je eigen LLM (Infomaniak, lokaal, soeverein)

De handleiding AI-assistenten (MCP) laat zien hoe je een kant-en-klare assistent verbindt. Deze handleiding is voor developers die een niveau dieper willen gaan en zelf het model willen kiezen — bijvoorbeeld om alles op EU- of Zwitserse infrastructuur te houden, volledig offline te draaien, of simpelweg een model te gebruiken dat je organisatie als standaard hanteert.

Het kernidee: bij MCP zijn het model en de verbinding gescheiden zaken. De Peerdom MCP-server weet niet en geeft er niet om welke LLM je gebruikt. Jij brengt het model mee; Peerdom beantwoordt enkel zijn vragen.

Hoe de onderdelen samenkomen

Een model “spreekt” nooit MCP. Het geeft alleen intenties voor tool-aanroepen af — “Ik wil list_vacant_roles aanroepen.” De omringende runtime (de MCP-client) voert de MCP-handshake uit, roept de Peerdom-server aan en voert het resultaat terug naar het model. Er moeten dus twee dingen waar zijn:

  • (A) Je runtime is een MCP-client — hij kan verbinding maken met een MCP-server met een aangepaste header.
  • (B) Je model is goed in function/tool calling — zodat het de juiste tool en argumenten kiest.
┌─────────────────────────────┐
│  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
└─────────────────────────────┘

De runtime is de enige component die met beide praat. Wissel het model vrij uit zonder iets aan de Peerdom-kant te veranderen, en omgekeerd.

Waarom Infomaniak als voorbeeld

Infomaniak is een Zwitserse provider met een OpenAI-compatibele LLM-API. Het is een goed uitgewerkt voorbeeld van een leverancier-onafhankelijke, soevereine modeloptie: data wordt in Zwitserland gehost onder de AVG en de Zwitserse DPA, en het biedt standaard tools/tool_choice function calling — precies wat MCP nodig heeft. Dezelfde stappen gelden voor elk OpenAI-compatibel endpoint (een lokale server, een andere EU-host of je eigen deployment).

Stap 1: Verkrijg een Infomaniak-modelendpoint

Maak in het Infomaniak AI Tools-product een modeldeployment aan en noteer drie dingen:

  • Base URLhttps://api.infomaniak.com/2/ai/{PRODUCT_ID}/openai/v1
  • API-token — je Infomaniak API-token
  • Een model dat function calling ondersteunt — kies er een die in de catalogus is gemarkeerd met “Function call: Yes” (recente Qwen-, Mistral Small- of Gemma-instructmodellen zijn goede keuzes).
Kies een model dat tool calling doet. Sommige soevereine modellen — Apertus bijvoorbeeld — ondersteunen geen function calling en kunnen MCP niet aansturen. Model-ID's en hun function-calling-vlaggen veranderen, dus controleer Infomaniaks live catalogus en bevestig de "Function call"-vlag voordat je je voor een model vastlegt.

Stap 2: Verkrijg je Peerdom API-sleutel

Maak een sleutel aan in Instellingen > Mijn gegevens > API-sleutels (Organisatie-instellingen, Eigenaar/es-toegang vereist) — dezelfde sleutel die wordt beschreven in de handleiding AI-assistenten (MCP). Dit is wat de MCP-verbinding authenticeert.

Stap 3: Koppel beide aan je MCP-client

Configureer twee dingen in je runtime: de modelprovider (Infomaniak) en de MCP-server (Peerdom). Hier een uitgewerkt voorbeeld met LibreChat, dat aangepaste OpenAI-compatibele endpoints en MCP-servers in één configuratiebestand ondersteunt:

# 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"]   # elk model gemarkeerd met "Function call: Yes"
        fetch: false

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

Start een chat tegen het Infomaniak-endpoint en de Peerdom-tools zijn beschikbaar voor het model. Vraag “Welke rollen zijn vacant?” en het Zwitsers gehoste model redeneert over het antwoord dat de Peerdom-server teruggeeft.

Configuratieschema's verschillen per client en versie — controleer de documentatie van je runtime voor de exacte sleutels. Wat constant blijft is de data: de Infomaniak base URL en token, en het Peerdom-endpoint (https://mcp.peerdom.org/mcp) met je X-Api-Key.

Andere runtimes volgen hetzelfde tweedelige patroon — verwijs de modelinstelling naar de Infomaniak base URL en voeg het Peerdom MCP-serverblok toe uit de hoofdhandleiding:

  • Goose, Cline, Continue — stel de modelprovider in op een aangepast OpenAI-compatibel endpoint en voeg dan de Peerdom MCP-server toe.
  • Open WebUI — voeg Infomaniak toe als een OpenAI-compatibele verbinding; bereik MCP via HTTP (of via de MCPO-proxy).
  • LM Studio — voor een volledig offline stack draai je een lokaal function-calling-model in plaats van Infomaniak, en houd je hetzelfde Peerdom MCP-blok aan.

Je eigen agent bouwen

Als je de agent zelf schrijft, is de modelaanroep gewoon OpenAI-compatibel — verwijs de SDK naar de base URL van Infomaniak en geef de Peerdom-tools (ontdekt via de MCP-server) door 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` zijn de Peerdom MCP-tools, opgehaald via een MCP-clientbibliotheek en
# omgezet naar OpenAI-functiedefinities; tool-aanroepen worden teruggestuurd
# naar https://mcp.peerdom.org/mcp met je 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",
)

Een MCP-clientbibliotheek handelt de handshake en tool-dispatch af; jouw lus geeft enkel tool-aanroepen door tussen het model en de Peerdom-server.

Goed om te weten

  • De kwaliteit van tool calling telt. Zwakkere modellen kunnen blijven loopen, toolnamen hallucineren of een benodigde aanroep overslaan. Als de resultaten onbetrouwbaar zijn, stap dan over op een sterker function-calling-model voordat je iets anders gaat debuggen.
  • Dataresidentie is in jouw handen. Met Infomaniak of een lokaal model wordt er over je organisatiedata geredeneerd op EU-/Zwitserse of on-premises infrastructuur — alleen je API-sleutel bereikt Peerdom, en de MCP-server bewaart niets.
  • Op dit moment alleen-lezen. Net als bij elke MCP-client kan de verbinding je organisatie lezen en samenvatten, maar niet wijzigen.

Gerelateerd