@@ -13,6 +13,23 @@ namespace ModelContextProtocol.Client;
1313/// <summary>Provides factory methods for creating MCP clients.</summary> 
1414public  static class  McpClientFactory 
1515{ 
16+     /// <summary>Default client options to use when none are supplied.</summary> 
17+     private  static readonly  McpClientOptions  s_defaultClientOptions  =  CreateDefaultClientOptions ( ) ; 
18+ 
19+     /// <summary>Creates default client options to use when no options are supplied.</summary> 
20+     private  static McpClientOptions  CreateDefaultClientOptions ( ) 
21+     { 
22+         var  asmName  =  ( Assembly . GetEntryAssembly ( )  ??  Assembly . GetCallingAssembly ( ) ) . GetName ( ) ; 
23+         return  new ( ) 
24+         { 
25+             ClientInfo  =  new ( ) 
26+             { 
27+                 Name  =  asmName . Name  ??  "McpClient" , 
28+                 Version  =  asmName . Version ? . ToString ( )  ??  "1.0.0" , 
29+             } , 
30+         } ; 
31+     } 
32+ 
1633    /// <summary>Creates an <see cref="IMcpClient"/>, connecting it to the specified server.</summary> 
1734    /// <param name="serverConfig">Configuration for the target server to which the client should connect.</param> 
1835    /// <param name="clientOptions"> 
@@ -36,20 +53,7 @@ public static async Task<IMcpClient> CreateAsync(
3653    { 
3754        Throw . IfNull ( serverConfig ) ; 
3855
39-         if  ( clientOptions  is  null ) 
40-         { 
41-             var  asmName  =  ( Assembly . GetEntryAssembly ( )  ??  Assembly . GetCallingAssembly ( ) ) . GetName ( ) ; 
42- 
43-             clientOptions  ??=  new ( ) 
44-             { 
45-                 ClientInfo  =  new ( ) 
46-                 { 
47-                     Name  =  asmName . Name  ??  "McpClient" , 
48-                     Version  =  asmName . Version ? . ToString ( )  ??  "1.0.0" , 
49-                 } , 
50-             } ; 
51-         } 
52- 
56+         clientOptions  ??=  s_defaultClientOptions ; 
5357        createTransportFunc  ??=  CreateTransport ; 
5458
5559        string  endpointName  =  $ "Client ({ serverConfig . Id } : { serverConfig . Name } )"; 
0 commit comments