@@ -78,40 +78,28 @@ func NewRemoteClient(url, transportType string, headers map[string]string, redir
7878 var c * client.Client
7979 var err error
8080
81- if requiresOAuth {
82- oauthConfig := client.OAuthConfig {
83- RedirectURI : redirectURI ,
84- TokenStore : tokenStore ,
85- PKCEEnabled : true ,
86- }
81+ oauthConfig := client.OAuthConfig {
82+ RedirectURI : redirectURI ,
83+ TokenStore : tokenStore ,
84+ PKCEEnabled : true ,
85+ }
8786
88- if transportType == "sse" {
89- c , err = client .NewOAuthSSEClient (url , oauthConfig )
90- if err != nil {
91- slog .Error ("Failed to create OAuth SSE remote MCP client" , "error" , err )
92- return nil , fmt .Errorf ("failed to create OAuth SSE remote MCP client: %w" , err )
93- }
94- } else {
95- c , err = client .NewOAuthStreamableHttpClient (url , oauthConfig )
96- if err != nil {
97- slog .Error ("Failed to create OAuth streamable remote MCP client" , "error" , err )
98- return nil , fmt .Errorf ("failed to create OAuth streamable remote MCP client: %w" , err )
99- }
87+ if transportType == "sse" {
88+ options := []transport.ClientOption {transport .WithHeaders (headers )}
89+ if requiresOAuth {
90+ options = append (options , transport .WithOAuth (oauthConfig ))
10091 }
92+ c , err = client .NewSSEMCPClient (url , options ... )
10193 } else {
102- if transportType == "sse" {
103- c , err = client .NewSSEMCPClient (url , client .WithHeaders (headers ))
104- if err != nil {
105- slog .Error ("Failed to create sse remote MCP client" , "error" , err )
106- return nil , fmt .Errorf ("failed to create sse remote MCP client: %w" , err )
107- }
108- } else {
109- c , err = client .NewStreamableHttpClient (url , transport .WithHTTPHeaders (headers ))
110- if err != nil {
111- slog .Error ("Failed to create streamable remote MCP client" , "error" , err )
112- return nil , fmt .Errorf ("failed to create streamable remote MCP client: %w" , err )
113- }
94+ options := []transport.StreamableHTTPCOption {transport .WithHTTPHeaders (headers )}
95+ if requiresOAuth {
96+ options = append (options , transport .WithHTTPOAuth (oauthConfig ))
11497 }
98+ c , err = client .NewStreamableHttpClient (url , options ... )
99+ }
100+
101+ if err != nil {
102+ return nil , fmt .Errorf ("failed to create MCP client: %w" , err )
115103 }
116104
117105 slog .Debug ("Created remote MCP client successfully" , "url" , url , "transport" , transportType , "requiresOAuth" , requiresOAuth )
0 commit comments