diff --git a/src/ModelContextProtocol/Client/SseClientTransportOptions.cs b/src/ModelContextProtocol/Client/SseClientTransportOptions.cs
index 8843fca80..b89a2b7f6 100644
--- a/src/ModelContextProtocol/Client/SseClientTransportOptions.cs
+++ b/src/ModelContextProtocol/Client/SseClientTransportOptions.cs
@@ -3,7 +3,7 @@ namespace ModelContextProtocol.Client;
///
/// Provides options for configuring instances.
///
-public record SseClientTransportOptions
+public class SseClientTransportOptions
{
///
/// Gets or sets the base address of the server for SSE connections.
@@ -11,7 +11,7 @@ public record SseClientTransportOptions
public required Uri Endpoint
{
get;
- init
+ set
{
if (value is null)
{
@@ -43,12 +43,12 @@ public required Uri Endpoint
/// HTTP with SSE transport specification.
///
///
- public HttpTransportMode TransportMode { get; init; } = HttpTransportMode.AutoDetect;
+ public HttpTransportMode TransportMode { get; set; } = HttpTransportMode.AutoDetect;
///
/// Gets a transport identifier used for logging purposes.
///
- public string? Name { get; init; }
+ public string? Name { get; set; }
///
/// Gets or sets a timeout used to establish the initial connection to the SSE server. Defaults to 30 seconds.
@@ -61,7 +61,7 @@ public required Uri Endpoint
///
/// If the timeout expires before the connection is established, a will be thrown.
///
- public TimeSpan ConnectionTimeout { get; init; } = TimeSpan.FromSeconds(30);
+ public TimeSpan ConnectionTimeout { get; set; } = TimeSpan.FromSeconds(30);
///
/// Gets custom HTTP headers to include in requests to the SSE server.
@@ -69,5 +69,5 @@ public required Uri Endpoint
///
/// Use this property to specify custom HTTP headers that should be sent with each request to the server.
///
- public Dictionary? AdditionalHeaders { get; init; }
+ public Dictionary? AdditionalHeaders { get; set; }
}
\ No newline at end of file
diff --git a/src/ModelContextProtocol/Client/StdioClientTransportOptions.cs b/src/ModelContextProtocol/Client/StdioClientTransportOptions.cs
index afacd3594..e48948604 100644
--- a/src/ModelContextProtocol/Client/StdioClientTransportOptions.cs
+++ b/src/ModelContextProtocol/Client/StdioClientTransportOptions.cs
@@ -3,7 +3,7 @@ namespace ModelContextProtocol.Client;
///
/// Provides options for configuring instances.
///
-public record StdioClientTransportOptions
+public class StdioClientTransportOptions
{
///
/// Gets or sets the command to execute to start the server process.
diff --git a/src/ModelContextProtocol/ProgressNotificationValue.cs b/src/ModelContextProtocol/ProgressNotificationValue.cs
index 3ed38572e..f8ee0a5e8 100644
--- a/src/ModelContextProtocol/ProgressNotificationValue.cs
+++ b/src/ModelContextProtocol/ProgressNotificationValue.cs
@@ -1,7 +1,7 @@
namespace ModelContextProtocol;
/// Provides a progress value that can be sent using .
-public record struct ProgressNotificationValue
+public class ProgressNotificationValue
{
///
/// Gets or sets the progress thus far.
diff --git a/src/ModelContextProtocol/Protocol/Annotations.cs b/src/ModelContextProtocol/Protocol/Annotations.cs
index 1e8874e89..e937607cb 100644
--- a/src/ModelContextProtocol/Protocol/Annotations.cs
+++ b/src/ModelContextProtocol/Protocol/Annotations.cs
@@ -9,7 +9,7 @@ namespace ModelContextProtocol.Protocol;
/// Annotations enable filtering and prioritization of content for different audiences.
/// See the schema for details.
///
-public record Annotations
+public class Annotations
{
///
/// Gets or sets the intended audience for this content as an array of values.
diff --git a/src/ModelContextProtocol/Protocol/InitializeResult.cs b/src/ModelContextProtocol/Protocol/InitializeResult.cs
index 8427deee8..581152727 100644
--- a/src/ModelContextProtocol/Protocol/InitializeResult.cs
+++ b/src/ModelContextProtocol/Protocol/InitializeResult.cs
@@ -19,7 +19,7 @@ namespace ModelContextProtocol.Protocol;
/// See the schema for details.
///
///
-public record InitializeResult
+public class InitializeResult
{
///
/// Gets or sets the version of the Model Context Protocol that the server will use for this session.
diff --git a/src/ModelContextProtocol/Protocol/JsonRpcErrorDetail.cs b/src/ModelContextProtocol/Protocol/JsonRpcErrorDetail.cs
index e2ff0e66d..bcdd42808 100644
--- a/src/ModelContextProtocol/Protocol/JsonRpcErrorDetail.cs
+++ b/src/ModelContextProtocol/Protocol/JsonRpcErrorDetail.cs
@@ -11,7 +11,7 @@ namespace ModelContextProtocol.Protocol;
/// a standard format for error responses that includes a numeric code, a human-readable message,
/// and optional additional data.
///
-public record JsonRpcErrorDetail
+public class JsonRpcErrorDetail
{
///
/// Gets an integer error code according to the JSON-RPC specification.
diff --git a/src/ModelContextProtocol/Protocol/PingResult.cs b/src/ModelContextProtocol/Protocol/PingResult.cs
index e00f12596..cc2bc5c33 100644
--- a/src/ModelContextProtocol/Protocol/PingResult.cs
+++ b/src/ModelContextProtocol/Protocol/PingResult.cs
@@ -14,4 +14,4 @@ namespace ModelContextProtocol.Protocol;
/// is still responsive.
///
///
-public record PingResult;
\ No newline at end of file
+public class PingResult;
\ No newline at end of file
diff --git a/src/ModelContextProtocol/Protocol/Resource.cs b/src/ModelContextProtocol/Protocol/Resource.cs
index d2c1f55bd..d9217b706 100644
--- a/src/ModelContextProtocol/Protocol/Resource.cs
+++ b/src/ModelContextProtocol/Protocol/Resource.cs
@@ -8,7 +8,7 @@ namespace ModelContextProtocol.Protocol;
///
/// See the schema for details.
///
-public record Resource
+public class Resource
{
///
/// Gets or sets the URI of this resource.
diff --git a/src/ModelContextProtocol/Protocol/ResourceTemplate.cs b/src/ModelContextProtocol/Protocol/ResourceTemplate.cs
index 94ef68c40..07bac92dc 100644
--- a/src/ModelContextProtocol/Protocol/ResourceTemplate.cs
+++ b/src/ModelContextProtocol/Protocol/ResourceTemplate.cs
@@ -9,7 +9,7 @@ namespace ModelContextProtocol.Protocol;
/// Resource templates provide metadata about resources available on the server,
/// including how to construct URIs for those resources.
///
-public record ResourceTemplate
+public class ResourceTemplate
{
///
/// Gets or sets the URI template (according to RFC 6570) that can be used to construct resource URIs.