Retour au Blog

Codification de documents techniques avec l'IA et MCP

By Sergio Vieira Greve
Codification de documents techniques avec l'IA et MCP

Comment Claude Code et le serveur MCP Sutram ont transformé une norme de 30 pages en un système fonctionnel en quelques minutes


Le défi

La norme Petrobras N-1710 Rev. N (Codification des documents techniques d'ingénierie) définit un système rigoureux d'identification des documents techniques. Chaque document reçoit un code composé de jusqu'à 7 groupes séparés par des tirets :

[A-]BB-CDDD.EE-FGGGG-HHH-III-JJJ

Où chaque groupe représente, respectivement : la langue, la catégorie du document, l'installation, le domaine d'activité, la classe de service, l'origine et un numéro séquentiel. Les annexes de la norme détaillent des centaines de codes valides pour chaque champ — l'Annexe C (Domaine d'activité) à elle seule compte plus de 900 codes, et l'Annexe D (Classe de service) environ 690.

Implémenter ce système manuellement — définir les champs, enregistrer des centaines de valeurs, configurer les règles de génération automatique de codes — est un travail qui prendrait normalement des heures, voire des jours.

Le prompt initial

Tout a commencé par une simple instruction à Claude Code :

« Lis la norme N-1710 et ses annexes (A, C et D) en PDF. Ensuite, configure une catégorie de records dans Sutram qui implémente la codification définie par la norme. »

À partir de cette seule demande, l'agent devait :

  1. Lire et interpréter la norme principale et 3 annexes en PDF (48 pages au total)
  2. Extraire tous les codes et descriptions des annexes
  3. Modéliser la structure des métadonnées dans Sutram
  4. Enregistrer plus de 1 600 valeurs énumérées
  5. Configurer la génération automatique de slug au format de la norme
  6. Tester et valider le résultat

Les outils du serveur MCP Sutram

Sutram fournit un serveur MCP (Model Context Protocol) qui permet aux agents IA d'interagir directement avec la plateforme. C'est le facteur différenciant qui a rendu l'implémentation possible en une seule session.

Les outils utilisés, dans l'ordre du workflow :

1. sutram_project_info — Reconnaissance

Premier appel : vérifier l'état du projet. Résultat : zéro définition de métadonnées, zéro catégorie de records. Table rase.

2. sutram_upsert_metadata — Modélisation des champs

La norme déjà interprétée, l'agent a créé 7 définitions de métadonnées en appels parallèles :

Champ Type Valeurs
idioma (langue) enum 6 (Anglais, Allemand, Français, etc.)
categoria_documento (catégorie du document) enum 21 (Dessin, Rapport, Fiche technique, etc.)
instalacao (installation) text libre (format CDDD.EE)
area_atividade (domaine d'activité) enum 903 codes de l'Annexe C
classe_servico (classe de service) enum 690 codes de l'Annexe D
origem (origine) text libre (code NORTEC)
sequencial (séquentiel) computed auto-généré, 3 chiffres

La parallélisation était essentielle — les champs indépendants ont été créés simultanément, ce qui a permis de gagner du temps.

3. sutram_add_enum_values — Chargement massif de données

Voici la partie la plus impressionnante. Les annexes C et D de la norme contiennent, ensemble, près de 1 600 codes. L'agent a :

  • Lu les PDF page par page (l'Annexe C seule fait 27 pages)
  • Extrait chaque code et sa description
  • Chargé les valeurs en lots parallèles à l'aide de sutram_add_enum_values

Exemple d'un lot de l'Annexe C :

{
  "key": "area_atividade",
  "values": [
    {"code": "2111", "label": "Unité de distillation atmosphérique"},
    {"code": "2112", "label": "Unité de distillation sous vide"},
    {"code": "2113", "label": "Unité de pré-flash"},
    ...
  ]
}

Plusieurs cycles d'appels parallèles ont été nécessaires pour charger toutes les valeurs — environ 15 appels au total pour les deux annexes. L'outil sutram_add_enum_values effectue une fusion intelligente : les codes en double sont ignorés, et tout est automatiquement réordonné.

4. sutram_upsert_record_category — Configuration de la codification

Les métadonnées prêtes, un seul appel a créé la catégorie de records avec toute la logique de génération de code :

  • computed_from : définit quels champs composent la « base d'unicité » pour le séquentiel (catégorie + installation + domaine + classe + origine)
  • slug_from : définit comment le code final est assemblé, champ par champ, en choisissant entre utiliser le code ou le label de chaque enum
  • slug_separator : le tiret qui sépare les groupes
{
  "slug_from": [
    {"key": "idioma", "use": "code"},
    {"key": "categoria_documento", "use": "code"},
    {"key": "instalacao", "use": "label"},
    {"key": "area_atividade", "use": "code"},
    {"key": "classe_servico", "use": "code"},
    {"key": "origem", "use": "label"},
    {"key": "sequencial", "use": "label"}
  ],
  "slug_separator": "-"
}

5. sutram_create_record — Validation

Le test final : créer des records et vérifier si le code généré correspond au format de la norme.

Test 1 — Mémoire descriptif en portugais :

Entrée :   category=Mémoire descriptif, facility=4300.06,
           area=Laboratoire, class=Forage, origin=PTD
Résultat : MD-4300.06-8222-114-PTD-001 ✓

Test 2 — Même combinaison, deuxième document :

Résultat : MD-4300.06-8222-114-PTD-002 ✓  (séquentiel incrémenté)

Test 3 — Document en anglais :

Entrée :   language=Anglais, category=Dessin, facility=5285.00,
           area=Laboratoire, class=Tours, origin=PPC
Résultat : I-DE-5285.00-8222-550-PPC-001 ✓  (préfixe "I-" pour l'anglais)

Le rôle de MCP (Model Context Protocol)

MCP est ce qui rend cette intégration possible. Il permet à Claude Code d'interagir avec Sutram comme un utilisateur avancé de la plateforme — mais avec la capacité de :

  • Paralléliser les appels indépendants (créer plusieurs champs de métadonnées en même temps)
  • Traiter par lots de grands volumes de données (des centaines de codes par appel)
  • Chaîner les opérations dépendantes (créer les métadonnées → créer la catégorie → tester)
  • Valider les résultats en temps réel et corriger les erreurs dans le même flux

Sans MCP, cette même tâche aurait nécessité de naviguer dans l'interface de Sutram, d'enregistrer chaque champ manuellement, de taper ou importer des centaines de codes un par un, et de configurer les règles de slug via l'interface utilisateur. Avec MCP, l'agent a tout fait de manière programmatique, directement depuis le terminal.

Chiffres de la session

Métrique Valeur
Pages PDF lues 48
Définitions de métadonnées créées 7
Valeurs énumérées enregistrées 1 614 (903 + 690 + 21)
Catégorie de records configurée 1
Records de test créés et validés 3
Corrections en temps réel 1 (ajustement slug_from de label à code)

Conclusion

La combinaison d'un agent IA capable d'interpréter des documents techniques (Claude Code lisant les PDF de la norme) avec des outils MCP permettant d'agir directement sur la plateforme (le serveur MCP Sutram) crée un workflow qui n'était tout simplement pas possible auparavant.

Ce qui aurait auparavant demandé des heures de travail manuel — lire la norme, interpréter les règles, enregistrer des centaines de codes, configurer la logique de génération — a été résolu en une seule session de conversation. Et le résultat n'est pas un prototype : c'est un système fonctionnel, validé, prêt pour une utilisation en production.

C'est la promesse de MCP : pas seulement demander et répondre, mais agir.