> For the complete documentation index, see [llms.txt](https://unsloth.ai/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://unsloth.ai/docs/fr/bases/mcp.md).

# Comment utiliser les serveurs MCP avec des LLM locaux

Ce guide étape par étape vous montre comment connecter **Model Context Protocol (MCP)** des serveurs à des LLM locaux comme [Qwen](/docs/fr/modeles/qwen3.6.md) ou [Gemma](/docs/fr/modeles/gemma-4.md), afin que tout modèle que vous exécutez puisse appeler des outils et services externes via MCP. Connecter MCP à un modèle local lui permet d’utiliser en toute sécurité vos fichiers, applications, bases de données et outils locaux au lieu de discuter uniquement de mémoire, afin de créer un assistant IA plus utile, privé et interchangeable, capable d’agir sur votre environnement réel.

Nous utiliserons les dépôts open source [Unsloth](https://github.com/unslothai/unsloth) et [llama.cpp](#llama.cpp-guide) car ce sont des frameworks populaires pour l’inférence et le déploiement de modèles locaux. MCP fonctionne avec les modèles GGUF locaux et les modèles [des fournisseurs](/docs/fr/integrations/connections.md). **Nous montrerons aussi comment** [**plusieurs serveurs MCP**](#using-multiple-mcp-servers) **peuvent être utilisés.**

Les outils MCP fonctionnent parallèlement à d’autres capacités du modèle telles que [l’exécution de code](/docs/fr/nouveau/studio/chat.md#code-execution) et [recherche web](/docs/fr/nouveau/studio/chat.md#advanced-web-search), ainsi un seul modèle peut rechercher sur le web, exécuter du code et appeler vos services connectés dans le même fil de conversation.

### Cas d’utilisation

Une fois qu’un serveur MCP est connecté, vous pouvez demander à votre modèle local d’effectuer de nombreuses tâches automatisées. Quelques exemples :

* **Rechercher dans les docs :** « Trouve la documentation pertinente et résume les étapes de configuration. » - Context7 peut être utilisé.
* **Analyser une base de code :** « Fais la cartographie de ce dépôt et explique où se déroulent l’authentification, la facturation et l’accès aux données. » - Le MCP officiel GitHub et GitMCP peuvent être utilisés pour analyser les dépôts.
* **Rechercher sur le web avec des embeddings** - Le serveur MCP d’Exa peut être utilisé pour des recherches sémantiques sur le web avec prise en charge d’embeddings contextuels.
* **Déboguer les interfaces utilisateur des sites web** - Les serveurs MCP Playwright et Chrome DevTools peuvent être utilisés pour piloter des sites web afin de trouver des correctifs aux problèmes.

### Démarrage rapide

Nous utiliserons deux méthodes pour connecter votre modèle local sur votre appareil aux serveurs MCP. Les deux utilisent des packages open source : [Unsloth](https://github.com/unslothai/unsloth) et [llama.cpp](llama.cpphttps://github.com/ggml-org/llama.cpp) pour exécuter, servir et déployer votre modèle.

<a href="/pages/461bc12a9c9013e37989c418310c1a16a50732de#unsloth-guide" class="button primary">Guide MCP Unsloth</a><a href="/pages/461bc12a9c9013e37989c418310c1a16a50732de#llama.cpp-guide" class="button primary">Guide MCP Llama.cpp</a>

### 🦥 Guide Unsloth

Dans cet exemple, nous utiliserons Unsloth pour connecter n’importe quel modèle local comme [Qwen3.6](/docs/fr/modeles/qwen3.6.md) ou [Gemma 4](/docs/fr/modeles/gemma-4.md) avec les serveurs MCP : [Vercel](https://mcp.vercel.com), [Context7](https://context7.com/), [Exa](https://exa.ai/) et [Hugging Face](https://huggingface.co/docs/hub/en/agents-mcp). Nous demanderons ensuite à un modèle ce qu’il peut faire avec cela. Les mêmes étapes fonctionnent pour n’importe quel serveur MCP.

{% stepper %}
{% step %}

#### Configurer Unsloth

La manière la plus simple de commencer est d’installer l’application [Unsloth Desktop](/docs/fr/desktop.md) . Elle prend en charge [MacOS](/docs/fr/commencer/install/mac.md), Linux, [Windows](/docs/fr/commencer/install/windows-installation.md), [NVIDIA](/docs/fr/commencer/install/pip-install.md), [AMD](/docs/fr/commencer/install/amd.md), Intel et les configurations CPU.

<a href="https://unsloth.ai/download" class="button primary" data-icon="down-to-bracket">Télécharger Unsloth</a>

* <i class="fa-apple">:apple:</i> [Télécharger pour macOS](https://unsloth.ai/download/mac)
* <i class="fa-windows">:windows:</i> [Télécharger pour Windows](https://unsloth.ai/download/windows)
* <i class="fa-linux">:linux:</i> [Télécharger pour Linux](https://unsloth.ai/download/linux)

Ou, si vous préférez l’installation manuelle :

**MacOS, Linux, WSL :**

```bash
curl -fsSL https://unsloth.ai/install.sh | sh
```

**Windows PowerShell :**

```bash
irm https://unsloth.ai/install.ps1 | iex
```

[Voir ici](/docs/fr/desktop.md#get-started) pour des instructions détaillées.
{% endstep %}

{% step %}

#### **Activer MCP**

Cliquez sur « MCP » dans la barre d’outils du chat.

<figure><img src="/files/6a73a6bafeb825471c2212e5e15e6b716e6c5425" alt=""><figcaption></figcaption></figure>

Unsloth Studio prend par défaut en charge MCP pour Context7, Exa et Hugging Face. Activer Exa [recherche web](/docs/fr/nouveau/studio/chat.md#advanced-web-search) désactivera l’outil de recherche par défaut que nous avons.
{% endstep %}

{% step %}

#### **Ajout de serveurs MCP personnalisés**

Pour ajouter le serveur MCP Vercel, cliquez sur « Ajouter un MCP personnalisé », et une fenêtre contextuelle s’affichera :

<figure><img src="/files/63078e626b05cf49fe6ab4eb8f3f2f9cd96b5909" alt=""><figcaption></figcaption></figure>

Renseignez les détails du serveur :

1. **Nom d’affichage** : une étiquette conviviale, par exemple `Vercel`.
2. **URL** : le point de terminaison de base du serveur, par exemple `https://mcp.vercel.com`.
3. Choisissez ci-dessous une méthode d’authentification.

{% tabs %}
{% tab title="Connexion OAuth" %}
Pour les serveurs qui nécessitent une authentification via le navigateur (GitHub, Linear, Vercel, etc.), activez **Utiliser la connexion OAuth**. Une fenêtre de navigateur s’ouvrira lors de la première connexion afin que vous puissiez autoriser Unsloth.
{% endtab %}

{% tab title="En-tête personnalisé" %}
Pour les serveurs qui s’authentifient avec un jeton, laissez OAuth désactivé et cliquez sur **Ajouter un en-tête** sous **En-têtes personnalisés**. Ajoutez un `Authorization` en-tête avec votre jeton :

```
Authorization: Bearer <votre-jeton>
```

{% endtab %}
{% endtabs %}

<figure><img src="/files/17beb218ffe1868dbe4907502d7761817f4fa865" alt="" width="563"><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### **Tester et ajouter**

Cliquez sur **Tester la connexion** pour confirmer qu’Unsloth peut atteindre le serveur. Une fois que cela réussit, cliquez sur **Ajouter le serveur** pour l’enregistrer.

Si **Tester la connexion** l’opération échoue, vérifiez que l’URL est bien le point de terminaison de base du serveur (et non une page de documentation) et que votre méthode d’authentification est correcte. Voir le dépannage ci-dessous.

<figure><img src="/files/75b8b943542b6ab97d55d64cf4064351271d605f" alt="" width="563"><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### **Vérifier les outils chargés**

Le serveur apparaît maintenant dans la liste des serveurs MCP. Unsloth récupère automatiquement ses outils et affiche une confirmation, par exemple *« Vercel » actualisé (18 outils)*.

Chaque serveur dispose de contrôles pour **basculer** son activation/désactivation, **actualiser** ses outils, **modifier** le, ou **supprimer** le. Assurez-vous que le sélecteur du serveur et le **Utiliser les serveurs MCP** sélecteur principal sont activés, puis fermez la boîte de dialogue.

Il sera mis en évidence s’il est activé. Vous pouvez aussi les désactiver en cliquant simplement dessus à nouveau.

<figure><img src="/files/9c0518eaa99561e3f4b99a4dd94c9a13668d3cad" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### **Utilisez-le dans le chat**

Choisissez n’importe quel modèle dans la **Select model** liste déroulante et commencez à discuter. Le modèle peut désormais appeler de lui-même les outils du serveur lorsque votre demande l’exige.

Ci-dessus, un modèle local `gemma-4-E2B-it-GGUF` a été invité *« Pouvez-vous utiliser le serveur Vercel MCP ? »* et a indiqué les actions qu’il peut effectuer : gestion des projets, analyse des journaux, सूची des équipes, génération de liens d’accès, vérification des domaines et recherche dans la documentation de Vercel.

<figure><img src="/files/c2a6f948be9dfa89194164b28b3ed914beb971ee" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

#### Utilisation de plusieurs serveurs MCP

Que diriez-vous d’appeler plusieurs serveurs MCP, comme 3 ? Nous utiliserons les serveurs MCP fournis par défaut dans Unsloth Studio : Exa, Context7 et Hugging Face, et activerons les 3.

Si vous demandez « Unsloth peut-il prendre en charge le fine-tuning de Qwen », Exa fournira de très bons détails à ce sujet :

<figure><img src="/files/35fa760209d89758ee398ed566ce8004b613eaf7" alt=""><figcaption></figcaption></figure>

Ensuite, en suivi : « Recherche dans la documentation Unsloth comment faire cela », et Context7 est utilisé pour les docs :

<figure><img src="/files/289ef59dfd6f79170b944dba83c0f3ab2e4b9ba6" alt=""><figcaption></figcaption></figure>

Ensuite, tapez « Recherche Hugging Face pour les modèles unsloth/Qwen », et le serveur MCP de Hugging Face sera appelé :

<figure><img src="/files/e4f1400b3baa36b4f1cc6dcdbf8fc8ef08df344c" alt=""><figcaption></figcaption></figure>

#### Autre exemple de cas d’utilisation spécifique

Une fois qu’un serveur est connecté, demandez au modèle d’effectuer un vrai travail en langage naturel. Quelques exemples avec le serveur Vercel :

* **Déboguer une compilation échouée**: *« Récupère les journaux de build de mon dernier déploiement et dis-moi pourquoi il a échoué. »*
* **Vérifier l’état du déploiement**: *« Liste mes déploiements les plus récents et leur état. »*
* **Rechercher dans la documentation**: *« Recherche dans la documentation Vercel comment configurer un domaine personnalisé. »*
* **Recherche de domaine**: *«  `myproject.dev` est-il disponible, et combien cela coûterait-il ? »*

### 🦙 Guide Llama.cpp

{% stepper %}
{% step %}

#### Installer ou compiler llama.cpp

**macOS :**

```bash
brew install llama.cpp
```

Ou pour **Linux, Windows, WSL** compiler à partir des sources :

```bash
git clone https://github.com/ggml-org/llama.cpp
cmake -S llama.cpp -B llama.cpp/build -DCMAKE_BUILD_TYPE=Release
cmake --build llama.cpp/build --config Release -j --target llama-server llama-cli
```

{% endstep %}

{% step %}

#### Démarrer llama-server avec un GGUF

Nous utilisons [Gemma 4](/docs/fr/modeles/gemma-4.md) GGUF E4B dans cet exemple :

```bash
llama-server \
  -hf unsloth/gemma-4-E4B-it-GGUF:UD-Q4_K_XL \\
  --alias local \\
  --host 127.0.0.1 \\
  --port 8080 \\
  --no-ui \\
  --temp 1.0 \\
  --top-p 0.95 \\
  --top-k 64 \\
  --reasoning off
```

Pour le modèle Gemma 4 26B-A4B plus grand :

```bash
llama-server \
  -hf unsloth/gemma-4-26B-A4B-it-GGUF:UD-Q4_K_M \\
  --alias local \\
  --host 127.0.0.1 \\
  --port 8080 \\
  --no-ui \\
  --temp 1.0 \\
  --top-p 0.95 \\
  --top-k 64 \\
  --reasoning off
```

Pour d’autres ajustements des paramètres d’inférence, consultez notre [guide Gemma 4](/docs/fr/modeles/gemma-4.md).

Vous pouvez tester le serveur :

```bash
curl http://127.0.0.1:8080/v1/chat/completions \\
  -H "Content-Type: application/json" \\
  -H "Authorization: Bearer none" \\
  -d '{
    "model": "local",
    "messages": [{"role": "user", "content": "Dis bonjour en une seule phrase."}]
  }'
```

{% endstep %}

{% step %}

#### Créer un sandbox de système de fichiers MCP

```bash
mkdir -p ~/mcp-workspace
cd ~/mcp-workspace
pwd
```

Copiez le chemin absolu. Créez un dossier de projet séparé pour votre hôte MCP :

```bash
mkdir -p ~/llama-mcp
cd ~/llama-mcp
```

Créer `server_config.json`:

{% code expandable="true" %}

```json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/CHEMIN/ABSOLU/VERS/mcp-workspace"
      ],
      "env": {}
    }
  }
}
```

{% endcode %}

Remplacez le chemin par le chemin réel de votre espace de travail. La `mcp-cli` d’IBM utilise la même `server_config.json` structure et la même `npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/files` configuration du système de fichiers.
{% endstep %}

{% step %}

#### Exécuter un hôte MCP en terminal avec llama.cpp

Utilisez le `mcp-cli`; c’est un client/hôte MCP en ligne de commande avec mode chat, découverte d’outils et prise en charge de fournisseurs OpenAI compatibles personnalisés. Sa documentation recommande `uvx mcp-cli --help`, la prise en charge des projets `server_config.json`, et la prise en charge à l’exécution de fournisseurs OpenAI compatibles personnalisés via `--api-base` et `--api-key`.

`mcp-cli` nécessite un fichier de configuration pour démarrer. Il faut donc ajouter une étape pour le créer. Par exemple :

{% code title="" expandable="true" %}

```bash
mkdir -p ~/.chuk_llm
cat > ~/.chuk_llm/config.yaml <<'YAML'
openai_compatible :
  client_class: "chuk_llm.llm.providers.openai_client:OpenAILLMClient"
  default_model: "local"
  models: ["*"]
YAML
```

{% endcode %}

Ensuite, exécutez :

```bash
uvx mcp-cli \\
  --provider llamacpp \\
  --api-base http://127.0.0.1:8080/v1 \\
  --api-key none \\
  --model local \\
  --server filesystem \\
  --config-file server_config.json
```

Puis essayez :

```
Liste les fichiers dans l’espace de travail du système de fichiers.
```

Puis :

```
Créez hello.txt avec une salutation sur une ligne, puis relisez-le.
```

`mcp-cli` a la confirmation des appels d’outils activée par défaut, vous devriez donc voir des invites avant l’exécution des outils.

**Exemple de code complet :**

{% code expandable="true" %}

```bash
# terminal 1
llama-server -hf unsloth/gemma-4-E4B-it-GGUF:UD-Q4_K_XL \\
  --alias local --host 127.0.0.1 --port 8080 --no-ui \\
  --temp 1.0 --top-p 0.95 --top-k 64 \\
  --chat-template-kwargs '{"enable_thinking":false}'

# terminal 2, dans le dossier contenant server_config.json
uvx mcp-cli \\
  --provider llamacpp \\
  --api-base http://127.0.0.1:8080/v1 \\
  --api-key none \\
  --model local \\
  --server filesystem \\
  --config-file server_config.json
```

{% endcode %}
{% endstep %}
{% endstepper %}

### Dépannage

Si un serveur ne parvient pas à se connecter ou que ses outils n’apparaissent pas, vérifiez que l’URL est bien le point de terminaison de base du serveur (par ex. `https://mcp.vercel.com`), et non une page de documentation ou un tableau de bord. Pour les serveurs OAuth, terminez la connexion dans le navigateur lorsqu’elle s’ouvre ; pour les serveurs basés sur un jeton, vérifiez le `Authorization` en-tête et que le jeton est valide.

Cliquez sur **Actualiser** si les outils n’apparaissent pas après la connexion, et assurez-vous que le sélecteur individuel du serveur et le **Utiliser les serveurs MCP** sélecteur principal sont activés.

### Notes de sécurité

Ne connectez que des serveurs MCP en lesquels vous avez confiance. Examinez les autorisations demandées et gardez la confirmation humaine activée pour les actions qui lisent des données privées, modifient des déploiements, achètent des domaines ou modifient des projets. Soyez particulièrement prudent lorsque vous combinez des serveurs MCP avec la recherche web ou d’autres outils, car du contenu injecté dans l’invite peut tenter de déclencher des appels d’outils indésirables.

### Serveurs MCP populaires

Voici une liste de quelques serveurs MCP populaires et utiles auxquels vous pouvez vous connecter :

| Serveur MCP                                      | Idéal pour                                        | Pourquoi c’est utile                                                                                                                                                                                                                                      |
| ------------------------------------------------ | ------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **GitHub MCP**                                   | Dépôts, problèmes, PR, recherche de code, Actions | MCP officiel GitHub avec configuration distante et locale, couvrant les dépôts, problèmes, pull requests, Actions, sécurité du code et plus encore. ([GitHub](https://github.com/github/github-mcp-server))                                               |
| **Context7**                                     | Docs et exemples de bibliothèque à jour           | Récupère la documentation actuelle et spécifique à la version pour les assistants de code au lieu de s’appuyer sur des données d’entraînement obsolètes. Utilise `https://mcp.context7.com/mcp`. ([GitHub](https://github.com/upstash/context7))          |
| **Notion MCP**                                   | Docs, notes, tâches, connaissances de projet      | Idéal pour les équipes utilisant Notion pour les spécifications, PRD, feuilles de route ou notes. L’hôte MCP peut lire et écrire le contenu de l’espace de travail. ([Notion Developers](https://developers.notion.com/guides/mcp/overview))              |
| **Slack MCP**                                    | Recherche dans les conversations d’équipe         | Permet aux outils IA d’interroger les messages, canaux, fichiers, fils de discussion et informations des membres Slack ; les actions dépendent des autorisations. ([Slack](https://slack.com/help/articles/48855576908307-Guide-to-the-Slack-MCP-server)) |
| **Linear MCP**                                   | Problèmes, projets, flux de travail produit       | MCP distant officiel pour trouver, créer et mettre à jour les problèmes, projets, commentaires et objets associés dans Linear. ([Linear](https://linear.app/changelog/2025-05-01-mcp))                                                                    |
| **Vercel MCP**                                   | Déploiements, journaux, docs, domaines            | Utile pour les flux de travail frontend/web : inspecter les déploiements, journaux, docs et le contexte du projet. Vérifiez d’abord la compatibilité du client. ([Vercel](https://vercel.com/docs/agent-resources/vercel-mcp?utm_source=chatgpt.com))     |
| **Sentry MCP**                                   | Débogage en production                            | Aide les agents à inspecter les problèmes, traces, erreurs et données de performance Sentry dans des workflows de développement avec intervention humaine. ([GitHub](https://github.com/getsentry/sentry-mcp))                                            |
| **MCP du système de fichiers / fichiers locaux** | Fichiers de projet locaux                         | Utile pour les configurations de LLM locaux, généralement via `stdio`. Les serveurs de référence doivent de préférence être considérés comme des exemples ou des points de départ. ([GitHub](https://github.com/modelcontextprotocol/servers))            |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://unsloth.ai/docs/fr/bases/mcp.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
