02-ce-que-je-construis/bundles/tlr-mcp/tlr-mcp-outils.md

Telaria MCP — Catalogue d'outils

Ce document définit les conventions et le catalogue des outils Telaria MCP.

V1 en production (v0.1.3) : 3 outils lecture seule — list_docs, read_doc, search_docs. Les outils de génération et d'audit sont en réserve V2+. Schémas JSON autorités : ia-mcp.md §9.

1. Principes MCP pour les tools

Exigences minimales :

  1. Les tools sont listés via tools/list et appelés via tools/call.
  2. Chaque tool expose un inputSchema JSON Schema.
  3. Les résultats peuvent être du texte, des images, des ressources ou des messages.
  4. Les actions sensibles requièrent un humain dans la boucle.

Source : https://modelcontextprotocol.io/specification/2025-11-25/server/tools

2. Conventions Codexia

Conventions :

  1. Noms en minuscules, séparés par des underscores (audit_rgaa, build_toc).
  2. Descriptions orientées action, sans jargon inutile.
  3. Un tool = une intention claire et testable.
  4. Toutes les sorties sont structurées et auditables.

3. Fiche standard d'un tool

Champs recommandés :

  1. name : identifiant stable.
  2. title : titre humain.
  3. description : objectif et limites.
  4. inputSchema : JSON Schema minimal.
  5. outputSchema : format de sortie attendu.
  6. risks : risques fonctionnels ou de conformité.
  7. humanInTheLoop : booléen et conditions.

3.1 Schémas JSON - gabarits

3.1.1 Schéma d'entrée générique (inputSchema)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "context": {
      "type": "string",
      "description": "Contexte court et ciblé."
    }
  },
  "required": ["context"],
  "additionalProperties": false
}

3.1.2 Schéma de sortie générique (outputSchema)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "status": { "type": "string", "enum": ["ok", "warning", "error"] },
    "summary": { "type": "string" },
    "items": {
      "type": "array",
      "items": { "type": "object" }
    }
  },
  "required": ["status", "summary"],
  "additionalProperties": false
}

3.1.3 Schéma audit_rgaa (exemple)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "html": { "type": "string" },
    "scope": { "type": "string", "enum": ["page", "component"] }
  },
  "required": ["html"],
  "additionalProperties": false
}

3.1.4 Schéma de sortie audit_rgaa (exemple)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "status": { "type": "string", "enum": ["ok", "warning", "error"] },
    "summary": { "type": "string" },
    "issues": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "criterion": { "type": "string" },
          "severity": { "type": "string", "enum": ["minor", "major", "critical"] },
          "message": { "type": "string" },
          "location": { "type": "string" }
        },
        "required": ["criterion", "severity", "message"],
        "additionalProperties": false
      }
    }
  },
  "required": ["status", "summary"],
  "additionalProperties": false
}

3.1.5 Schéma build_toc (exemple)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "markdown": { "type": "string" },
    "maxDepth": { "type": "integer", "minimum": 1, "maximum": 6 }
  },
  "required": ["markdown"],
  "additionalProperties": false
}

3.1.6 Schéma de sortie build_toc (exemple)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "status": { "type": "string", "enum": ["ok", "warning", "error"] },
    "toc": { "type": "string" },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": { "type": "string" },
          "level": { "type": "integer", "minimum": 1, "maximum": 6 },
          "anchor": { "type": "string" }
        },
        "required": ["title", "level"],
        "additionalProperties": false
      }
    }
  },
  "required": ["status", "toc"],
  "additionalProperties": false
}

3.1.7 Schéma draft_readme_basic (réserve V2+, déclassé de V1)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "projectName": { "type": "string" },
    "shortDescription": { "type": "string" },
    "stack": { "type": "array", "items": { "type": "string" } },
    "installSteps": { "type": "array", "items": { "type": "string" } },
    "usage": { "type": "string" },
    "license": { "type": "string" }
  },
  "required": ["projectName", "shortDescription", "installSteps", "usage", "license"],
  "additionalProperties": false
}

3.1.8 Schéma de sortie draft_readme_basic (réserve V2+)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "status": { "type": "string", "enum": ["ok", "warning", "error"] },
    "readme": { "type": "string" },
    "sections": {
      "type": "array",
      "items": { "type": "string" }
    }
  },
  "required": ["status", "readme"],
  "additionalProperties": false
}

3.2 Schémas JSON - conventions

Conventions :

  1. Toujours définir additionalProperties à false.
  2. Utiliser des enums quand le choix est fermé.
  3. Documenter la taille maximale des champs dans description.
  4. Prévoir des schémas de sortie stables et versionnés.

