Add include_tools and exclude_tools filtering for MCP servers #3391
+219
−2
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.
Summary
Adds
include_toolsandexclude_toolsoptional fields toMCPServerto allow filtering which tools are exposed from an MCP server. The filtering logic inhydrate_tool_definitionsimplements: include_tools as a whitelist, exclude_tools as a blacklist, with exclude taking precedence when a tool appears in both lists.Review & Testing Checklist for Human
hydrate_tool_definitionscorrectly implements the precedence rule (exclude wins over include)include_tools/exclude_tools(JSON arrays) is compatible with the UITest Plan:
include_tools=["tool-a", "tool-b"]and verify only those tools are returnedexclude_tools=["tool-a"]and verify that tool is filtered outNotes
include_toolsandexclude_toolsfields in expected outputstest_serialize_node__tool_calling_node__mcp_server_with_tool_filtering) demonstrating how the fields serialize when populated with actual data (as JSON arrays)