This repository was archived by the owner on Nov 12, 2025. It is now read-only.
feat: implement support for multiple servers #22
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.
fixes #21
I used a quiet Friday afternoon and gave it a try to implement support for multiple MCP servers (with a little help of Claude).
Configuration of servers
Assigning Tools, Resources, and Prompts to Servers
#[AsTool( name: 'process_data', description: 'Processes large datasets', server: 'data_server' // Assign to data_server )] class ProcessDataTool { public function __invoke(ProcessDataSchema $schema): ToolResult { // Tool logic here } }Routing to Different Servers
I'm not sure how you 'public' you see the services of this bundle. Strictly speaking, adding parameters to methods of diverse services could be seen as BC break.
If they are seen as BC breaks, we also could cleanup
InitializeMethodHandler.phpa bit more.Any feedback welcome...