using System.Text.Json; using System.Text.Json.Nodes; namespace ModelContextProtocol.Interceptors.Client; /// /// Options for creating an . /// public sealed class McpClientInterceptorCreateOptions { /// /// Gets or sets the name of the interceptor. /// /// /// If not provided, the name will be derived from the method name. /// public string? Name { get; set; } /// /// Gets or sets the version of the interceptor. /// public string? Version { get; set; } /// /// Gets or sets the description of the interceptor. /// public string? Description { get; set; } /// /// Gets or sets the events this interceptor handles. /// public string[]? Events { get; set; } /// /// Gets or sets the interceptor type. /// public InterceptorType? Type { get; set; } /// /// Gets or sets the execution phase. /// public InterceptorPhase? Phase { get; set; } /// /// Gets or sets the priority hint for mutation ordering. /// public int? PriorityHint { get; set; } /// /// Gets or sets the JSON schema for the interceptor's configuration. /// public JsonElement? ConfigSchema { get; set; } /// /// Gets or sets protocol-level metadata. /// public JsonObject? Meta { get; set; } /// /// Gets or sets the service provider for dependency injection. /// public IServiceProvider? Services { get; set; } /// /// Gets or sets the JSON serializer options. /// public JsonSerializerOptions? SerializerOptions { get; set; } /// /// Gets or sets the metadata for the interceptor. /// public IReadOnlyList? Metadata { get; set; } /// /// Creates a shallow copy of this options instance. /// public McpClientInterceptorCreateOptions Clone() => (McpClientInterceptorCreateOptions)MemberwiseClone(); }