Outils du workspace · Gratuit

Data Tools
dans Singularity.

Transformez des fichiers JSON, CSV et YAML depuis votre agent avec l’outil MCP data_convert, sans quitter son exécution.

Visuel de présentation · Data Tools dans Singularity

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

  1. Utilisez Singularity compatible >=2.0.0 <3.0.0 sur macOS, Linux ou Windows (arm64 ou x64), avec un workspace de démonstration accessible en écriture.
  2. Ouvrez Marketplace, cherchez Data Tools, ouvrez sa fiche et cliquez sur Installer. Acceptez filesystem.read et filesystem.write sur le workspace et mcp.expose. Sans ces permissions, la conversion ne peut pas fonctionner.
  3. 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.
  4. Démarrez une nouvelle exécution d’agent et vérifiez que data_convert figure 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

ArgumentValeur et effet
sourceChemin absolu du fichier existant, obligatoire.
targetFormatjson, csv ou yaml, obligatoire.
sourceFormatauto par défaut : extensions .json, .csv, .yaml, .yml ; sinon format explicite.
outputFacultatif ; remplace l’extension source par celle de la cible. Choisissez un autre chemin pour garder l’original.
overwritefalse par défaut. true remplace la sortie existante, y compris la source si les chemins coïncident.
csv.delimiterVirgule par défaut ; utilisez un seul caractère, par exemple ;.
csv.headertrue par défaut en lecture ; false produit les clés col0, col1, etc. L’écriture CSV inclut un en-tête.
json.indent2 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ômeAction
data_convert absentVérifiez installation, activation et permission mcp.expose, puis relancez l’exécution d’agent.
source file not foundVérifiez le chemin absolu et créez le fichier dans le workspace.
Cannot auto-detect formatCorrigez l’extension ou passez sourceFormat.
output file already existsChoisissez une nouvelle sortie ; utilisez overwrite: true seulement pour remplacer volontairement le fichier.
Erreur JSON/YAMLCorrigez la syntaxe et utilisez un objet ou une liste d’objets.
Refus lecture/écritureVé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.

À découvrir aussi