@@ -66,19 +66,25 @@ public class McpAsyncToolset implements BaseToolset {
6666
6767 /** Builder for McpAsyncToolset */
6868 public static class Builder {
69- private Object connectionParams = null ;
69+ private McpSessionManager mcpSessionManager = null ;
7070 private ObjectMapper objectMapper = null ;
7171 private @ Nullable Object toolFilter = null ;
7272
7373 @ CanIgnoreReturnValue
7474 public Builder connectionParams (ServerParameters connectionParams ) {
75- this .connectionParams = connectionParams ;
75+ this .mcpSessionManager = new McpSessionManager ( connectionParams ) ;
7676 return this ;
7777 }
7878
7979 @ CanIgnoreReturnValue
8080 public Builder connectionParams (SseServerParameters connectionParams ) {
81- this .connectionParams = connectionParams ;
81+ this .mcpSessionManager = new McpSessionManager (connectionParams );
82+ return this ;
83+ }
84+
85+ @ CanIgnoreReturnValue
86+ public Builder mcpSessionManager (McpSessionManager mcpSessionManager ) {
87+ this .mcpSessionManager = mcpSessionManager ;
8288 return this ;
8389 }
8490
@@ -104,14 +110,8 @@ public McpAsyncToolset build() {
104110 if (objectMapper == null ) {
105111 objectMapper = JsonBaseModel .getMapper ();
106112 }
107- if (connectionParams instanceof ServerParameters setSelectedParams ) {
108- return new McpAsyncToolset (setSelectedParams , objectMapper , toolFilter );
109- } else if (connectionParams instanceof SseServerParameters sseServerParameters ) {
110- return new McpAsyncToolset (sseServerParameters , objectMapper , toolFilter );
111- } else {
112- throw new IllegalArgumentException (
113- "connectionParams must be either ServerParameters or SseServerParameters" );
114- }
113+ Preconditions .checkNotNull (mcpSessionManager , "Connection params must be set" );
114+ return new McpAsyncToolset (mcpSessionManager , objectMapper , toolFilter );
115115 }
116116 }
117117
@@ -123,29 +123,11 @@ public McpAsyncToolset build() {
123123 * @param toolFilter Either a ToolPredicate or a List of tool names.
124124 */
125125 McpAsyncToolset (
126- SseServerParameters connectionParams ,
127- ObjectMapper objectMapper ,
128- @ Nullable Object toolFilter ) {
129- Objects .requireNonNull (connectionParams );
130- Objects .requireNonNull (objectMapper );
131- this .objectMapper = objectMapper ;
132- this .mcpSessionManager = new McpSessionManager (connectionParams );
133- this .toolFilter = toolFilter ;
134- }
135-
136- /**
137- * Initializes the McpAsyncToolset with local server parameters.
138- *
139- * @param connectionParams The local server connection parameters to the MCP server.
140- * @param objectMapper An ObjectMapper instance for parsing schemas.
141- * @param toolFilter Either a ToolPredicate or a List of tool names or null.
142- */
143- McpAsyncToolset (
144- ServerParameters connectionParams , ObjectMapper objectMapper , @ Nullable Object toolFilter ) {
145- Objects .requireNonNull (connectionParams );
126+ McpSessionManager mcpSessionManager , ObjectMapper objectMapper , @ Nullable Object toolFilter ) {
127+ Objects .requireNonNull (mcpSessionManager );
146128 Objects .requireNonNull (objectMapper );
147129 this .objectMapper = objectMapper ;
148- this .mcpSessionManager = new McpSessionManager ( connectionParams ) ;
130+ this .mcpSessionManager = mcpSessionManager ;
149131 this .toolFilter = toolFilter ;
150132 }
151133
0 commit comments