mcp: add ModifyRequest to HTTP client transports#546
Open
manuelibar wants to merge 3 commits intomodelcontextprotocol:mainfrom
Open
mcp: add ModifyRequest to HTTP client transports#546manuelibar wants to merge 3 commits intomodelcontextprotocol:mainfrom
manuelibar wants to merge 3 commits intomodelcontextprotocol:mainfrom
Conversation
Add ModifyRequest func(*http.Request) field to both SSEClientTransport and StreamableClientTransport. This callback is invoked before each outgoing HTTP request, allowing users to add headers, authentication, or other request modifications. This provides a simpler alternative to implementing custom RoundTrippers for common use cases like adding authorization headers or request IDs. Fixes modelcontextprotocol#533
jba
previously approved these changes
Oct 2, 2025
# Conflicts: # mcp/streamable_test.go
Contributor
Author
|
@jba please check again 🙏 , it appeared to have some merge conflicts prior to merging |
Contributor
|
@manuelibar I think we'll discuss this in the proposal meeting tomorrow and likely approve the proposal (unless anyone objects), so we may as well wait to merge until then. |
Contributor
|
Should we wait for the outcome of golang/go#75814 before merging this? |
Contributor
|
Yes, I think we're waiting clarity on the end-to-end client oauth flow, before we commit to more API. See also #591. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
Users need to modify HTTP requests (add headers, authentication, etc.) but currently must implement custom
RoundTripperimplementations which requires cloning requests and is more complex than necessary.Solution
Add
ModifyRequest func(*http.Request)field to bothSSEClientTransportandStreamableClientTransport. This callback is invoked before each outgoing HTTP request, providing a simple way to modify requests without needing customRoundTripperimplementations.Changes
ModifyRequestfield toSSEClientTransport(called before GET and POST requests)ModifyRequestfield toStreamableClientTransport(called before GET, POST, and DELETE requests)Impact
Fixes #533