Prerequis
- Node.js 18 ou version ulterieure installe sur votre machine
- Une cle API Avala (generez-en une dans Mission Control sous Settings > Security)
Installation
Claude Desktop
Ouvrez votre fichier de configuration Claude Desktop :- macOS :
~/Library/Application Support/Claude/claude_desktop_config.json - Windows :
%APPDATA%\Claude\claude_desktop_config.json
Cursor
Creez ou modifiez.cursor/mcp.json a la racine de votre projet (ou dans le repertoire de configuration globale) :
VS Code
Creez ou modifiez.vscode/mcp.json dans votre espace de travail :
Claude Code
Ajoutez le MCP server Avala a Claude Code avec une seule commande :ChatGPT
Le support MCP de ChatGPT est en evolution. Consultez la
documentation d’OpenAI pour les dernieres
instructions d’installation et la disponibilite dans votre plan et votre region.
Mode de securite MCP
Pour des raisons de securite, le MCP server est en lecture seule par defaut. Les outils de mutation ne sont pas enregistres sauf si vous les activez explicitement avec :create_datasetcreate_agent,delete_agentcreate_annotation_issue,update_annotation_issue,delete_annotation_issuecreate_storage_config,delete_storage_configcreate_webhook,delete_webhookcreate_exportevaluate_qualitycompute_consensusfleet_register_device,fleet_acknowledge_alert
Outils MCP disponibles
Une fois connecte, les outils suivants sont disponibles pour l’assistant IA :| Outil | Description |
|---|---|
list_datasets | Lister tous les datasets de votre espace de travail. |
get_dataset | Obtenir les details d’un dataset specifique. |
create_dataset | Creer un nouveau dataset pour l’annotation. mutation |
list_projects | Lister tous les projets d’annotation. |
get_project | Obtenir les details complets d’un projet. |
create_export | Declencher un nouvel export pour un dataset ou un projet. (necessite AVALA_MCP_ENABLE_MUTATIONS=true) |
get_export_status | Verifier le statut d’un export. |
list_exports | Lister tous les exports. |
get_workspace_stats | Obtenir un resume de l’utilisation de l’espace de travail. |
list_tasks | Lister les taches avec filtrage optionnel. |
get_task | Obtenir les details d’une tache. |
list_agents | Lister les agents d’automatisation. |
get_agent | Obtenir les details d’un agent. |
create_agent | Creer un nouvel agent d’automatisation. (necessite AVALA_MCP_ENABLE_MUTATIONS=true) |
delete_agent | Supprimer un agent. (necessite AVALA_MCP_ENABLE_MUTATIONS=true) |
list_webhooks | Lister les abonnements webhook. |
create_webhook | Creer un abonnement webhook. (necessite AVALA_MCP_ENABLE_MUTATIONS=true) |
delete_webhook | Supprimer un webhook. (necessite AVALA_MCP_ENABLE_MUTATIONS=true) |
list_storage_configs | Lister les configurations de stockage. |
create_storage_config | Creer une configuration de stockage. (necessite AVALA_MCP_ENABLE_MUTATIONS=true) |
test_storage_config | Tester la connectivite d’un stockage. |
delete_storage_config | Supprimer une configuration de stockage. (necessite AVALA_MCP_ENABLE_MUTATIONS=true) |
list_quality_targets | Lister les objectifs de qualite d’un projet. |
evaluate_quality | Evaluer les objectifs de qualite. (necessite AVALA_MCP_ENABLE_MUTATIONS=true) |
get_consensus_summary | Obtenir le resume de consensus d’un projet. |
compute_consensus | Declencher le calcul de consensus. (necessite AVALA_MCP_ENABLE_MUTATIONS=true) |
list_organizations | Lister les organisations. |
get_organization | Obtenir les details d’une organisation. |
list_slices | Lister les slices d’un proprietaire. |
get_slice | Obtenir les details d’un slice. |
list_annotation_issues_by_sequence | Lister les problemes d’annotation d’une sequence. |
create_annotation_issue | Creer un nouveau probleme d’annotation. (necessite AVALA_MCP_ENABLE_MUTATIONS=true) |
update_annotation_issue | Mettre a jour un probleme d’annotation. (necessite AVALA_MCP_ENABLE_MUTATIONS=true) |
delete_annotation_issue | Supprimer un probleme d’annotation. (necessite AVALA_MCP_ENABLE_MUTATIONS=true) |
list_annotation_issues_by_dataset | Lister les problemes d’annotation d’un dataset. |
get_annotation_issue_metrics | Obtenir les metriques de problemes d’un dataset. |
list_qc_tools | Lister les outils QC disponibles. |
Fleet (Apercu)
Les outils Fleet sont en apercu et peuvent evoluer. Ils fournissent un acces en lecture et en ecriture aux appareils, enregistrements, evenements, alertes et regles de la flotte.
| Outil | Description |
|---|---|
fleet_list_devices | Lister les appareils de la flotte avec des filtres optionnels. |
fleet_get_device | Obtenir les informations detaillees d’un appareil de la flotte. |
fleet_list_recordings | Lister les enregistrements de la flotte avec des filtres optionnels. |
fleet_get_recording | Obtenir les informations detaillees d’un enregistrement. |
fleet_list_events | Lister les evenements de la flotte avec des filtres optionnels. |
fleet_list_alerts | Lister les alertes de la flotte avec des filtres optionnels. |
fleet_list_rules | Lister les regles de la flotte avec des filtres optionnels. |
fleet_register_device | Enregistrer un nouvel appareil de flotte. mutation |
fleet_acknowledge_alert | Acquitter une alerte de flotte. mutation |
Definitions des outils
Schemas detailles pour chaque outil MCP. Tous les outils retournent du JSON sous forme de contenu texte.list_datasets
Liste tous les datasets de l’espace de travail. Parameters:dataType(string, optional) — Filtrer par type de donnees (image,video,lidar,mcap,splat)name(string, optional) — Filtrer par nom de dataset (correspondance partielle)status(string, optional) — Filtrer par statut du datasetvisibility(string, optional) — Filtrer par visibilite (privateoupublic)limit(number, optional) — Nombre maximum de datasets a retournercursor(string, optional) — Curseur de pagination d’une requete precedente
get_dataset
Obtient les details d’un dataset specifique. Parameters:uid(string, required) — L’identifiant unique (UUID) du dataset
list_projects
Liste tous les projets d’annotation. Parameters:limit(number, optional) — Nombre maximum de projets a retournercursor(string, optional) — Curseur de pagination d’une requete precedente
get_project
Obtient les details d’un projet specifique. Parameters:uid(string, required) — L’identifiant unique (UUID) du projet
create_dataset
Cree un nouveau dataset pour l’annotation. Parameters:name(string, required) — Nom d’affichage du datasetslug(string, required) — Identifiant compatible URL pour le datasetdataType(string, required) — Type de donnees :image,video,lidaroumcapisSequence(boolean, optional) — Si le dataset contient des sequences (par defaut : false)visibility(string, optional) — Visibilite du dataset :privateoupublic(par defaut :private)createMetadata(boolean, optional) — Si les metadonnees du dataset doivent etre creees (par defaut : true)providerConfig(object, optional) — Configuration du fournisseur de stockage cloudownerName(string, optional) — Nom d’utilisateur ou email du proprietaire du dataset
create_export
Declenche un nouvel export pour un dataset ou un projet. Parameters:project(string, optional) — UID du projet a exporterdataset(string, optional) — UID du dataset a exporter
get_export_status
Verifie le statut d’un export. Parameters:uid(string, required) — L’identifiant unique (UUID) de l’export
list_exports
Liste tous les exports de l’espace de travail. Parameters:limit(number, optional) — Nombre maximum d’exports a retournercursor(string, optional) — Curseur de pagination d’une requete precedente
get_workspace_stats
Obtient un apercu rapide du contenu de l’espace de travail (datasets, projets, exports). Parameters: Aucun Exemple de reponse :list_tasks
Liste les taches avec filtrage optionnel par projet ou statut. Parameters:project(string, optional) — Filtrer par UID de projetstatus(string, optional) — Filtrer par statut de tachelimit(number, optional) — Nombre maximum de taches a retournercursor(string, optional) — Curseur de pagination d’une requete precedente
get_task
Obtient les informations detaillees d’une tache specifique. Parameters:uid(string, required) — L’identifiant unique (UUID) de la tache
list_agents
Liste tous les agents d’automatisation configures dans votre espace de travail. Parameters:limit(number, optional) — Nombre maximum d’agents a retournercursor(string, optional) — Curseur de pagination d’une requete precedente
get_agent
Obtient les informations detaillees d’un agent d’automatisation specifique. Parameters:uid(string, required) — L’identifiant unique (UUID) de l’agent
create_agent
Cree un nouvel agent d’automatisation avec des abonnements aux evenements et une URL de rappel. Parameters:name(string, required) — Nom de l’agentevents(string[], required) — Liste des types d’evenements auxquels l’agent s’abonnecallbackUrl(string, optional) — URL pour recevoir les rappels d’evenementsdescription(string, optional) — Description de l’agentproject(string, optional) — UID du projet pour limiter la portee de l’agenttaskTypes(string[], optional) — Types de taches geres par l’agent
delete_agent
Supprime un agent d’automatisation par son UID. Parameters:uid(string, required) — L’identifiant unique (UUID) de l’agent a supprimer
list_webhooks
Liste tous les abonnements webhook de votre espace de travail. Parameters:limit(number, optional) — Nombre maximum de webhooks a retournercursor(string, optional) — Curseur de pagination d’une requete precedente
create_webhook
Cree un nouvel abonnement webhook pour des evenements specifiques. Parameters:targetUrl(string, required) — URL pour recevoir les livraisons de webhookevents(string[], required) — Liste des types d’evenements auxquels s’abonner
delete_webhook
Supprime un abonnement webhook par son UID. Parameters:uid(string, required) — L’identifiant unique (UUID) du webhook a supprimer
list_storage_configs
Liste toutes les configurations de stockage de votre espace de travail. Parameters:limit(number, optional) — Nombre maximum de configurations de stockage a retournercursor(string, optional) — Curseur de pagination d’une requete precedente
create_storage_config
Cree une nouvelle configuration de stockage (S3 ou Google Cloud Storage). Parameters:name(string, required) — Nom de la configuration de stockageprovider(string, required) — Type de fournisseur de stockage (s3ougcs)s3BucketName(string, optional) — Nom du bucket S3s3BucketRegion(string, optional) — Region du bucket S3s3BucketPrefix(string, optional) — Prefixe de cle S3s3AccessKeyId(string, optional) — ID de cle d’acces S3 (stocke de maniere securisee cote serveur)s3SecretAccessKey(string, optional) — Cle d’acces secrete S3 (stockee de maniere securisee cote serveur)s3IsAccelerated(boolean, optional) — Activer S3 Transfer AccelerationgcStorageBucketName(string, optional) — Nom du bucket Google Cloud StoragegcStoragePrefix(string, optional) — Prefixe Google Cloud StoragegcStorageAuthJsonContent(string, optional) — Identifiants JSON du compte de service GCS (stockes de maniere securisee cote serveur)
test_storage_config
Teste la connectivite d’une configuration de stockage. Parameters:uid(string, required) — L’identifiant unique (UUID) de la configuration de stockage a tester
delete_storage_config
Supprime une configuration de stockage par son UID. Parameters:uid(string, required) — L’identifiant unique (UUID) de la configuration de stockage a supprimer
list_quality_targets
Liste les objectifs de qualite configures pour un projet specifique. Parameters:projectUid(string, required) — L’identifiant unique (UUID) du projetlimit(number, optional) — Nombre maximum d’objectifs de qualite a retournercursor(string, optional) — Curseur de pagination d’une requete precedente
evaluate_quality
Evalue tous les objectifs de qualite d’un projet et retourne leur statut actuel. Parameters:projectUid(string, required) — L’identifiant unique (UUID) du projet a evaluer
get_consensus_summary
Obtient un resume de consensus pour un projet incluant les scores moyens/medians et la distribution. Parameters:projectUid(string, required) — L’identifiant unique (UUID) du projet
compute_consensus
Declenche le calcul de consensus pour un projet. Parameters:projectUid(string, required) — L’identifiant unique (UUID) du projet
list_organizations
Liste toutes les organisations dont vous etes membre. Parameters:limit(number, optional) — Nombre maximum d’organisations a retournercursor(string, optional) — Curseur de pagination d’une requete precedente
get_organization
Obtient les informations detaillees d’une organisation specifique. Parameters:slug(string, required) — L’identifiant slug de l’organisation
list_slices
Liste les slices d’un proprietaire (utilisateur ou organisation). Parameters:owner(string, required) — Nom du proprietaire (slug d’utilisateur ou d’organisation)limit(number, optional) — Nombre maximum de slices a retournercursor(string, optional) — Curseur de pagination d’une requete precedente
get_slice
Obtient les informations detaillees d’un slice specifique. Parameters:owner(string, required) — Nom du proprietaire (slug d’utilisateur ou d’organisation)slug(string, required) — Le slug du slice
list_annotation_issues_by_sequence
Liste tous les problemes d’annotation d’une sequence specifique. Parameters:sequenceUid(string, required) — L’UUID de la sequencedatasetItemUid(string, optional) — Filtrer par UUID de l’element de datasetprojectUid(string, optional) — Filtrer par UUID du projet
create_annotation_issue
Cree un nouveau probleme d’annotation sur une sequence. Parameters:sequenceUid(string, required) — L’UUID de la sequencetoolUid(string, required) — UUID de l’outil d’annotationproblemUid(string, required) — UUID du type de problemedatasetItemUid(string, optional) — UUID de l’element de datasetprojectUid(string, optional) — UUID du projetpriority(string, optional) — Niveau de priorite :lowest,low,medium,high,highestseverity(string, optional) — Niveau de severite :critical,moderatedescription(string, optional) — Description du problemewrongClass(string, optional) — Etiquette de classe incorrectecorrectClass(string, optional) — Etiquette de classe correcteobjectUid(string, optional) — UUID de l’objet d’annotationshouldReAnnotate(boolean, optional) — Si une re-annotation est necessaireshouldDelete(boolean, optional) — Si l’annotation doit etre supprimeeframesAffected(string, optional) — Images affectees par le probleme
update_annotation_issue
Met a jour un probleme d’annotation existant (statut, priorite, etc.). Parameters:sequenceUid(string, required) — L’UUID de la sequenceissueUid(string, required) — L’UUID du probleme d’annotationstatus(string, optional) — Statut :open,relabeling,in_review,completed,cant_reproduce,awaiting_feedback,no_action_takenpriority(string, optional) — Niveau de priorite :lowest,low,medium,high,highestseverity(string, optional) — Niveau de severite :critical,moderatedescription(string, optional) — Description mise a jourtoolUid(string, optional) — UUID de l’outil d’annotationproblemUid(string, optional) — UUID du type de problemewrongClass(string, optional) — Etiquette de classe incorrecteframesAffected(string, optional) — Images affectees par le probleme
delete_annotation_issue
Supprime un probleme d’annotation. Parameters:sequenceUid(string, required) — L’UUID de la sequenceissueUid(string, required) — L’UUID du probleme d’annotation a supprimer
list_annotation_issues_by_dataset
Liste tous les problemes d’annotation d’un dataset. Parameters:owner(string, required) — Nom d’utilisateur du proprietaire du datasetdatasetSlug(string, required) — Slug du datasetsequenceUid(string, optional) — Filtrer par UUID de sequence
get_annotation_issue_metrics
Obtient les metriques agregees des problemes d’annotation d’un dataset (nombre par statut/priorite/severite, temps de cloture). Parameters:owner(string, required) — Nom d’utilisateur du proprietaire du datasetdatasetSlug(string, required) — Slug du datasetsequenceUid(string, optional) — Filtrer par UUID de sequence
list_qc_tools
Liste les outils QC d’annotation disponibles pour un type de dataset donne. Parameters:datasetType(string, required) — Le type de dataset (ex.lidar,image,video)
fleet_list_devices
Liste les appareils de la flotte avec des filtres optionnels. Parameters:status(string, optional) — Filtrer par statut de l’appareil (online,offline,maintenance)type(string, optional) — Filtrer par type d’appareillimit(number, optional) — Nombre maximum d’appareils a retournercursor(string, optional) — Curseur de pagination
fleet_get_device
Obtient les informations detaillees d’un appareil de flotte specifique. Parameters:uid(string, required) — L’identifiant unique de l’appareil
fleet_list_recordings
Liste les enregistrements de la flotte avec des filtres optionnels. Parameters:device(string, optional) — Filtrer par UID d’appareilstatus(string, optional) — Filtrer par statut d’enregistrementlimit(number, optional) — Nombre maximum d’enregistrements a retournercursor(string, optional) — Curseur de pagination
fleet_get_recording
Obtient les informations detaillees d’un enregistrement specifique. Parameters:uid(string, required) — L’identifiant unique de l’enregistrement
fleet_list_events
Liste les evenements de la flotte avec des filtres optionnels. Parameters:recording(string, optional) — Filtrer par UID d’enregistrementdevice(string, optional) — Filtrer par UID d’appareiltype(string, optional) — Filtrer par type d’evenementseverity(string, optional) — Filtrer par severitelimit(number, optional) — Nombre maximum d’evenements a retournercursor(string, optional) — Curseur de pagination
fleet_list_alerts
Liste les alertes de la flotte avec des filtres optionnels. Parameters:status(string, optional) — Filtrer par statut d’alerte (open,acknowledged,resolved)severity(string, optional) — Filtrer par severite (info,warning,error,critical)device(string, optional) — Filtrer par UID d’appareilrule(string, optional) — Filtrer par UID de reglelimit(number, optional) — Nombre maximum d’alertes a retournercursor(string, optional) — Curseur de pagination
fleet_list_rules
Liste les regles de la flotte avec des filtres optionnels. Parameters:enabled(boolean, optional) — Filtrer par statut d’activationlimit(number, optional) — Nombre maximum de regles a retournercursor(string, optional) — Curseur de pagination
fleet_register_device
Enregistre un nouvel appareil de flotte. Parameters:name(string, required) — Nom de l’appareiltype(string, required) — Type de l’appareilfirmwareVersion(string, optional) — Version du firmwaretags(string[], optional) — Etiquettes pour l’appareil
fleet_acknowledge_alert
Acquitte une alerte de flotte. Parameters:uid(string, required) — L’identifiant unique de l’alerte a acquitter
Recettes
Flux de travail en plusieurs etapes que vous pouvez executer en langage naturel. Chaque recette montre les appels d’outils que l’assistant effectue en arriere-plan.Recette 1 : Bilan de sante des datasets
Demandez a votre assistant : « Faites-moi un bilan de sante de mon espace de travail — combien de datasets ai-je, et lesquels ont le plus d’elements ? » Etape 1 — L’assistant appelleget_workspace_stats pour obtenir la vue d’ensemble.
list_datasets avec limit: 50 pour recuperer tous les datasets.
Etape 3 — L’assistant trie les resultats par itemCount et presente un resume classe :
Vous avez 14 datasets. Les trois plus volumineux sont :
- Warehouse Cameras — 34 200 elements (image)
- Urban Driving Q1 — 12 450 elements (lidar)
- Parking Lot Footage — 8 900 elements (video)
Recette 2 : Export et telechargement
Demandez a votre assistant : « Exportez le projet Urban Driving Q1 et prevenez-moi quand c’est pret. » Etape 1 — L’assistant appellelist_projects pour trouver l’UID du projet correspondant a « Urban Driving Q1 ».
Etape 2 — L’assistant appelle create_export avec l’UID du projet.
get_export_status jusqu’a ce que le statut passe a completed.
Votre export est pret (50 Mo). Telechargez-le ici : https://api.avala.ai/exports/.../download
Recette 3 : Audit qualite de tous les projets
Demandez a votre assistant : « Evaluez les objectifs de qualite de tous mes projets et signalez ceux qui echouent. » Etape 1 — L’assistant appellelist_projects pour recuperer tous les projets.
Etape 2 — Pour chaque projet, l’assistant appelle evaluate_quality avec l’UID du projet.
Etape 3 — L’assistant agrege les resultats et met en evidence les echecs :
5 projets sur 7 atteignent tous les objectifs de qualite. Deux necessitent votre attention :
- Sidewalk Segmentation — Objectif « Label accuracy » a 88 % (seuil : 95 %)
- Fleet Camera Review — Objectif « Consensus score » a 0,72 (seuil : 0,85)
Recette 4 : Surveillance des appareils de la flotte
Demandez a votre assistant : « Montrez-moi toutes les alertes de flotte non acquittees, regroupees par severite. » Etape 1 — L’assistant appellefleet_list_alerts avec status: "open".
Etape 2 — L’assistant regroupe et formate la reponse :
Critique (1)Etape 3 — Vous pouvez poursuivre : « Acquittez toutes les alertes de niveau avertissement. » L’assistant appelleAvertissement (2)
- Dock Camera 3 — « Appareil hors ligne depuis plus de 24 heures » (depuis le 18 mars)
- Forklift Sensor Unit 12 — « Temperature de l’appareil depassant le seuil (72C) » (depuis le 19 mars)
- Rooftop LiDAR 1 — « Espace disque faible (< 5 %) » (depuis le 19 mars)
fleet_acknowledge_alert pour chaque UID d’alerte de type avertissement.
Recette 5 : Triage des problemes d’annotation
Demandez a votre assistant : « Obtenez les metriques des problemes d’annotation du dataset urban-driving-q1 et montrez-moi la repartition. » Etape 1 — L’assistant appelleget_annotation_issue_metrics avec le proprietaire et le slug du dataset.
Etape 2 — L’assistant presente un resume formate :
Urban Driving Q1 — Metriques des problemes Par statut : 12 ouverts, 5 en revue, 3 en re-etiquetage, 45 termines Par severite : 8 critiques, 57 moderes Par priorite : 2 les plus hauts, 6 hauts, 18 moyens, 25 bas, 14 les plus bas Temps moyen de cloture : 4,2 heuresEtape 3 — Vous poursuivez : « Listez les problemes critiques ouverts. » L’assistant appelle
list_annotation_issues_by_dataset avec des filtres et affiche les resultats.
Exemples de prompts
Voici quelques prompts en langage naturel que vous pouvez utiliser avec tout client compatible MCP :Depannage
AVALA_API_KEY non definie
Le MCP server s’arrete immediatement avec le code d’erreur 1 si la variable d’environnement AVALA_API_KEY est manquante. Assurez-vous que la cle est definie dans le bloc env de votre configuration MCP ou exportee dans votre shell avant de lancer le serveur.
Les outils de mutation n’apparaissent pas
Si des outils commecreate_export, create_agent ou fleet_register_device sont absents de la liste des outils, vous devez definir AVALA_MCP_ENABLE_MUTATIONS=true dans l’environnement du serveur. Ajoutez-le au bloc env de votre fichier de configuration MCP :
npx introuvable ou mauvaise version de Node.js
Le MCP server necessite Node.js 18 ou une version ulterieure. Si vous voyez npx: command not found ou des erreurs de syntaxe de module, verifiez votre version de Node.js :
MCP server en cache obsolete
Si vous avez recemment mis a jour le package@avala-ai/mcp-server mais constatez toujours un ancien comportement ou des outils manquants, npx utilise peut-etre une version en cache. Forcez une nouvelle installation :
Cle API invalide ou expiree
Si les appels d’outils retournent401 Unauthorized, votre cle API est peut-etre invalide, expiree ou revoquee. Generez une nouvelle cle dans Mission Control sous Settings > Security et mettez a jour votre configuration MCP.
Le MCP server Avala est open source. Visitez le depot GitHub pour consulter le code source ou contribuer.