Simple Log Service (SLS) fournit un serveur Model Context Protocol (MCP) officiel qui connecte les agents d'IA à vos ressources SLS. Après avoir ajouté le serveur MCP SLS à un agent tel que Qoder ou Codex, vous pouvez parcourir les projets et les LogStores, interroger et analyser les journaux, et diagnostiquer les alertes en utilisant le langage naturel.
Fonctionnalités du serveur MCP SLS
Le serveur MCP SLS propose 11 outils répartis en trois catégories. L'agent d'IA sélectionne l'outil correspondant à votre demande, ce qui vous évite de devoir mémoriser les points d'entrée de la console ou rédiger manuellement des instructions de requête.
Découverte des ressources : Demandez quels projets et LogStores vous possédez au lieu de vous connecter à la console pour les parcourir un par un.
Interrogation et analyse des journaux : Décrivez en une phrase ce que vous souhaitez interroger plutôt que de naviguer entre les pages de la console. Ces outils couvrent le parcours classique d'analyse des journaux : vérification de la configuration de l'index, exécution d'une requête, puis examen de la distribution temporelle.
-
Diagnostic des alertes : Lorsqu'une alerte est déclenchée, demandez à l'agent d'IA d'en analyser la cause et de localiser rapidement le problème.
Pour consulter les outils de chaque catégorie, reportez-vous à la section Outils pris en charge.
Fonctionnement du serveur MCP SLS
Model Context Protocol (MCP) est une norme ouverte qui permet aux assistants d'IA de se connecter à des sources de données et à des outils externes de manière uniforme. Lorsqu'un service fournit un serveur MCP, les assistants d'IA peuvent utiliser ses fonctionnalités selon le principe du Plug and Play.
Le serveur MCP SLS s'exécute sur votre machine locale. Une fois qu'un agent d'IA y est connecté, le serveur appelle l'API OpenAPI SLS en votre nom en utilisant les identifiants OAuth que vous avez configurés. Le schéma suivant illustre le parcours de bout en bout.
AI agent (Qoder, Codex, and so on)
│ MCP protocol (stdio transport)
▼
alibabacloud-sls-mcp-proxy (runs locally)
│ OAuth credentials (from an Alibaba Cloud CLI profile)
▼
Simple Log Service (SLS) OpenAPI
Considérations préalables
Examinez les points suivants avant de connecter le serveur MCP SLS à un agent d'IA :
Authentification : Le serveur MCP SLS s'authentifie auprès de SLS à l'aide d'identifiants OAuth stockés dans un profil Alibaba Cloud CLI. Vous vous connectez via un navigateur, ce qui vous évite de créer ou de coller une paire AccessKey.
Autorisation RAM unique : Avant que toute personne disposant d'un compte Alibaba Cloud ne se connecte avec OAuth pour la première fois, un administrateur RAM doit installer l'application
official-cliet ajouter les utilisateurs RAM ou les rôles qui utilisent Alibaba Cloud CLI à la liste d'autorisation. Pour obtenir des instructions, consultez la section Accorder l'accès OAuth à Alibaba Cloud CLI.Accès indépendant de la région : Vous n'avez pas besoin de spécifier la région d'un projet lorsque vous y accédez. Le serveur MCP SLS fait correspondre automatiquement la région appropriée, de sorte qu'un seul profil d'identifiants vous offre un accès interrégional à tous vos projets.
Comportement des outils d'alerte : Les outils de diagnostic des alertes sont en lecture seule et ne modifient pas l'état des alertes. Le masquage varie selon l'outil :
sls_list_alertsne renvoie ni instructions de requête ni cibles de notification, etsls_get_alertrenvoie des requêtes de diagnostic avec les configurations de notification sensibles masquées.
Prérequis
Un compte Alibaba Cloud. Si vous utilisez un utilisateur Resource Access Management (RAM), celui-ci doit disposer des autorisations d'accès pour SLS.
L'outil
uvinstallé sur votre machine locale. Le serveur MCP SLS est démarré avec la commandeuvx, fournie avecuv. Pour les instructions d'installation, consultez la documentation uv.
Accorder l'accès OAuth à Alibaba Cloud CLI
Un administrateur RAM effectue les étapes suivantes une seule fois pour le compte Alibaba Cloud. Vous n'avez pas besoin de les répéter ultérieurement. Si vous n'êtes pas administrateur RAM, confirmez auprès de votre administrateur que cette autorisation est complète avant de commencer le démarrage rapide.
Installez l'application CLI : Connectez-vous à la console RAM. Dans le volet de navigation de gauche, choisissez OAuth (Preview), puis cliquez sur l'onglet Third-party Application. Si l'application
official-cline figure pas dans la liste, sélectionnez Official CLI pour l'installer.Attribuez des identités : Ouvrez la page des détails de l'application
official-cliet cliquez sur l'onglet Allowed Identities. Cliquez sur Add Users or roles pour ajouter les utilisateurs RAM ou les rôles devant utiliser Alibaba Cloud CLI à la liste d'autorisation.
Démarrage rapide
Les étapes suivantes sont effectuées par l'utilisateur de l'agent d'IA. Elles supposent que l'autorisation OAuth unique décrite dans la section précédente est terminée.
Étape 1 : Installer Alibaba Cloud CLI
Exécutez la commande suivante pour installer Alibaba Cloud CLI.
sudo /bin/bash -c "$(curl -fsSL https://aliyuncli.alicdn.com/install.sh)"
Une fois l'installation terminée, exécutez aliyun version. Si la commande renvoie un numéro de version, l'installation a réussi.
Étape 2 : Se connecter avec OAuth et créer un profil d'identifiants
Exécutez la commande suivante. Une page de navigateur s'ouvre automatiquement. Terminez la connexion pour finaliser l'authentification.
aliyun configure --mode OAuth
Une fois la connexion réussie, Alibaba Cloud CLI stocke les identifiants OAuth dans un profil. Le nom de profil par défaut est default. Pour gérer plusieurs comptes ou environnements, utilisez le paramètre -p afin de spécifier un nom de profil personnalisé.
aliyun configure --mode OAuth -p sls-test-oauth
Notez le nom du profil que vous utilisez. Vous le spécifierez avec le paramètre --profile à l'étape 3.
Saisissez cn-hangzhou lorsque l'interface CLI vous demande une région. La région que vous spécifiez ne limite pas les projets auxquels le serveur MCP SLS peut accéder.
Étape 3 : Ajouter le serveur MCP SLS à votre agent d'IA
Effectuez la configuration pour le client que vous utilisez. Il n'est pas nécessaire de configurer plus d'un client. Le serveur MCP SLS utilise le transport stdio standard, vous pouvez donc le connecter à tout agent d'IA prenant en charge MCP : définissez la commande de démarrage sur uvx et les arguments sur alibabacloud-sls-mcp-proxy@latest --profile <your profile name>.
Les exemples suivants utilisent le profil default. Si vous avez créé un profil personnalisé avec le paramètre -p à l'étape 2, remplacez default par ce nom de profil.
La commande uvx alibabacloud-sls-mcp-proxy@latest télécharge et exécute localement la dernière version du serveur MCP SLS. Chaque commande de cette étape nécessite uvx, fourni avec uv.
Clients configurés via une commande CLI
Qoder
# Add the MCP Server
qodercli mcp add \
--scope user \
--transport stdio \
alibabacloud-sls \
-- uvx alibabacloud-sls-mcp-proxy@latest --profile default
# List the MCP Servers that you added
qodercli mcp list
Codex
# Add the MCP Server
codex mcp add alibabacloud-sls \
-- uvx alibabacloud-sls-mcp-proxy@latest --profile default
# List the MCP Servers that you added
codex mcp list
Claude Code
# Add the MCP Server. --scope user applies the configuration to all projects of the current user.
claude mcp add --scope user alibabacloud-sls \
-- uvx alibabacloud-sls-mcp-proxy@latest --profile default
# List the MCP Servers that you added
claude mcp list
OpenClaw
# Add the MCP Server
openclaw mcp add alibabacloud-sls \
--command uvx \
--arg alibabacloud-sls-mcp-proxy@latest \
--arg --profile \
--arg default
# List the MCP Servers that you added
openclaw mcp list
Clients configurés via un fichier de configuration
Cursor, Cline, Cherry Studio et autres clients basés sur JSON
Pour les clients qui configurent les serveurs MCP dans un fichier JSON, ajoutez le contenu suivant au fichier de configuration MCP :
{
"mcpServers": {
"alibabacloud-sls": {
"command": "uvx",
"args": [
"alibabacloud-sls-mcp-proxy@latest",
"--profile",
"default"
]
}
}
}
Hermes Agent
Hermes Agent gère les serveurs MCP dans un fichier de configuration. Modifiez le fichier ~/.hermes/config.yaml dans votre répertoire personnel, ou créez-le s'il n'existe pas, et ajoutez le contenu suivant :
mcp_servers:
alibabacloud-sls:
command: uvx
args:
- alibabacloud-sls-mcp-proxy@latest
- --profile
- default
Enregistrez le fichier et redémarrez Hermes Agent, ou exécutez /reload-mcp dans une session pour recharger la configuration MCP.
Étape 4 : Vérifier la connexion
Ouvrez votre agent d'IA et saisissez une demande en langage naturel.
List the SLS projects that I can access
Si l'agent d'IA renvoie votre liste de projets, le serveur MCP SLS est connecté. Si la liste des projets n'est pas renvoyée, vérifiez les points suivants :
La commande
uvxest disponible sur votre machine locale.L'autorisation OAuth unique couvre votre utilisateur ou rôle RAM.
La valeur
--profiledans la configuration du client correspond au nom du profil que vous avez créé à l'étape 2.
Exemples d'utilisation
Une fois la connexion établie, posez directement des questions en langage naturel dans votre agent d'IA. Les exemples suivants illustrent des utilisations typiques.
Exemple 1 : Trouver des ressources
List the SLS projects that I can access in the China (Hangzhou) region
L'agent d'IA appelle sls_list_projects et renvoie la liste des projets. Vous pouvez ensuite poser une question de suivi :
Which Logstores does the nginx-prod project contain?
L'agent d'IA appelle sls_list_logstores et répertorie les LogStores correspondants.
Exemple 2 : Interroger les journaux
Query the logs that contain error in the access-log Logstore of the nginx-prod project over the last 1 hour
L'agent d'IA appelle sls_query_logs et utilise automatiquement une plage de temps relative telle que now-1h à now. Pour comprendre la distribution du volume de journaux, posez une question de suivi :
Approximately how many logs are there? Show me the distribution over time
L'agent d'IA appelle sls_get_log_histogram et renvoie le nombre total de journaux correspondants ainsi que leur distribution temporelle.
Exemple 3 : Afficher le contexte du journal
Un seul journal ne fournit souvent pas suffisamment d'informations lors du dépannage. Demandez à l'agent d'IA de récupérer le contexte du journal :
Show me the 20 log lines before and after this error log
L'agent d'IA utilise les valeurs __pack_id__ et __pack_meta__ du résultat de la requête précédente, appelle sls_get_context_logs, et renvoie le contexte complet avant et après le journal cible.
Exemple 4 : Diagnostiquer une alerte
Why was my cpu-high alert triggered over the last 24 hours? Run a diagnosis for me
L'agent d'IA appelle sls_diagnose_alert, qui résume le cycle de vie, la gravité, la raison de l'évaluation et les preuves de requête de l'instance d'alerte. Ce résumé vous aide à localiser rapidement la cause.
Déboguer avec MCP Inspector
Pour déboguer les outils et les paramètres du serveur MCP SLS pendant le développement, utilisez l'outil officiel MCP Inspector pour ouvrir une interface de débogage basée sur un navigateur. Cette commande nécessite Node.js sur votre machine locale, car Node.js fournit la commande npx. Remplacez sls-test-oauth par le nom de votre profil d'identifiants.
npx -y @modelcontextprotocol/inspector@latest -- uvx alibabacloud-sls-mcp-proxy@latest --profile sls-test-oauth
Outils pris en charge
|
Outil |
Catégorie |
Description |
|
|
Découverte des ressources |
Récupère les projets SLS auxquels l'appelant actuel peut accéder. Prend en charge des conditions de filtrage telles que la région, le nom et le groupe de ressources. |
|
|
Découverte des ressources |
Récupère les LogStores qui stockent les données de journal dans un projet spécifié. Cet outil exclut les metricstores. |
|
|
Découverte des ressources |
Récupère les metricstores qui stockent les données de métriques dans un projet spécifié. |
|
|
Interrogation et analyse des journaux |
Récupère la configuration de l'index d'un LogStore. |
|
|
Interrogation et analyse des journaux |
Interroge les journaux bruts ou exécute une analyse SQL SLS. Prend en charge les plages de temps relatives. |
|
|
Interrogation et analyse des journaux |
Interroge le nombre total de journaux correspondants et leur distribution temporelle dans une plage de temps spécifiée. |
|
|
Interrogation et analyse des journaux |
Récupère le contexte avant et après un journal cible. Les paramètres |
|
|
Diagnostic des alertes |
Répertorie un résumé de sécurité des règles d'alerte par page. Les instructions de requête et les cibles de notification ne sont pas renvoyées. |
|
|
Diagnostic des alertes |
Récupère la planification, les conditions de déclenchement et les requêtes de diagnostic d'une règle d'alerte unique. Les configurations de notification sensibles sont masquées. |
|
|
Diagnostic des alertes |
Interroge l'historique de déclenchement et de résolution d'une règle d'alerte, ainsi que les résultats de requête enregistrés par le moteur d'alerte à ce moment-là. |
|
|
Diagnostic des alertes |
Résume le cycle de vie, la gravité, la raison de l'évaluation et les preuves de requête des instances d'alerte récentes. Ne modifie pas l'état de l'alerte. |
Paramètres des outils
Les tableaux suivants décrivent les paramètres d'entrée de chaque outil. Lorsque vous appelez un outil via un agent IA, il n'est généralement pas nécessaire de gérer ces paramètres, car l'agent IA les renseigne automatiquement. Consultez ces tableaux pour une utilisation avancée et le débogage.
sls_list_projects
|
Paramètre |
Type |
Obligatoire |
Description |
|
|
integer |
Non |
Décalage de pagination basé sur zéro. Valeur par défaut : 0. |
|
|
integer |
Non |
Nombre de projets à renvoyer par page. La valeur par défaut et la valeur maximale dans SLS sont toutes deux de 500. |
|
|
string |
Non |
Filtre par ID de région SLS, par exemple |
|
|
string |
Non |
Filtre par nom de projet. Ce champ sert de condition de recherche et n'est pas validé selon les règles exactes de dénomination des ressources. |
|
|
string |
Non |
Filtre par ID de groupe de ressources. |
|
|
string |
Non |
Condition de recherche en texte libre pour les projets. |
sls_list_logstores
|
Paramètre |
Type |
Obligatoire |
Description |
|
|
string |
Oui |
Nom du projet SLS cible. |
|
|
integer |
Non |
Décalage de pagination basé sur zéro. Valeur par défaut : 0. |
|
|
integer |
Non |
Nombre de LogStores à renvoyer par page. La valeur par défaut et la valeur maximale dans SLS sont toutes deux de 500. |
sls_list_metricstores
|
Paramètre |
Type |
Obligatoire |
Description |
|
|
string |
Oui |
Nom du projet SLS cible. |
|
|
integer |
Non |
Décalage de pagination basé sur zéro. Valeur par défaut : 0. |
|
|
integer |
Non |
Nombre de metricstores à renvoyer par page. La valeur par défaut et la valeur maximale dans SLS sont toutes deux de 500. |
sls_get_logstore_index
|
Paramètre |
Type |
Obligatoire |
Description |
|
|
string |
Oui |
Nom du projet SLS cible. |
|
|
string |
Oui |
Nom du LogStore dont vous souhaitez lire la configuration d'index. |
sls_query_logs
|
Paramètre |
Type |
Obligatoire |
Description |
|
|
string |
Oui |
Nom du projet SLS cible. |
|
|
string |
Oui |
Nom du LogStore que vous souhaitez interroger. |
|
|
string |
Non |
Instruction de requête ou d'analyse SLS. Valeur par défaut : vide. |
|
|
string |
Non |
Condition de filtre de topic SLS. |
|
|
string |
Oui |
Début de la plage temporelle de la requête. Le point dans le temps spécifié est inclus, par exemple |
|
|
string |
Oui |
Fin de la plage temporelle de la requête. Le point dans le temps spécifié est exclu, par exemple |
|
|
integer |
Non |
Nombre maximal de lignes à renvoyer pour une requête non SQL. La valeur par défaut et la valeur maximale dans SLS sont toutes deux de 100. |
|
|
integer |
Non |
Décalage de résultat basé sur zéro pour une requête non SQL. Valeur par défaut : 0. |
|
|
boolean |
Non |
Indique si les résultats d'une requête non SQL doivent être renvoyés dans l'ordre chronologique inverse. Valeur par défaut : |
|
|
boolean |
Non |
Indique s'il faut utiliser des ressources de calcul SQL dédiées. Valeur par défaut : |
sls_get_log_histogram
|
Paramètre |
Type |
Obligatoire |
Description |
|
|
string |
Oui |
Nom du projet SLS cible. |
|
|
string |
Oui |
Nom du LogStore que vous souhaitez interroger. |
|
|
integer |
Oui |
Début de la plage temporelle de la requête, en secondes Unix. Le point dans le temps spécifié est inclus. |
|
|
integer |
Oui |
Fin de la plage temporelle de la requête, en secondes Unix. Le point dans le temps spécifié est exclu. |
|
|
string |
Non |
Condition de filtre de topic SLS. |
|
|
string |
Non |
Expression de requête SLS. L'analyse SQL n'est pas prise en charge. |
sls_get_context_logs
|
Paramètre |
Type |
Obligatoire |
Description |
|
|
string |
Oui |
Nom du projet SLS cible. |
|
|
string |
Oui |
Nom du LogStore contenant le journal cible. |
|
|
string |
Oui |
Valeur |
|
|
string |
Oui |
Valeur |
|
|
integer |
Non |
Nombre de lignes de journal à renvoyer avant le journal cible. Valeur par défaut : 10. Valeur maximale : 100. |
|
|
integer |
Non |
Nombre de lignes de journal à renvoyer après le journal cible. Valeur par défaut : 10. Valeur maximale : 100. |
sls_list_alerts
|
Paramètre |
Type |
Obligatoire |
Description |
|
|
string |
Oui |
Nom du projet SLS contenant les règles d'alerte cibles. |
|
|
string |
Non |
Condition de filtre par nom de règle d'alerte. |
|
|
string |
Non |
Condition de filtre par fournisseur de ressource de tableau de bord. |
|
|
integer |
Non |
Décalage de pagination basé sur zéro. Valeur par défaut : 0. |
|
|
integer |
Non |
Nombre de règles d'alerte à renvoyer par page. Si la valeur est 0 ou si le paramètre est omis, la valeur par défaut de l'API SLS est utilisée. |
sls_get_alert
|
Paramètre |
Type |
Obligatoire |
Description |
|
|
string |
Oui |
Nom du projet SLS contenant la règle d'alerte cible. |
|
|
string |
Oui |
Nom exact de la règle d'alerte que vous souhaitez récupérer. |
sls_list_alert_history
|
Paramètre |
Type |
Obligatoire |
Description |
|
|
string |
Oui |
Nom du projet SLS contenant le LogStore |
|
|
string |
Non |
Filtre par nom exact de la règle d'alerte. |
|
|
string |
Non |
Filtre par ID exact de l'instance d'alerte. |
|
|
string |
Non |
Filtre par état de cycle de vie de l'alerte, par exemple |
|
|
string |
Oui |
Début de la plage temporelle de la requête d'historique. Le point dans le temps spécifié est inclus. Prend en charge les secondes Unix ou une heure relative telle que |
|
|
string |
Oui |
Fin de la plage temporelle de la requête d'historique. Le point dans le temps spécifié est exclu. Prend en charge les secondes Unix ou une heure relative telle que |
|
|
integer |
Non |
Nombre maximal d'événements d'historique. Valeur par défaut : 20. Valeur maximale : 100. |
|
|
integer |
Non |
Décalage de résultat d'historique basé sur zéro. Valeur par défaut : 0. |
sls_diagnose_alert
|
Paramètre |
Type |
Obligatoire |
Description |
|
|
string |
Oui |
Nom du projet SLS contenant la règle d'alerte et le LogStore |
|
|
string |
Oui |
Nom exact de la règle d'alerte que vous souhaitez diagnostiquer. |
|
|
string |
Non |
ID de l'instance d'alerte. Si vous omettez ce paramètre, la dernière instance correspondante dans la plage temporelle de diagnostic est diagnostiquée. |
|
|
string |
Oui |
Début de la plage temporelle de diagnostic. Le point dans le temps spécifié est inclus. Prend en charge les secondes Unix ou une heure relative telle que |
|
|
string |
Oui |
Fin de la plage temporelle de diagnostic. Le point dans le temps spécifié est exclu. Prend en charge les secondes Unix ou une heure relative telle que |
|
|
integer |
Non |
Nombre des derniers événements d'historique à renvoyer comme preuve de diagnostic. Valeur par défaut : 20. Valeur maximale : 100. |
FAQ
Dois-je configurer une paire AccessKey pour utiliser SLS MCP Server ?
Non. SLS MCP Server prend en charge la connexion OAuth : vous vous connectez via un navigateur pour effectuer l'authentification, et les identifiants sont stockés dans un profil Alibaba Cloud CLI. Vous ne créez ni ne collez jamais de paire AccessKey.
L'autorisation d'administrateur RAM doit-elle être répétée ?
Non. Il s'agit d'une configuration unique. Une fois qu'un administrateur RAM a installé l'application official-cli et attribué des utilisateurs ou des rôles RAM, ces utilisateurs peuvent se connecter directement avec OAuth sans répéter les étapes.
Comment gérer plusieurs comptes ou plusieurs environnements ?
Utilisez le paramètre -p pour créer plusieurs profils, par exemple aliyun configure --mode OAuth -p sls-test-oauth. Spécifiez ensuite le nom de profil correspondant avec le paramètre --profile lorsque vous ajoutez SLS MCP Server à votre client. Vous pouvez également ajouter un serveur MCP distinct pour chaque profil.
Quelle région dois-je saisir lors de la configuration des identifiants ?
Saisissez cn-hangzhou lorsque l'interface CLI vous demande une région, comme décrit à l'étape 2. Cette valeur ne limite pas les projets accessibles, car SLS MCP Server fait correspondre automatiquement la région appropriée lorsque vous accédez à un projet. Pour afficher les ressources d'une seule région, filtrez à l'aide du paramètre region_id lors de la liste des projets.
Que faire si la commande uvx est introuvable ?
La commande uvx est fournie par l'outil uv, qui est un prérequis pour SLS MCP Server. Installez d'abord uv. Pour obtenir les instructions d'installation, consultez la documentation uv. Une fois l'installation terminée, ouvrez un nouveau terminal et réessayez.