Maurice
e510ff25ab
fix(mcp): refuse an argument a tool never declared instead of dropping it
...
The SDK wraps a raw shape in a plain z.object, which strips an undeclared
key and runs the handler as if nothing was wrong: an assistant that wrote
stopType for stop_type was told the place was updated while nothing had
changed. The registry registers every shape as z.strictObject, so the call
answers "Unrecognized key" and tools/list advertises additionalProperties
false. The nested objects a tool takes, authored inline or spread from a
shared schema (legs, stops, links, transit places), are strict at this
boundary for the same reason; the shared schemas themselves stay open for
REST. A whole Zod schema, the way a plugin's manifest-built tool arrives,
passes through as its author wrote it.
2026-09-22 11:06:13 +02:00
..
2026-09-03 16:18:21 +02:00
2026-07-18 22:13:52 +02:00
2026-09-19 21:45:16 +02:00
2026-09-19 21:45:16 +02:00
2026-09-20 12:11:41 +02:00
2026-09-20 12:11:41 +02:00
2026-08-25 12:36:52 +02:00
2026-09-20 12:11:41 +02:00
2026-08-25 15:22:46 +02:00
2026-07-18 22:13:52 +02:00
2026-09-20 12:11:41 +02:00
2026-08-11 11:15:32 +02:00
2026-09-20 12:11:41 +02:00
2026-09-19 21:45:16 +02:00
2026-08-25 15:22:46 +02:00
2026-09-12 13:07:08 +02:00
2026-08-25 12:36:52 +02:00
2026-09-20 12:11:41 +02:00
2026-09-20 22:28:35 +02:00
2026-08-25 12:36:52 +02:00
2026-09-20 12:11:41 +02:00
2026-08-25 12:36:52 +02:00
2026-09-20 12:11:41 +02:00
2026-08-25 12:36:52 +02:00
2026-08-25 12:36:52 +02:00
2026-09-20 12:11:41 +02:00
2026-08-29 00:51:43 +02:00
2026-09-20 12:34:34 +02:00
2026-09-22 11:06:13 +02:00
2026-08-25 15:22:46 +02:00
2026-09-19 21:45:16 +02:00
2026-08-25 15:22:46 +02:00
2026-08-25 12:36:52 +02:00
2026-09-21 11:09:38 +02:00
2026-09-20 12:11:41 +02:00
2026-09-20 13:54:31 +02:00
2026-09-20 12:11:41 +02:00
2026-09-20 12:11:41 +02:00
2026-09-20 13:54:31 +02:00
2026-09-19 21:45:16 +02:00
2026-09-20 12:11:41 +02:00
2026-07-18 22:13:52 +02:00
2026-08-25 15:22:46 +02:00
2026-09-20 12:11:41 +02:00
2026-09-20 12:11:41 +02:00
2026-09-20 12:48:44 +02:00
2026-08-25 15:22:46 +02:00
2026-08-25 12:36:52 +02:00
2026-09-20 12:11:41 +02:00
2026-08-25 15:22:46 +02:00
2026-09-20 12:11:41 +02:00
2026-08-25 12:36:52 +02:00
2026-08-25 15:22:46 +02:00
2026-09-20 12:11:41 +02:00
2026-09-20 12:11:41 +02:00
2026-09-20 12:11:41 +02:00
2026-08-25 12:36:52 +02:00
2026-04-20 10:11:53 +02:00
2026-09-20 15:29:35 +02:00
2026-09-12 12:55:34 +02:00
2026-09-22 11:06:13 +02:00
2026-08-25 15:22:46 +02:00
2026-08-25 12:36:52 +02:00
2026-09-20 12:11:41 +02:00
2026-09-20 12:48:44 +02:00
2026-08-25 15:22:46 +02:00
2026-08-25 15:22:46 +02:00
2026-08-25 12:36:52 +02:00
2026-08-25 15:22:46 +02:00
2026-09-15 15:58:36 +03:00
2026-08-25 12:36:52 +02:00
2026-09-21 22:14:44 +02:00
2026-09-20 12:11:41 +02:00
2026-09-22 11:06:13 +02:00
2026-09-20 12:11:41 +02:00
2026-09-20 12:11:41 +02:00
2026-09-02 23:06:03 +02:00
2026-09-20 12:11:41 +02:00
2026-09-20 12:11:41 +02:00
2026-08-25 12:36:52 +02:00
2026-09-20 12:11:41 +02:00
2026-09-20 12:11:41 +02:00
2026-08-25 15:22:46 +02:00
2026-09-21 17:05:42 +02:00
2026-09-20 12:11:41 +02:00
2026-09-20 12:11:41 +02:00
2026-08-25 15:22:46 +02:00
2026-08-25 15:22:46 +02:00
2026-09-20 12:11:41 +02:00
2026-09-20 13:54:31 +02:00
2026-09-20 12:11:41 +02:00
2026-09-20 12:11:41 +02:00
2026-09-20 12:48:44 +02:00
2026-09-20 12:11:41 +02:00
2026-09-20 12:11:41 +02:00
2026-09-20 12:11:41 +02:00
2026-09-12 12:51:27 +02:00
2026-08-25 15:22:46 +02:00
2026-09-20 12:11:41 +02:00