feat: add bulk registration methods for tools, resources, and prompts #847
+662
−5
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.
Adds bulk registration methods (
registerTools
,registerResources
,registerPrompts
) to improve performance andreduce notification spam when registering large numbers of MCP components in a single operation.
Motivation and Context
When MCP servers need to register many components (e.g., 80+ tools), the current API requires individual calls that
each trigger separate
list_changed
notifications. This creates performance issues and notification spam forclients.
Problems solved:
How Has This Been Tested?
Breaking Changes
None. This is a purely additive change. All existing
tool()
,resource()
, andprompt()
methods workunchanged. The new bulk methods are optional enhancements.
Types of changes
Checklist
Additional context
Implementation notes:
ToolRegistration
interface withunknown
types to prevent TypeScript from attempting deepinference on complex schemas
list_changed
event after all registrations completeDesign decisions:
unknown
overany
to maintain type safety while preventing compilation issuesUse cases: