← Retour au journal

Claude 2026 : API, Tool Use, MCP, Structured Output et agents IA

Agents IA & Claude API · 2026.08.18 · ~16 min de lecture

Claude API, Tool Use, MCP et Structured Output en stack agent

Beaucoup d’équipes lisent le changelog Claude 2026 comme un communiqué « le modèle s’est amélioré » : Messages API, Tool Use, MCP, Structured Output, boucles agent — plus de noms, même code : un seul messages.create bourré de prompt, d’outils et d’un espoir que du JSON sorte. Ce qui casse en prod, ce n’est rarement la qualité du texte. Ce sont des arguments d’outil hors schéma, une surface de permissions MCP trop large et du JSON extrait à la regex. La question ci-dessous : ces cinq briques forment-elles une seule couche ? Conclusion asymétrique : la frontière, c’est les contraintes de schéma et les bornes d’exécution, pas le nom du modèle.

Pour les devs qui branchent Claude en production : classer Claude API, Tool Use, le connecteur MCP, les Structured Outputs et la boucle agent par entrée / exécution / contexte, puis décider quand garder des outils maison, quand attacher un MCP distant et quand le mode strict est obligatoire. Bases du protocole : ce qu’est MCP (l’analogie USB). Couches IDE : Claude Skills vs Cursor Rules. Cette page ne couvre que la façon dont le côté API devient un agent opérable.

1. Pourquoi une liste de features plus longue fragilise la prod

De fin 2025 à 2026, Anthropic a intégré « appeler des outils », « brancher MCP » et « émettre du JSON Schema » sur le chemin principal Messages : output_config.format a remplacé le beta output_format ; les outils peuvent définir strict: true pour que l’échantillonnage contraint par grammaire garde des arguments valides ; le MCP distant peut monter dans la même requête via mcp_servers plus type: "mcp_toolset". La doc est claire. L’ingénierie fusionne encore trois rôles en un :

  • Prose lisible par un humain et JSON ingestible par une machine dans un même blob de texte sans schéma ;
  • Scripts locaux, SaaS et outils MCP en écriture aplatis dans un seul tableau tools que le modèle choisit ;
  • Un « agent » défini comme « répéter le même tour utilisateur 20 fois » sans max d’étapes ni audit des tool_use.

Les démos passent ; les tickets s’emplissent de JSONDecodeError, d’enums incorrects et de serveurs MCP traités comme un shell universel. L’API Claude ne « manque pas de features ». Entrée, exécution et contexte n’ont jamais été séparés. Si l’agent doit lancer xcodebuild, l’exécution atterrit aussi sur du vrai matériel Mac — le même problème d’ops qu’un runner macOS auto-hébergé pour GitHub Actions, pas un problème de prompt.

2. Ce qu’est chaque couche (What)

2.1 Claude API — entrée de conversation, pas un produit agent

L’API Claude (Messages) est l’entrée qui rattache modèle, messages, prompt système, cache et facturation à votre système. Elle n’exécute pas les outils à votre place et ne garantit pas json.loads. Le chat completion est un usage valide. Dès qu’un service aval écrit en base, ouvre un ticket ou déclenche la CI, vous empilez les couches suivantes. Demandez-vous d’abord : cet appel est-il consommé par un humain ou par un parseur ?

2.2 Tool Use — un plan d’exécution que vous possédez

Tool Use permet au modèle d’émettre des blocs tool_use ; votre serveur les exécute et renvoie tool_result. À utiliser pour les implémentations que vous maîtrisez : inventaire, tickets, scripts de dépôt. En prod 2026, activez le strict tool use sur la définition : strict: true plus input_schema passent par le même pipeline de grammaire que les structured outputs, ce qui réduit les crashs du type « chaîne 2 au lieu d’un nombre ». Le coût : le schéma doit tenir dans le sous-ensemble JSON Schema supporté par Anthropic.

2.3 Connecteur MCP — plan d’outils distant, pas un autre SDK

