Fiche vérifiée le 31 octobre 2026 · Canal production · Meteor Factory
Pourquoi utiliser Data Tools ?
Transformez des fichiers JSON, CSV et YAML depuis votre agent avec l’outil MCP data_convert, sans quitter son exécution.
Pour qui : Pour les développeurs et analystes qui préparent de petits jeux de données tabulaires, des exports ou des exemples de configuration.
Fonctionnalités : - Conversion entre JSON, CSV et YAML sur les fichiers du workspace.
Détection du format par extension, chemin de sortie explicite ou automatique.
Séparateur CSV, lecture sans en-tête et indentation JSON configurables.
Protection des sorties existantes ; retour du chemin, nombre de lignes, taille et durée.
Le plugin n’a pas de page dédiée. Les captures montrent ses appels réels et fichiers résultants dans l’éditeur Singularity d’un banc local. Le CSV ne conserve pas les types.
Prérequis et activation
- Utilisez Singularity compatible
>=2.0.0 <3.0.0sur macOS, Linux ou Windows (arm64 ou x64), avec un workspace de démonstration accessible en écriture. - Ouvrez Marketplace, cherchez Data Tools, ouvrez sa fiche et cliquez sur Installer. Acceptez
filesystem.readetfilesystem.writesur le workspace etmcp.expose. Sans ces permissions, la conversion ne peut pas fonctionner. - Vérifiez que le plugin est activé avec l’interrupteur de sa fiche. L’activation est globale ; il n’y a ni page propre, ni compte, ni clé API, ni service distant à configurer. Le téléchargement initial exige un catalogue accessible.
- Démarrez une nouvelle exécution d’agent et vérifiez que
data_convertfigure dans ses outils MCP. Demandez-lui d’utiliser cet outil avec les arguments ci-dessous : ces blocs JSON sont des arguments MCP, pas des commandes shell.
Premier résultat : JSON → CSV → YAML
Dans le workspace, créez le dossier demo-data et le fichier people.json avec le premier bloc. Remplacez /ABS/demo-data par le chemin absolu de ce dossier dans tous les appels (sous Windows, utilisez par exemple C:/demo/demo-data). Laissez les trois fichiers de sortie absents au premier essai.
Appelez data_convert une première fois sur le JSON, puis sur le CSV créé. Les blocs suivant chaque appel donnent le contenu attendu du fichier écrit.
[
{"name":"Ada","score":42,"active":true},
{"name":"Bob","score":7,"active":false}
]
{"source":"/ABS/demo-data/people.json","targetFormat":"csv"}
name,score,active
Ada,42,true
Bob,7,false
{"source":"/ABS/demo-data/people.csv","targetFormat":"yaml"}
- name: Ada
score: "42"
active: "true"
- name: Bob
score: "7"
active: "false"
Chaque appel renvoie source, output, sourceFormat, targetFormat, recordCount, bytes et durationMs. Ici, recordCount vaut 2 ; le CSV fait 42 octets et le YAML 86 octets en UTF-8. La durée varie. L’outil renvoie des métadonnées, pas le contenu : ouvrez people.csv puis people.yaml dans l’éditeur pour le vérifier.
> Après le passage par CSV, 42, true et false deviennent des chaînes. Pour garder les nombres et booléens de ce jeu de données, convertissez directement le JSON vers YAML en choisissant une autre sortie :
{"source":"/ABS/demo-data/people.json","targetFormat":"yaml","output":"/ABS/demo-data/typed.yaml"}
Exemple 2 : erreur et correction
Créez scalar.json contenant uniquement 42, puis appelez :
{"source":"/ABS/demo-data/scalar.json","targetFormat":"yaml"}
Résultat attendu : JSON source must be an object or an array of objects. Aucun scalar.yaml n’est écrit. Remplacez 42 par [{"value":42}] et réessayez : la sortie contient - value: 42. Un JSON mal formé, par exemple {, produit une erreur de parsing dont le texte dépend du moteur ; corrigez la syntaxe avant de réessayer.
Configuration
| Argument | Valeur et effet |
|---|---|
source | Chemin absolu du fichier existant, obligatoire. |
targetFormat | json, csv ou yaml, obligatoire. |
sourceFormat | auto par défaut : extensions .json, .csv, .yaml, .yml ; sinon format explicite. |
output | Facultatif ; remplace l’extension source par celle de la cible. Choisissez un autre chemin pour garder l’original. |
overwrite | false par défaut. true remplace la sortie existante, y compris la source si les chemins coïncident. |
csv.delimiter | Virgule par défaut ; utilisez un seul caractère, par exemple ;. |
csv.header | true par défaut en lecture ; false produit les clés col0, col1, etc. L’écriture CSV inclut un en-tête. |
json.indent | 2 par défaut ; choisissez un entier de 0 à 8. |
Limites
- Travail en mémoire sur le fichier entier, sans streaming ni validation métier : privilégiez de petits fichiers.
- Un objet JSON ou mapping YAML devient une liste d’un élément. Les sorties JSON/YAML sont des listes ; commentaires, style YAML et mise en forme source ne sont pas conservés.
- Le CSV lit toutes les cellules comme des chaînes. Les valeurs nulles ou absentes deviennent vides à l’écriture. Les objets imbriqués deviennent
[object Object]et les tableaux sont convertis en texte : aplatissez-les d’abord. - Les colonnes CSV proviennent uniquement du premier objet ; les clés supplémentaires des lignes suivantes sont ignorées. Les en-têtes dupliqués et lignes irrégulières peuvent perdre des données.
- Le lecteur CSV est permissif : il ne garantit pas le rejet de guillemets non fermés ni de colonnes en trop. Contrôlez le résultat. Utilisez des objets plats homogènes, pas des tableaux de scalaires.
- Aucun accès réseau ni import de base de données ; les permissions restent limitées au workspace. Les conversions ne certifient pas une conservation générale des types YAML.
Dépannage
| Symptôme | Action |
|---|---|
data_convert absent | Vérifiez installation, activation et permission mcp.expose, puis relancez l’exécution d’agent. |
source file not found | Vérifiez le chemin absolu et créez le fichier dans le workspace. |
Cannot auto-detect format | Corrigez l’extension ou passez sourceFormat. |
output file already exists | Choisissez une nouvelle sortie ; utilisez overwrite: true seulement pour remplacer volontairement le fichier. |
| Erreur JSON/YAML | Corrigez la syntaxe et utilisez un objet ou une liste d’objets. |
| Refus lecture/écriture | Vérifiez les permissions du plugin, du dossier et son appartenance au workspace. |
Captures du parcours
Continuer avec Singularity
Ce plugin s’utilise dans un espace de travail Singularity. Consultez les permissions et les conditions de licence dans le Marketplace avant de l’activer.