fix(mcplocal): stop upstream required params from blocking a drill-down #129
Reference in New Issue
Block a user
Delete Branch "fix/drilldown-required-params"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
A paginated tool result instructs the model to call the same tool again with only
_resultId/_section. The advertised schema still carried the upstream's ownrequiredlist, so a validating client rejected that exact call ("Received tool input did not match expected schema") and the model concluded pagination was broken.Verified live:
websearch_fetch_contentadvertisedrequired: ["url"]alongside the drill-down params.requiredis ANDed with the rest of the schema, so declaring properties could not fix it. It is now an alternation — the upstream's requirements (fresh call) OR_resultId(a re-read, answered from cache, never forwarded upstream). Validators that understandanyOfenforce it; naive ones see no top-levelrequiredand accept both. Existing combinators are preserved (alternation appended toallOf); schemas withoutrequiredare untouched.Tests: 4 new unit tests (required-bearing schema, drill-down without required params, no-required schema untouched, combinator composition) + a smoke assertion that no advertised tool keeps a drill-down-blocking
required. Full mcplocal suite green (850 tests).🤖 Generated with Claude Code
https://claude.ai/code/session_01JQr5Z9gYrqBQXTGBBuemZ2