L2.2 : rejette les paramètres inconnus et les requis manquants (D23)
Mesure V1 (24/08/2026) : le SDK MCP ignore additionalProperties: false —
read_recent_logs({lines: 5}) avec la clause sur le schéma répondait
success: true, returnedLines: 100 (retombée silencieuse sur le défaut).
La validation vit donc dans le wrapper tools/call de src/index.js,
pilotée par les schémas de la table de routage (D22) : paramètre inconnu
ou requis manquant -> erreur structurée nommant le fautif et les
paramètres valides, avant tout dispatch.
Les 23 schémas portent additionalProperties: false — inerte côté SDK,
mais c'est le contrat que lisent les clients. Pas de renommage de
paramètres (écarté, cf. ROADMAP).
Mesures (via le protocole) :
- read_recent_logs({"lines": 5}) -> "Paramètre(s) inconnu(s) pour
read_recent_logs : lines. Paramètres valides : count, log_file."
- read_recent_logs({"count": 5}) -> succès, returnedLines: 5
- boucle sur 22 outils avec {} (execute_command vérifié statiquement) :
22/22 répondent, aucun Unknown tool, les 11 outils à paramètres requis
échouent avec le message actionnable
- handshake : 23 outils, 6 resources
Docs : D23 dans DECISIONS.md, L2.2 retirée de la ROADMAP.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
-12
@@ -17,18 +17,6 @@ contient que ce qui reste à faire.
|
||||
La cause racine commune du lot (résolution `Name` -> `TableName` via l'API
|
||||
Metadata) est livrée — la règle et ses mesures vivent en **D21**.
|
||||
|
||||
### L2.2 — Rejeter les paramètres inconnus
|
||||
|
||||
Le SDK MCP ignore silencieusement les paramètres non déclarés : un appel
|
||||
`read_recent_logs(lines: 60)` retombe sur le défaut `count = 100` sans le
|
||||
moindre signal, et l'appelant conclut à un paramètre ignoré.
|
||||
|
||||
Ajouter `additionalProperties: false` aux 23 schémas d'outils.
|
||||
|
||||
C'est le correctif retenu **à la place** d'une uniformisation des noms de
|
||||
paramètres : renommer casse les usages existants pour un gain cosmétique, alors
|
||||
que la cause réelle est l'absence de signal.
|
||||
|
||||
### L2.3 — Arguments manquants : deux garde-fous
|
||||
|
||||
Découverts lors de la révision du lot 1 (24/08/2026), en bouclant sur les 23
|
||||
|
||||
Reference in New Issue
Block a user