> For the complete documentation index, see [llms.txt](https://docs.kiloiot.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kiloiot.io/kilo-docs-fr/kilo-iot-server/api/mcp-server.md).

# Serveur MCP

Connectez des agents IA à des appareils IoT via le serveur MCP IoT sécurisé par OAuth de Kilo et travaillez sur un déploiement en direct dans le cadre des autorisations de l’utilisateur.

MCP — le Model Context Protocol — est une norme ouverte qui permet à un client d’IA de découvrir et d’appeler des outils sur un serveur distant. Le serveur Kilo IoT publie un point de terminaison MCP, ainsi tout client compatible MCP — Claude Code, Claude Desktop, ChatGPT, Codex, Cursor et d’autres — peut se connecter à votre organisation et travailler avec votre déploiement réel : appareils, connecteurs, règles, alarmes et tableaux de bord.

Voici une voie d’intégration pour la [Plateforme d’IA physique pour les agents IA](/kilo-docs-fr/kilo-iot-server/physical-ai.md). Kilo reste la couche d’exécution gouvernée entre le client et l’infrastructure réelle, donc le modèle n’a pas besoin de recréer les protocoles des appareils, les frontières de l’organisation ou le cycle de vie opérationnel autour d’un changement.

Comme MCP est une norme ouverte plutôt qu’une intégration par fournisseur, il ne s’agit pas d’une liste figée. Tout client qui parle MCP via Streamable HTTP peut se connecter, et les guides ci-dessous couvrent les deux flux suivis par la plupart des clients : une configuration en ligne de commande et une boîte de dialogue de connecteur.

Le point de terminaison est :

```
https://mcp-auth.kiloiot.io/mcp
```

Vous autorisez la connexion dans votre navigateur avec votre compte Kilo habituel. Il n’y a aucune clé API à générer, aucun jeton à coller, et rien à stocker sur la machine qui exécute le client.

## Pourquoi c’est important

Sans MCP, faire travailler un assistant sur un déploiement en direct signifie d’abord écrire une intégration : une clé, une bibliothèque cliente, un script par question. C’est acceptable pour une tâche planifiée et lourd pour un incident à 2 h du matin.

Avec le serveur MCP connecté, le client que vous utilisez déjà devient une console d’opérateur sur votre déploiement — et il peut agir, pas seulement lire. Un ingénieur d’exploitation peut demander quels appareils d’un site ont cessé de remonter des données et passer en revue les alarmes autour d’une fenêtre de panne en une seule conversation, sur des données en direct. Un intégrateur qui prépare un déploiement peut lui faire provisionner un lot d’appareils via le bon connecteur au lieu de cliquer cinquante fois dans la même boîte de dialogue. Un chef d’équipe peut demander des statistiques d’alarmes ouvertes avant une passation de service. Et comme l’ensemble d’outils inclut des commandes d’appareil, la même conversation peut modifier un intervalle de remontée ou commuter un relais. Ce qui encadre cela — et pourquoi une IA agissant sur une infrastructure physique est une proposition différente d’une IA agissant sur des données — est expliqué dans [IA physique](/kilo-docs-fr/kilo-iot-server/physical-ai.md).

Parce que la connexion porte votre propre compte, l’assistant n’est pas une identité supplémentaire à gouverner. Il peut faire ce que vous pouvez faire, dans l’organisation sur laquelle vous travaillez, et rien d’autre.

## Connecter Claude Code

1. Ajoutez le serveur en lui donnant le nom `kilo`:

   ```bash
   claude mcp add --transport http kilo https://mcp-auth.kiloiot.io/mcp
   ```
2. Démarrez Claude Code dans votre projet et exécutez :

   ```
   /mcp
   ```
3. Sélectionnez le `kilo` serveur. Claude Code ouvre votre navigateur pour l’autorisation.
4. Connectez-vous avec votre compte Kilo habituel et approuvez la demande. Le navigateur confirme l’autorisation, et vous pouvez revenir au terminal.
5. Exécutez `/mcp` à nouveau si vous voulez vérifier le résultat. Lorsque le `kilo` serveur est indiqué comme **connecté**, ses outils sont disponibles et vous pouvez commencer à poser des questions en langage naturel.

## Connecter Claude Desktop

1. Ouvrez **Paramètres → Connecteurs**.
2. Cliquez sur **Ajouter un connecteur personnalisé**.
3. Collez l’URL du point de terminaison — `https://mcp-auth.kiloiot.io/mcp` — dans le champ URL.
4. Cliquez sur **Connecter**. Claude Desktop ouvre votre navigateur pour l’autorisation.
5. Connectez-vous avec votre compte Kilo habituel et approuvez la demande.
6. De retour dans Claude Desktop, confirmez que le connecteur apparaît comme actif. Ses outils sont maintenant disponibles dans n’importe quelle conversation.

## Connecter un autre client MCP

ChatGPT, Codex, Cursor et les autres clients compatibles MCP suivent l’une des deux mêmes formes. Lorsque le client dispose d’une boîte de dialogue de connecteur ou d’intégrations, ajoutez un serveur MCP personnalisé et collez l’URL du point de terminaison, comme dans les étapes Claude Desktop ci-dessus. Lorsqu’il est configuré depuis une ligne de commande ou un fichier de configuration, enregistrez le point de terminaison comme un serveur **Streamable HTTP** — le transport que ce point de terminaison expose — comme dans les étapes de Claude Code.

Dans tous les cas, l’autorisation est la même : le client ouvre votre navigateur, vous vous connectez avec votre compte Kilo habituel, et la connexion transporte vos permissions. Consultez la documentation propre à votre client pour savoir où il conserve les serveurs MCP ; rien dans ce point de terminaison n’est spécifique à un client.

## À quoi ressemble une session connectée

<figure><img src="https://3675309505-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtNQh1wBSHSaknslMdOXm%2Fuploads%2Fgit-blob-c76dbc8c4ecd947cc8440377d59be70c5367d640%2Fmcp-claude-session.jpg?alt=media" alt="A Claude Code session connected to Kilo over MCP, calling the connection_list tool and asking permission before continuing"><figcaption><p>Une session Claude Code authentifiée travaillant sur un déploiement en direct : on lui demande de configurer un capteur LoRaWAN, il recommande un provisionnement via la plateforme, appelle un outil Kilo et s’arrête pour demander l’autorisation avant de continuer</p></figcaption></figure>

Le client peut répondre à partir de votre déploiement réel parce qu’il peut lire les connexions et les appareils disponibles pour votre compte. L’invite d’approbation appartient au client : Kilo publie des informations de sécurité avec chaque outil, et les clients compatibles peuvent les utiliser pour demander une confirmation. Kilo applique les permissions de votre compte quelle que soit la manière dont le client traite ces informations. Voir [Sécurité et permissions](#security-and-permissions).

## Choisir l’organisation

`https://mcp-auth.kiloiot.io/mcp` travaille avec l’organisation **actuellement sélectionnée dans l’application web Kilo**. C’est le bon choix par défaut pour la plupart des gens : ce sur quoi vous travaillez dans la plateforme est ce que votre client voit.

Si vous changez l’organisation active dans l’application web, reconnectez le client afin que le point de terminaison par défaut prenne en compte le changement.

Pour verrouiller un client sur une seule organisation, quel que soit le choix dans l’application web, connectez-le à la forme du point de terminaison à portée d’organisation, ainsi :

```
https://mcp-auth.kiloiot.io/o/{organizationId}/mcp
```

Remplacez `{organizationId}` par l’ID de l’organisation provenant de l’application web. Le verrouillage vaut la peine lorsqu’un client doit toujours opérer sur une seule organisation de production — par exemple, un intégrateur qui maintient le déploiement d’un client, ou une station de travail qui ne doit jamais toucher au préproduction.

Si vous n’êtes pas membre de l’organisation à laquelle vous verrouillez le client, la requête est refusée.

## Ce que l’assistant peut faire

Une fois connecté, le client voit un ensemble d’outils qu’il appelle en votre nom. Ce n’est pas vous qui les appelez — vous décrivez la tâche, et le client choisit les outils dont il a besoin.

| Domaine              | Ce que le client connecté peut faire                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Appareils**        | Lister les appareils de l’organisation, provisionner des appareils LoRaWAN, MQTT et traceurs, lire les profils d’appareils et inspecter les associations de capteurs. `device_list`, `device_provision_lorawan`, `device_provision_mqtt`, `device_provision_tracker`, `device_profile_list`, `sensor_map`                                                                                                                                                                                                                                                         |
| **MIOTY**            | Parcourir le catalogue des appareils d’une connexion MIOTY — fabricants, modèles d’appareils et leurs plans, à la fois dans les portées Système et Personnalisée — et en mettre en service un point de terminaison. `mioty_catalog_list`, `device_provision_mioty`                                                                                                                                                                                                                                                                                                |
| **Matériel**         | Rechercher dans le catalogue des partenaires et sur le web ouvert des équipements qui correspondent à un besoin décrit, puis présenter une sélection réduite de ces produits. Ce sont les deux outils qui sortent de votre organisation. `hardware_search`, `recommend_products`                                                                                                                                                                                                                                                                                  |
| **Commandes**        | Lister les commandes configurées sur un appareil, en exécuter une après confirmation et vérifier si elle a été délivrée. `device_command_list`, `device_command_execute`, `device_command_status`                                                                                                                                                                                                                                                                                                                                                                 |
| **Émulateur**        | Parcourir les préréglages d’appareils, provisionner un [appareil émulé](/kilo-docs-fr/kilo-iot-server/devices/emulated-devices.md), lire et mettre à jour sa configuration et son intervalle, envoyer une lecture unique, et déplacer un appareil entre l’émulateur et le matériel réel — tout appareil réel vers l’Émulateur, et un appareil émulé vers une vraie connexion LoRaWAN. `emulator_preset_list`, `emulator_preset_get`, `device_provision_emulator`, `emulator_config_get`, `emulator_config_update`, `emulator_send_once`, `device_connection_swap` |
| **Connecteurs**      | Consulter les connecteurs définis dans l’organisation et créer une connexion par laquelle un appareil transmettra. `connector_list`, `connection_create`                                                                                                                                                                                                                                                                                                                                                                                                          |
| **Règles**           | Consulter les règles, préparer et déployer l’automatisation après confirmation, simuler la logique avant qu’elle n’atteigne la production, et inspecter l’historique d’exécution. `rule_list`, `rule_provision`, `rule_simulate`, `rule_execution_history`                                                                                                                                                                                                                                                                                                        |
| **Alarmes**          | Lister les alarmes et résumer l’activité des alarmes pour une équipe ou un site. `alarm_list`, `alarm_stats`                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| **Tableaux de bord** | Lister les tableaux de bord et interroger les données derrière un widget, afin que le client puisse raisonner sur les mêmes chiffres que ceux surveillés par vos opérateurs. `dashboard_list`, `widget_data_query`                                                                                                                                                                                                                                                                                                                                                |
| **Organisation**     | Lire les détails de l’organisation, lister les équipes, inviter des utilisateurs et attribuer des rôles. `org_get`, `team_list`, `user_invite`, `user_role_assign`                                                                                                                                                                                                                                                                                                                                                                                                |

## Comment les clients distinguent les actions en lecture et en écriture

Kilo publie un titre, une description et des annotations de sécurité avec chaque outil MCP. Les clients compatibles peuvent lire ces annotations avant de choisir d’exécuter l’outil immédiatement ou de vous demander de confirmer.

| Annotation                                  | Exemples                                                                                                            | Ce que cela indique au client                                                                               |
| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| **Lecture seule**                           | Lister les appareils, lire l’historique des alarmes, interroger les données d’un widget                             | L’outil ne modifie pas votre déploiement.                                                                   |
| **Modifie ou supprime des données**         | Supprimer un appareil, mettre à jour un tableau de bord, permuter une connexion, envoyer une commande à un appareil | L’outil peut affecter votre déploiement ou votre équipement, le client peut donc demander une confirmation. |
| **Sort du périmètre de votre organisation** | Rechercher du matériel dans le catalogue des partenaires ou sur le web ouvert                                       | L’outil accède à des informations au-delà des données de votre organisation.                                |

Créer un appareil ou un tableau de bord modifie votre organisation, mais n’écrase ni n’arrête une ressource existante et peut être annulé en supprimant la nouvelle ressource. Kilo ne décrit donc pas la création comme destructrice.

Les annotations de sécurité sont des informations destinées au client, pas un contrôle d’autorisation. Les clients décident comment présenter les confirmations. Les permissions Kilo restent la limite appliquée, donc un client ne peut pas effectuer une action que votre compte n’est pas autorisé à effectuer.

## Sécurité et permissions

* **Vous vous connectez, pas un compte de service.** L’autorisation s’effectue dans votre navigateur avec votre compte Kilo habituel. Aucune clé n’est générée, copiée ou stockée pour la connexion.
* **Vos permissions sont la limite supérieure.** La connexion transporte votre propre accès. Le client ne peut faire que ce que votre compte est autorisé à faire — si vous ne pouvez pas déployer une règle ou inviter un utilisateur, il ne le peut pas non plus.
* **Les frontières de l’organisation tiennent.** Une demande pour une organisation dont vous n’êtes pas membre est refusée, qu’elle provienne du point de terminaison par défaut ou d’un point épinglé.
* **Les actions conservent leurs traces opérationnelles.** Les modifications et exécutions de règles apparaissent dans l’historique des règles, les envois de commandes d’appareils apparaissent dans l’historique d’exécution des commandes, et les changements d’accès à l’organisation apparaissent dans la piste d’audit. Ce sont des enregistrements distincts pour leurs flux de travail correspondants, et non un journal de conversation générique.

Traitez un client autorisé comme une session connectée : il doit rester sur des machines que vous contrôlez.

## En quoi cela diffère de l’assistant intégré

Kilo a un [Assistant IA IoT](/kilo-docs-fr/kilo-iot-server/ai-assistant.md) intégré à l’application web — ouvrez-le depuis **Chat IA** et il travaille sur votre déploiement à vos côtés, sans aucune configuration. C’est le chemin le plus rapide pour la plupart des gens, et c’est là que se trouvent les portes de confirmation, les graphiques intégrés et la base de connaissances de la plateforme.

Le serveur MCP va dans l’autre sens : il apporte **votre propre client** au même déploiement. Utilisez-le lorsque vous voulez votre déploiement dans l’outil que vous avez déjà ouvert — un terminal à côté du code de l’intégration que vous construisez, ou un client desktop où le déploiement se trouve à côté de votre autre contexte. Les deux parlent à la même plateforme, donc le choix dépend de l’endroit où vous travaillez.

## En quoi cela diffère de REST et de gRPC

Le [API REST publique](/kilo-docs-fr/kilo-iot-server/api/public-rest-api.md) et l’ [API gRPC](/kilo-docs-fr/kilo-iot-server/api/grpc-api.md) sont destinées aux programmes que vous écrivez : une tâche de synchronisation, un pipeline de rapport, un pont SCADA. Elles s’authentifient avec une [clé API](/kilo-docs-fr/kilo-iot-server/settings/api-keys.md) limitée qui fonctionne sans surveillance. MCP est destiné à un client IA agissant en votre nom, autorisé par votre propre connexion et limité par vos propres permissions. Si vous écrivez du code, utilisez REST. Si vous travaillez avec un assistant, utilisez MCP.

## Conseils

* **Nommez le serveur `kilo` dans Claude Code.** La commande ci-dessus fait cela, et elle vous donne un raccourci court quand vous voulez diriger le client vers un serveur spécifique.
* **Commencez en lecture seule.** Demandez une liste des appareils ou un résumé des alarmes avant de demander une exécution de provisionnement. C’est un moyen rapide de confirmer que la connexion a atterri sur l’organisation attendue.
* **Confirmez l’organisation avant les opérations par lot.** Demandez au client à quelle organisation il est connecté, ou épinglez le point de terminaison, avant toute action qui crée ou modifie des ressources.
* **Épinglez la production, laissez la préproduction sur le point de terminaison par défaut.** Un point de terminaison épinglé ne peut pas être déplacé par un clic accidentel dans le sélecteur d’organisation de l’application web.
* **Reconnectez après avoir changé d’organisation** dans l’application web si vous utilisez le point de terminaison par défaut — la connexion existante conserve l’organisation avec laquelle elle a été autorisée.

## Voir aussi

* [Plateforme d’IA physique pour les agents IA](/kilo-docs-fr/kilo-iot-server/physical-ai.md) — comment les modèles, Kilo et l’infrastructure physique se partagent les responsabilités.
* [Assistant IA IoT](/kilo-docs-fr/kilo-iot-server/ai-assistant.md) — l’assistant intégré à la plateforme.
* [API REST publique](/kilo-docs-fr/kilo-iot-server/api/public-rest-api.md) — la voie d’intégration pour les programmes que vous écrivez.
* [Authentification et clés API](/kilo-docs-fr/kilo-iot-server/api/authentication-and-api-keys.md) — comment les requêtes API fondées sur une clé s’autorisent.


---

# 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://docs.kiloiot.io/kilo-docs-fr/kilo-iot-server/api/mcp-server.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.