Le connecteur MCP Messages déclare des serveurs distants (URL, OAuth) et un mcp_toolset pour activer tous les outils, une allowlist ou une denylist. Il résout la découverte et le transport : pas besoin d’écrire à la main du JSON d’outil Anthropic pour chaque SaaS. Ce n’est pas une sécurité automatique — un MCP fichiers ou shell exige encore une passerelle ou une allowlist. Le « pourquoi USB » du protocole et le « comment accrocher un serveur à l’API » de cette page se complètent, ce ne sont pas des doublons.

2.4 Structured Output — contexte pour les parseurs, pas la voix pour les lecteurs

Structured Output utilise output_config.format avec json_schema pour que le bloc texte du modèle soit du JSON valide. À utiliser pour l’extraction de champs, les objets de rapport, les contrats du service suivant. C’est orthogonal à Tool Use : JSON seul, outils stricts seuls, ou les deux. Ça ne remplace pas les appels d’outil — du joli JSON ne déclenche jamais de HTTP à votre place.

2.5 Agent IA — politique de boucle, pas un cinquième produit API

Un agent IA ici, c’est : le modèle choisit un outil → vous exécutez → les résultats reviennent → jusqu’à l’arrêt. Les conditions d’arrêt sont les vôtres : tours max, noms d’outils interdits, budget, confirmation humaine. La boucle peut être Tool Use seul ou mixée avec MCP. Structured Output convient pour la remise finale. Du « full auto » sans plafond de boucle, c’est du retry sans borne.

À retenir en une ligne
Claude API = entrée ; Tool Use / MCP = exécution (maison vs découverte distante) ; Structured Output = contrat machine ; l’agent = la boucle et les lignes rouges que vous codez.

3. Comparaison centrale (How Compare)

Cinq couches Claude API : entrée, exécution, contexte, public
Capacité Entrée Exécution Contexte Idéal pour
Claude API Messages / SDK messages.create Texte et multimodal ; pas d’effets de bord externes messages + system + blocs de cache Chat, brouillons, résumés pour humains
Tool Use tools[] détenus par la requête Votre backend exécute les fonctions ; strict: true optionnel schéma d’outil + allers-retours tool_result Équipes avec API internes et audit par appel
Connecteur MCP mcp_servers + mcp_toolset Outils MCP distants ; multi-serveur, OAuth Listes d’outils découvertes à élaguer Intégrateurs qui veulent du MCP existant sans JSON artisanal
Structured Output output_config.format = json_schema N’exécute pas d’outils ; garantit du JSON texte parseable Le schéma entre dans les contraintes d’échantillonnage ETL, champs de tickets, services typés en aval
Boucle agent IA Votre orchestrateur (while / file / workflow) Tool Use ou MCP répétés jusqu’à l’arrêt tool_result accumulés ; surveiller le gonflement de fenêtre Changements d’état multi-étapes avec budget explicite
Tool Use maison vs connecteur MCP
Dimension Tool Use maison Vous écrivez la fonction Connecteur MCP Découverte distante
PropriétéImplémentation, logs, rate limits dans votre dépôtLa sémantique des outils appartient au serveur MCP
Vitesse de changementLes changements de schéma partent avec votre agentDe nouveaux outils serveur apparaissent à la découverte — allowlistez-les
Args strictsLe strict officiel s’aligne proprement sur votre schémaNe forcez pas des champs réservés à l’API dans des schémas client MCP génériques
AdéquationChemins d’écriture critiques, audit conformitéSaaS en lecture seule, retrieval standardisé, buffets d’outils

4. Comment choisir (Decision)

Fixez d’abord le consommateur et les effets de bord, puis choisissez les couches. La matrice se découpe selon que vous mutez l’état externe ou non.

Matrice de scénarios
Scénario Préférer Éviter
Mémo hebdo pour les ops Claude API texte brut JSON Schema pour faire « avancé »
Extraire des champs e-mail vers le CRM Structured Output + validation côté serveur De faux « outils d’extraction » qui n’écrivent jamais
Créer Jira / fermer des alertes Tool Use maison + strict: true + clés d’idempotence Vider un pack MCP en écriture dans la requête
Docs / calendrier en lecture seule Connecteur MCP + allowlist d’outils Activer tous les outils « au cas où »
Correctif dépôt multi-étapes + tests Boucle agent + outils git/test maison + max d’étapes while-true sans borne ; xcodebuild toute la nuit sur un laptop
Contrat final pour une API aval Structured Output au dernier tour (ou appel parse dédié) Miner du JSON à la regex dans du texte tool_use mélangé
Ligne rouge
Système de fichiers, base de prod, paiements et e-mail sortant : par défaut hors « MCP découvert, tous les outils activés ». Si vous devez utiliser MCP, imposez allowlist + auth + journaux d’audit ; confirmez les étapes à haut risque avec un humain.

5. Stacks recommandés

Empilez les capacités. Ne cherchez pas un seul nom de produit.

  • Scripts perso / bots internes : Claude API + 2–5 outils maison + strict. Passez MCP quand la surface de secrets le vaut.
  • Agent support SaaS en croissance : outils d’écriture maison (tickets) + MCP connaissance en lecture seule + Structured Output en fin pour la QA.
  • Plateforme / multi-équipes : passerelle MCP pour auth et rate limits ; orchestrateur pour étapes et budget ; les écritures de facturation restent en Tool Use maison.
  • Agent build macOS / iOS : n’exposez que « mettre en file un job sur un runner nommé » ; le vrai xcodebuild tourne sur un Mac cloud stable, pas un SSH ad hoc piloté par le modèle.

Face aux Skills IDE : l’agent API possède les boucles avec effets de bord système ; Claude Code Skills possèdent les SOP dev dans le dépôt. Les deux peuvent mentionner MCP ; ne partagez pas une même table de credentials pour l’écriture.

6. Pièges

  • « MCP = on peut abandonner Tool Use » → chemins d’écriture, conformité et idempotence restent maison et audités.
  • « Structured Output = un agent » → ça ne contraint que le JSON texte ; pas d’effets de bord.
  • « strict marche sur n’importe quel JSON Schema imbriqué » → restez dans le sous-ensemble documenté ; oneOf profond / clés dynamiques échouent.
  • Traiter le beta legacy output_format et output_config comme deux produits → compatibilité de transition seulement ; le nouveau code utilise output_config.format.
  • « Des modèles plus forts n’ont pas besoin de max d’étapes » → les étapes, c’est de l’argent et un rayon d’explosion, pas du QI.
  • Copier-coller strict dans chaque schéma client MCP → retirez les champs réservés à l’API sur les canaux MCP génériques.

7. Sept étapes de déploiement

  1. Inventorier les effets de bord : lectures, écritures internes, déclencheurs CI, prod. Un tableau d’outils par classe.
  2. Livrer un outil maison : input_schema minimal + strict: true ; prouver tool_use → exécution → tool_result.
  3. Séparer livraison humaine vs machine : contrats machine via Structured Output ou appel parse dédié.
  4. Brancher MCP lecture seule : mcp_servers + allowlist ; gardez l’écriture en maison.
  5. Encapsuler la boucle : max N étapes, timeouts, budget tokens, rejeter les noms d’outils non déclarés.
  6. Observer : journaliser nom d’outil, hash des args, latence, échecs de schéma — pas seulement le texte assistant final.
  7. Épingler l’exécution lourde : jobs macOS sur Mac cloud / runners auto-hébergés ; l’agent émet un id de job, pas un shell de laptop.
Esquisse : outil strict + payload final structuré (secrets via env)
# Pseudocode — use the official SDK in production
POST /v1/messages
{
  "model": "claude-opus-4-6",
  "max_tokens": 2048,
  "tools": [{
    "name": "create_ticket",
    "strict": true,
    "input_schema": {
      "type": "object",
      "properties": {
        "title": {"type": "string"},
        "severity": {"type": "string", "enum": ["low","high"]}
      },
      "required": ["title","severity"],
      "additionalProperties": false
    }
  }],
  "output_config": {
    "format": {
      "type": "json_schema",
      "schema": {
        "type": "object",
        "properties": {
          "ticket_id": {"type": "string"},
          "next_action": {"type": "string"}
        },
        "required": ["ticket_id","next_action"],
        "additionalProperties": false
      }
    }
  },
  "messages": [{"role": "user", "content": "Open a high-severity ticket: build timed out"}]
}

