fix: Proper tool validation in mcp #2654
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Why
Prevents runtime errors from typos in inputs_from_state and outputs_to_state by validating parameter/output names at tool construction time.
The upstream Haystack PR added validation hooks (_get_valid_inputs() and _get_valid_outputs()) to the base Tool class to catch configuration errors early. Without implementing these methods, MCPTool failed to validate state-mapping parameters correctly because:
This led to silent failures when users mistyped parameter names in state-mapping configurations.
inputs_from_state,outputs_to_statehaystack#9423What
How can it be used
How did you test it
Notes for the reviewer
Design decisions:
Testing note: The test fix reveals that the previous test was actually testing invalid configuration - it would have failed if the upstream validation had been working. This validates that the fix is working correctly.