Naar de inhoud
Boek een demo Aan de slag

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 URL: https://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.
  • Lezen, en schrijven als je dat toestaat. Met een sleutel met Alleen lezen kan een assistent die via deze stack is verbonden vragen stellen over je organisatie, maar niets wijzigen. Met een sleutel met Volledige toegang kan hij ook wijzigingen aanbrengen. Hetzelfde tooloppervlak als de belangrijkste MCP-integratie. Stem je sleutel, je model en je runtime daarop af.

Gerelateerd