4. Catalogue

4.0 Outils V1 — en production

Trois outils lecture seule, adossés au cœur RAG (L0). Schémas complets ci-dessous.

search_docs — recherche sémantique (outil ancre V1)

// entrée
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "query": { "type": "string", "description": "Question en langage naturel." },
    "k": { "type": "integer", "minimum": 1, "maximum": 20, "default": 5 }
  },
  "required": ["query"],
  "additionalProperties": false
}
// sortie
{
  "type": "object",
  "properties": {
    "status": { "type": "string", "enum": ["ok", "warning", "error"] },
    "hits": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "path":    { "type": "string" },
          "section": { "type": "string" },
          "score":   { "type": "number" },
          "excerpt": { "type": "string" }
        },
        "required": ["path", "score", "excerpt"],
        "additionalProperties": false
      }
    }
  },
  "required": ["status", "hits"],
  "additionalProperties": false
}

list_docs — liste des documents indexés

// entrée
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "prefix": { "type": "string", "description": "Filtre optionnel sur préfixe de chemin (ex. 'specs/')." },
    "limit":  { "type": "integer", "minimum": 1, "maximum": 500, "default": 200 }
  },
  "additionalProperties": false
}
// sortie
{
  "type": "object",
  "properties": {
    "status": { "type": "string", "enum": ["ok", "warning", "error"] },
    "documents": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "path":  { "type": "string" },
          "title": { "type": "string" }
        },
        "required": ["path", "title"],
        "additionalProperties": false
      }
    },
    "truncated": { "type": "boolean", "description": "true si tronqué à limit." }
  },
  "required": ["status", "documents", "truncated"],
  "additionalProperties": false
}

read_doc — contenu Markdown brut d'un document

// entrée
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "path": { "type": "string", "description": "Chemin relatif Ă  la racine du projet (ex. 'specs/ia-coeur.md')." }
  },
  "required": ["path"],
  "additionalProperties": false
}
// sortie — Markdown brut (UTF-8), aucune normalisation côté serveur
{
  "type": "object",
  "properties": {
    "status":  { "type": "string", "enum": ["ok", "warning", "error"] },
    "path":    { "type": "string" },
    "title":   { "type": "string" },
    "content": { "type": "string", "description": "Markdown brut tel que stocké." },
    "metadata": {
      "type": "object",
      "properties": {
        "mtime":        { "type": "string", "format": "date-time" },
        "content_hash": { "type": "string" },
        "size_bytes":   { "type": "integer", "minimum": 0 }
      },
      "required": ["mtime", "content_hash", "size_bytes"],
      "additionalProperties": false
    }
  },
  "required": ["status", "path", "title", "content", "metadata"],
  "additionalProperties": false
}

4.1 Réserve V2+ — Conformité et qualité

  • audit_rgaa : analyse RGAA sur un extrait HTML.
  • audit_wcag : vĂ©rification WCAG 2.2 sur un extrait HTML.
  • check_opquast : contrĂ´le de règles Opquast sur une page.
  • gdpr_risk_scan : dĂ©tection de donnĂ©es personnelles ou sensibles.
  • doc_quality_report : rapport de qualitĂ© documentaire (lisibilitĂ©, structure, cohĂ©rence).

4.2 Structuration documentaire

  • build_toc : gĂ©nĂ©ration d'une table des matières.
  • crosslink_docs : liens croisĂ©s internes.
  • tagging_topics : indexation thĂ©matique.
  • normalize_headings : harmonisation des niveaux de titres.
  • extract_glossary_terms : extraction de termes pour glossaire.

4.3 Assistance rédactionnelle

  • draft_user_doc : production d'une documentation utilisateur.
  • vade_mecum_tech : fiche technique structurĂ©e.
  • doc_security_theme : documentation thĂ©matique sĂ©curitĂ©.
  • release_notes : notes de version lisibles.
  • support_faq : FAQ support et dĂ©pannage.

4.4 Gouvernance et suivi

  • coverage_matrix : matrice de couverture doc / exigences.
  • risk_register_update : mise Ă  jour des risques documentaires.
  • accessibility_checklist : checklist RGAA / WCAG par livrable.

5. Évolution du catalogue

Processus recommandé :

  1. Tout nouveau tool est décrit, testé et validé.
  2. Les outils critiques exigent validation humaine systématique.
  3. Les changements de schéma sont versionnés.

Assistant documentaire

Posez une question sur la documentation. Les réponses citent leurs sources — un clic ouvre le document à gauche.

Loading…
Loading the web debug toolbar…
Attempt #