Model Context Protocol (MCP)

🚀 Nouveauté - En Bêta

Carto-SI intègre désormais le Model Context Protocol (MCP) en version bêta ! Cette nouvelle fonctionnalité permet aux clients MCP (comme Claude Desktop, IDEs, etc.) d'interagir directement avec votre instance Carto-SI.

Qu'est-ce que le MCP ?

Le Model Context Protocol (MCP) est un protocole standardisé permettant aux applications d'IA (comme les assistants conversationnels et les IDEs) de se connecter à des sources de données externes de manière sécurisée et structurée.

Avec l'intégration MCP de Carto-SI, vous pouvez :

  • 🤖 Interroger votre SI via l'IA : Posez des questions sur vos applications, serveurs, et dépendances en langage naturel
  • ✍️ Modifier vos fiches : Créez et mettez à jour vos inventaires directement depuis votre client MCP
  • 🔗 Automatiser avec l'IA : Laissez votre assistant IA gérer des tâches répétitives sur votre cartographie
  • 📊 Analyser votre SI : Obtenez des insights et des analyses en temps réel

Disponibilité

FonctionnalitéStatutVersion requise
Serveur MCP🟡 Bêta4.9+
Proxy STDIO🟡 Bêta4.9+

Version Bêta

Cette fonctionnalité est en bêta. Des changements peuvent être apportés avant la version stable. N'hésitez pas à nous faire part de vos retours !

Configuration

Endpoint du serveur MCP

Le serveur MCP est accessible via l'API Carto-SI à l'endpoint suivant :

Code
POST https://votre-instance.carto-si.com/api/mcp

Authentification

Le serveur MCP utilise le même système d'authentification que l'API REST de Carto-SI. Vous devez fournir un token d'accès valide dans les headers de votre requête.

Format du header d'authentification :

Code(json)
Authorization: Bearer {"token":"VOTRE_TOKEN","myTenant":{"id":"VOTRE_TENANT"}}

📖 Voir : Comment générer un token d'accès

Proxy STDIO pour Claude Desktop

Qu'est-ce que le Proxy STDIO ?

Le proxy STDIO (Standard Input/Output) est un script Python qui fait le pont entre les clients MCP utilisant la communication STDIO (comme Claude Desktop) et le serveur HTTP MCP de Carto-SI. Il convertit les messages STDIO en requêtes HTTP et retransmet les réponses.

Pourquoi utiliser le Proxy STDIO ?

Claude Desktop et d'autres clients MCP communiquent via STDIO (entrées/sorties standard), tandis que le serveur MCP de Carto-SI expose une API HTTP. Le proxy STDIO fait la traduction entre ces deux protocoles.

Utilisez le proxy STDIO si :

  • ✅ Vous utilisez Claude Desktop
  • ✅ Votre client MCP ne supporte que la communication STDIO
  • ✅ Vous ne pouvez pas modifier le client pour qu'il communique directement en HTTP

Téléchargement

📥 Télécharger le proxy STDIO

Prérequis

  • Python 3.7 ou supérieur
  • Bibliothèque requests : pip install requests

Installation et configuration

1. Télécharger le proxy

Code(bash)
# Télécharger le fichier curl -O https://developer.carto-si.com/downloads/mcp-stdio-proxy.py # Rendre le script exécutable chmod +x mcp-stdio-proxy.py

2. Configuration des variables d'environnement

Le proxy utilise des variables d'environnement pour sa configuration :

VariableDescriptionExemple
MCP_BASE_URLURL de base du serveur MCPhttps://votre-instance.carto-si.com/api/mcp
MCP_AUTH_TOKENToken d'authentification Carto-SIvotre_token_ici
MCP_TENANTID du tenant Carto-SIdefault

Créer un fichier .env :

Code(bash)
export MCP_BASE_URL="https://votre-instance.carto-si.com/api/mcp" export MCP_AUTH_TOKEN="votre_token_ici" export MCP_TENANT="default"

3. Configuration de Claude Desktop

Modifiez le fichier de configuration de Claude Desktop pour utiliser le proxy.

Emplacement du fichier de configuration :

  • macOS : ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows : %APPDATA%\Claude\claude_desktop_config.json
  • Linux : ~/.config/Claude/claude_desktop_config.json

Contenu du fichier :

Code(json)
{ "mcpServers": { "carto-si": { "command": "/chemin/vers/mcp-stdio-proxy.py", "env": { "MCP_BASE_URL": "https://votre-instance.carto-si.com/api/mcp", "MCP_AUTH_TOKEN": "votre_token_ici", "MCP_TENANT": "default" } } } }

4. Redémarrer Claude Desktop

Redémarrez Claude Desktop pour que la configuration soit prise en compte.

Vérification de la connexion

Une fois configuré, vous pouvez vérifier que la connexion fonctionne en posant une question simple à Claude :

Code
Peux-tu lister toutes mes applications Carto-SI ?

Si la connexion est établie, Claude devrait être capable d'accéder à votre inventaire Carto-SI.

Architecture du proxy

Le proxy STDIO fonctionne de la manière suivante :

