@imenam/mcp-http-gateway 2.0.13 → 2.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +5 -1
  2. package/mcp-mode.js +5 -13
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -253,6 +253,10 @@ occasion d'envoyer un chemin qui ne serait pas lisible à l'arrivée.
253
253
  Un outil qui ne déclare pas cette paire n'est jamais concerné : un `output_path` seul reste
254
254
  un chemin, interprété côté gateway comme avant.
255
255
 
256
+ `<x>_path` est obligatoire pour l'agent si, et seulement si, le MCP le déclare obligatoire.
257
+ Un outil qui le laisse optionnel accepte sa donnée autrement — un texte passé en ligne, par
258
+ exemple. Sans `<x>_path`, le relais ne lit rien et transmet l'appel tel quel.
259
+
256
260
  **Le chemin vient de l'agent : il n'est pas digne de confiance.** La fonction est donc
257
261
  fermée par défaut et s'ouvre dossier par dossier :
258
262
 
@@ -335,7 +339,7 @@ Dès qu'un outil distant déclare la paire `<x>_path` / `<x>_relay`, le relais :
335
339
  dégradation silencieuse : mieux vaut un fichier perdu qu'un fichier écrit au mauvais endroit.
336
340
  - `<x>_path` est toujours un **dossier**, créé si besoin ; le fichier garde le nom que lui
337
341
  donne le MCP. Le relais ne renomme jamais.
338
- - Contrairement au sens aller, `<x>_path` **n'est pas rendu obligatoire** : le MCP décide.
342
+ - Comme au sens aller, `<x>_path` n'est obligatoire que si le MCP le déclare tel.
339
343
  Un outil qui le déclare optionnel dit par là qu'il sait quoi faire sans destination —
340
344
  renvoyer une capture inline, par exemple. Sans `<x>_path`, le relais ne retient rien,
341
345
  ne pose pas `<x>_relay`, et le résultat repart intact.
package/mcp-mode.js CHANGED
@@ -175,19 +175,11 @@ function schemaForAgent(inputSchema) {
175
175
  Object.entries(inputSchema.properties).filter(([key]) => !hidden.has(key))
176
176
  );
177
177
 
178
- // À l'aller, le chemin devient la seule façon de désigner le fichier — `<x>_content`
179
- // est caché — donc il n'est plus optionnel.
180
- //
181
- // Au retour, non : une destination que le MCP a rendue optionnelle veut dire quelque
182
- // chose (« renvoie-moi le contenu au lieu de l'écrire »), et sans elle `prepareDeliveries`
183
- // ne fait déjà rien. La rendre obligatoire ici forcerait une destination sur chaque
184
- // appel, y compris ceux qui n'attendent aucun fichier.
185
- const required = [
186
- ...new Set([
187
- ...(inputSchema.required ?? []).filter((key) => !hidden.has(key)),
188
- ...inbound.map((p) => p.pathProp),
189
- ]),
190
- ];
178
+ // Le caractère obligatoire d'un `<x>_path` est celui que le MCP déclare, dans les deux
179
+ // sens. Un chemin optionnel veut dire quelque chose : à l'aller, que l'outil accepte
180
+ // aussi sa donnée autrement (un texte passé en ligne, par exemple) ; au retour, qu'il
181
+ // sait quoi faire sans destination. Sans `<x>_path`, le relais ne fait rien.
182
+ const required = (inputSchema.required ?? []).filter((key) => !hidden.has(key));
191
183
 
192
184
  return { ...inputSchema, properties, required };
193
185
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@imenam/mcp-http-gateway",
3
- "version": "2.0.13",
3
+ "version": "2.0.14",
4
4
  "type": "module",
5
5
  "description": "HTTP gateway that exposes MCP servers as REST routes — bridge between MCP and any HTTP-capable agent",
6
6
  "main": "server.js",