Réserver une démo Commencer

Apportez votre propre LLM (Infomaniak, local, souverain)

Le guide Assistants IA (MCP) montre comment brancher un assistant clé en main. Celui-ci s’adresse aux développeuses et développeurs qui veulent descendre d’un cran et choisir le modèle eux-mêmes : pour tout garder sur une infrastructure européenne ou suisse, pour fonctionner entièrement hors ligne, ou simplement pour utiliser le modèle sur lequel leur organisation s’est alignée.

L’idée clé : avec MCP, le modèle et la connexion sont deux sujets distincts. Le serveur MCP de Peerdom ne sait pas, et n’a pas besoin de savoir, quel LLM vous utilisez. Vous apportez le modèle ; Peerdom se contente de répondre à ses questions.

Comment les pièces s’emboîtent

Un modèle ne « parle » jamais MCP. Il émet seulement des intentions d’appel d’outil : « je veux appeler list_vacant_roles ». C’est le runtime qui l’entoure (le client MCP) qui exécute la poignée de main MCP, appelle le serveur Peerdom et renvoie le résultat au modèle. Deux conditions doivent donc être réunies :

  • (A) Votre runtime est un client MCP : il sait se connecter à un serveur MCP avec un en-tête personnalisé.
  • (B) Votre modèle est bon en appel de fonctions : il choisit le bon outil et les bons arguments.
┌─────────────────────────────┐
│  Votre client MCP / runtime │   (LibreChat, Goose, Cline, Open WebUI, LM Studio …)
│                             │
│   ├── API du modèle ────────┼──▶  Votre LLM  (Infomaniak, local, ou tout fournisseur)
│   │                         │
│   └── MCP + X-Api-Key ───────┼──▶  https://mcp.peerdom.org/mcp
└─────────────────────────────┘

Le runtime est le seul composant qui parle aux deux. Changez de modèle sans toucher au côté Peerdom, et inversement.

Pourquoi Infomaniak comme exemple

Infomaniak est un fournisseur suisse doté d’une API LLM compatible OpenAI. C’est un bon exemple concret d’option souveraine et indépendante d’un éditeur : les données sont hébergées en Suisse, sous le RGPD et la LPD suisse, et l’API expose l’appel de fonctions standard tools / tool_choice, exactement ce dont MCP a besoin. Les mêmes étapes valent pour tout endpoint compatible OpenAI : un serveur local, un autre hébergeur européen, ou votre propre déploiement.

Étape 1 : obtenir un endpoint de modèle Infomaniak

Dans le produit AI Tools d’Infomaniak, créez un déploiement de modèle et notez trois choses :

  • Base URL : https://api.infomaniak.com/2/ai/{PRODUCT_ID}/openai/v1
  • Jeton d’API : votre jeton d’API Infomaniak
  • Un modèle qui prend en charge l’appel de fonctions : choisissez-en un marqué « Function call: Yes » dans le catalogue (les modèles instruct récents de Qwen, Mistral Small ou Gemma sont de bons candidats).
Choisissez un modèle capable d'appeler des outils. Certains modèles souverains (Apertus, par exemple) ne prennent pas en charge l'appel de fonctions et ne feront pas tourner MCP. Les identifiants de modèle et leurs indicateurs d'appel de fonctions changent : vérifiez le catalogue en direct d'Infomaniak et confirmez l'indicateur « Function call » avant de vous engager sur l'un d'eux.

Étape 2 : obtenir votre clé API Peerdom

Créez une clé dans Paramètres > Mes données > Clés API (paramètres de l’organisation, accès Propriétaire requis) : c’est la même clé que celle décrite dans le guide Assistants IA (MCP). C’est elle qui authentifie la connexion MCP.

Étape 3 : câbler les deux dans votre client MCP

Configurez deux choses dans votre runtime : le fournisseur de modèle (Infomaniak) et le serveur MCP (Peerdom). Voici un exemple concret avec LibreChat, qui prend en charge les endpoints compatibles OpenAI et les serveurs MCP dans un seul fichier de configuration :

# 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"]   # tout modèle marqué "Function call: Yes"
        fetch: false

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

Ouvrez une conversation sur l’endpoint Infomaniak et les outils Peerdom sont à disposition du modèle. Demandez « quels rôles sont vacants ? » et le modèle hébergé en Suisse raisonne sur la réponse que renvoie le serveur Peerdom.

Les schémas de configuration varient selon le client et la version : reportez-vous à la documentation de votre runtime pour les clés exactes. Ce qui ne change pas, ce sont les données : la base URL et le jeton Infomaniak, et l'endpoint Peerdom (https://mcp.peerdom.org/mcp) avec votre X-Api-Key.

Les autres runtimes suivent le même schéma en deux parties : pointez le réglage de modèle vers la base URL d’Infomaniak, et ajoutez le bloc du serveur MCP Peerdom tiré du guide principal :

  • Goose, Cline, Continue : réglez le fournisseur de modèle sur un endpoint compatible OpenAI personnalisé, puis ajoutez le serveur MCP Peerdom.
  • Open WebUI : ajoutez Infomaniak comme connexion compatible OpenAI ; atteignez MCP en HTTP (ou via le proxy MCPO).
  • LM Studio : pour une pile entièrement hors ligne, faites tourner en local un modèle capable d’appeler des fonctions au lieu d’Infomaniak, et gardez le même bloc MCP Peerdom.

Construire votre propre agent

Si vous écrivez l’agent vous-même, l’appel au modèle reste du compatible OpenAI pur : pointez le SDK vers la base URL d’Infomaniak et passez les outils Peerdom (découverts depuis le serveur MCP) dans 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",
)

Une bibliothèque cliente MCP gère la poignée de main et la distribution des appels d’outils ; votre boucle se contente de faire transiter ces appels entre le modèle et le serveur Peerdom.

Bon à savoir

  • La qualité de l’appel d’outils compte. Un modèle plus faible peut boucler, inventer des noms d’outils ou sauter un appel nécessaire. Si les résultats sont hasardeux, passez à un modèle plus solide en appel de fonctions avant de déboguer quoi que ce soit d’autre.
  • La localisation des données est entre vos mains. Avec Infomaniak ou un modèle local, vos données organisationnelles sont traitées sur une infrastructure suisse, européenne ou interne : seule votre clé API atteint Peerdom, et le serveur MCP ne stocke rien.
  • Lectures et écritures. Avec votre clé API, un assistant branché sur cette pile peut interroger votre organisation et, avec la même clé, la modifier. La surface d’outils est identique à celle de l’intégration MCP principale. Choisissez votre modèle et votre runtime en conséquence.

En lien