Code
┌──────────────────┐ STDIO ┌──────────────┐ HTTP ┌──────────────┐ │ Claude Desktop │ ◄─────────────► │ Proxy STDIO │ ◄───────────► │ Carto-SI │ │ (MCP Client) │ JSON-RPC 2.0 │ (Python) │ REST API │ (MCP Server) │ └──────────────────┘ └──────────────┘ └──────────────┘

Flux de communication :

  1. Claude Desktop envoie une requête JSON-RPC via STDIO
  2. Le proxy capture la requête depuis stdin
  3. Le proxy convertit la requête en appel HTTP POST vers Carto-SI
  4. Carto-SI traite la requête et renvoie une réponse JSON
  5. Le proxy retransmet la réponse à Claude Desktop via stdout

Fonctionnalités supportées

Le proxy STDIO supporte toutes les opérations MCP standard :

OpérationEndpointDescription
initialize/initializeInitialisation de la connexion MCP
tools/list/tools/listListe des outils disponibles
tools/call/tools/callExécution d'un outil
resources/list/resources/listListe des ressources disponibles
resources/read/resources/readLecture d'une ressource
resources/templates/list/resources/templates/listListe des templates de ressources
prompts/list/prompts/listListe des prompts disponibles
prompts/get/prompts/getRécupération d'un prompt

Dépannage

Le proxy ne démarre pas

Vérifiez les prérequis :

Code(bash)
python3 --version # Doit être 3.7+ pip3 show requests # Doit être installé

Vérifiez les permissions :

Code(bash)
chmod +x mcp-stdio-proxy.py

Erreur d'authentification

Vérifiez que vos variables d'environnement sont correctement configurées :

Code(bash)
echo $MCP_AUTH_TOKEN echo $MCP_TENANT echo $MCP_BASE_URL

Claude Desktop ne voit pas Carto-SI

  1. Vérifiez que le chemin vers mcp-stdio-proxy.py est correct dans claude_desktop_config.json
  2. Redémarrez complètement Claude Desktop
  3. Consultez les logs du proxy dans le terminal

Timeout des requêtes

Le timeout par défaut est de 60 secondes. Si vos requêtes prennent plus de temps, vous pouvez modifier la ligne suivante dans le proxy :

Code(python)
# Ligne 88 - Augmentez le timeout si nécessaire timeout=120 # Au lieu de 60

Logs et débogage

Le proxy écrit ses logs dans stderr. Pour voir les logs en temps réel :

Code(bash)
# Lancer le proxy manuellement pour voir les logs python3 mcp-stdio-proxy.py

Format des logs :

Code
2024-10-21 14:30:45 - INFO - MCP Proxy started - Forwarding to http://localhost:9327/api/mcp 2024-10-21 14:30:46 - INFO - Request: tools/list 2024-10-21 14:30:47 - INFO - Response: 200 OK

Exemples d'utilisation

Interroger votre SI

Une fois configuré, vous pouvez poser des questions à Claude sur votre Système d'Information :

Exemples de requêtes :

  • "Liste toutes mes applications hébergées sur AWS"
  • "Quels sont les serveurs qui n'ont pas été mis à jour depuis 6 mois ?"
  • "Affiche-moi les dépendances de l'application Gitlab"
  • "Combien d'applications utilisent PostgreSQL ?"
  • "Quelles sont les applications critiques de mon SI ?"
  • "Montre-moi tous les serveurs Linux en production"

Créer et modifier des fiches

Vous pouvez également demander à Claude de créer ou modifier des fiches :

Exemples de commandes :

  • "Crée une nouvelle application appelée 'API Gateway' avec pour propriétaire l'équipe DevOps"
  • "Mets à jour le statut de l'application 'CRM' en 'Production'"
  • "Ajoute une dépendance entre l'application 'Frontend' et 'API Backend'"
  • "Crée un nouveau serveur nommé 'prod-web-01' avec l'OS Ubuntu 22.04"

Analyse et reporting

Claude peut aussi vous aider à analyser votre SI :

Exemples d'analyses :

  • "Analyse la distribution des applications par environnement"
  • "Quelles sont les technologies les plus utilisées dans mon SI ?"
  • "Identifie les applications qui n'ont pas de propriétaire défini"
  • "Donne-moi un résumé de l'état de santé de mon infrastructure"

Limitations connues (Bêta)

  • 🔄 Les opérations complexes peuvent nécessiter plusieurs interactions
  • ⏱️ Les temps de réponse peuvent varier selon la taille de votre inventaire
  • 🔍 La recherche est limitée aux types de fiches principaux
  • 📊 Les graphes de dépendances complexes peuvent être simplifiés dans les réponses
  • 🔒 Le proxy STDIO nécessite Python 3.7+ et la bibliothèque requests

Support et feedback

Besoin d'aide ?

Signaler un problème

Si vous rencontrez un problème avec le MCP ou le proxy STDIO, veuillez nous contacter avec les informations suivantes :

  • Version de Carto-SI
  • Version de votre client MCP (ex: Claude Desktop)
  • Version de Python (si vous utilisez le proxy STDIO)
  • Description du problème
  • Logs du proxy (si disponibles)
  • Message d'erreur complet

Prêt à essayer ? Assurez-vous d'avoir au minimum la version 4.9 de Carto-SI, téléchargez le proxy STDIO et configurez votre client MCP dès maintenant ! 🚀

Last modified on