Skip to content

Commit 1906b36

Browse files
committed
Cache default options
1 parent be3c68a commit 1906b36

File tree

1 file changed

+18
-14
lines changed

1 file changed

+18
-14
lines changed

src/ModelContextProtocol/Client/McpClientFactory.cs

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,23 @@ namespace ModelContextProtocol.Client;
1313
/// <summary>Provides factory methods for creating MCP clients.</summary>
1414
public 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

Comments
 (0)