Épinglez les IDs de modèle à votre console et à la vue d’ensemble Tool Use. Avant la prod, vérifiez que output_config et strict ne dépendent plus d’en-têtes beta résiduels dans votre version du SDK.

8. Conclusion

Claude API répond à la façon dont le modèle rejoint le système. Tool Use répond à l’exécution maison et aux arguments garantis. MCP répond à la découverte distante et à l’élagage. Structured Output répond au contrat parseur. L’agent IA répond à quand la boucle s’arrête et à quelle taille fait le rayon d’explosion. Ce ne sont pas cinq gros titres « nouvelle feature » en parallèle. C’est une entrée, deux plans d’exécution, un format de livraison et une orchestration que vous devez écrire. Tracez d’abord les frontières d’effets de bord ; activez ensuite MCP et la boucle pour que les démos survivent à la prod.

Pour aller plus loin : Structured outputs · Strict tool use · Connecteur MCP · Intro protocole MCP

FAQ

Tool Use et MCP peuvent-ils coexister dans la même requête ?
Oui. Un découpage courant : Tool Use maison pour l’écriture, toolset MCP pour la lecture. Les deux apparaissent dans la liste d’outils — préfixes de noms et allowlists comptent pour éviter qu’un outil d’écriture soit choisi par erreur.
Structured Output remplace-t-il les outils stricts ?
Non. Structured Output contraint le JSON texte de l’assistant ; strict contraint le nom et l’input des tool_use. Si une fonction va s’exécuter, il faut le schéma d’outil — pas l’espoir que des args valides sortent dans la prose.
Faut-il encore un en-tête beta ?
Suivez la doc Anthropic actuelle : les structured outputs sont passés sur output_config.format, avec une transition pour l’ancien paramètre. Les nouvelles intégrations ne doivent pas dépendre de l’en-tête beta structured-outputs. Pour savoir si le connecteur MCP exige encore anthropic-beta, consultez la page connecteur MCP avant de livrer.
Quelle taille pour max_tokens dans une boucle agent ?
Dimensionnez pour une étape d’appel d’outil, pas « le max du modèle au cas où ». étapes × max_tokens = la facture. Quand le contexte gonfle, résumez tool_result au lieu d’agrandir la fenêtre indéfiniment.
En quoi est-ce différent de l’article MCP sur ce site ?
Cet article explique ce qu’est le protocole et pourquoi l’analogie USB tient. Celui-ci montre comment composer le connecteur MCP Messages avec Tool Use, Structured Output et une boucle agent opérable, avec des découpages par scénario.
Pourquoi un agent de build veut-il encore un Mac cloud ?
codesign et xcodebuild exigent macOS natif. L’agent décrit les étapes ; l’exécution a besoin d’un nœud SSH 24/7. Un Mac mini cloud garde une conso idle basse et un environnement reproductible — certificats de signature et compilations de nuit ne sont plus liés à un laptop.

Les outils ne servent à rien si le build n’a nulle part tourner

Claude Tool Use et MCP transforment l’intention en appels. Le vrai xcodebuild, Fastlane et la signature passent toujours par macOS. Hashvps cloud Mac mini M4 offre SSH/VNC, IPv4 dédiée et un arbre Homebrew reproductible — MCP en lecture seule sur le dépôt, jobs d’écriture sur un runner nommé, pas un shell de laptop instable piloté par le modèle.

Si vous branchez un agent Claude API dans un pipeline iOS/macOS, le Mac cloud Hashvps est un nœud d’exécution à forte valeurvoir les offres et laissez la boucle finir à distance dans un budget maîtrisé.

Hashvps · Mac Cloud

Les agents ont besoin d’un nœud d’exécution stable

Cloud Mac mini M4, macOS natif et SSH—lier outils MCP et xcodebuild au même hôte reproductible.

Accueil
Offre limitée