diff --git a/src/ModelContextProtocol.Core/Protocol/CompleteContext.cs b/src/ModelContextProtocol.Core/Protocol/CompleteContext.cs new file mode 100644 index 000000000..eda5a50c0 --- /dev/null +++ b/src/ModelContextProtocol.Core/Protocol/CompleteContext.cs @@ -0,0 +1,19 @@ +using System.Text.Json.Serialization; + +namespace ModelContextProtocol.Protocol; + +/// +/// Represents additional context information for completion requests. +/// +/// +/// This context provides information that helps the server generate more relevant +/// completion suggestions, such as previously resolved variables in a template. +/// +public class CompleteContext +{ + /// + /// Gets or sets previously-resolved variables in a URI template or prompt. + /// + [JsonPropertyName("arguments")] + public IDictionary? Arguments { get; init; } +} diff --git a/src/ModelContextProtocol.Core/Protocol/CompleteRequestParams.cs b/src/ModelContextProtocol.Core/Protocol/CompleteRequestParams.cs index a64d2a557..1514ad3df 100644 --- a/src/ModelContextProtocol.Core/Protocol/CompleteRequestParams.cs +++ b/src/ModelContextProtocol.Core/Protocol/CompleteRequestParams.cs @@ -30,5 +30,11 @@ public class CompleteRequestParams : RequestParams /// and the current partial input. /// [JsonPropertyName("argument")] - public required Argument Argument { get; init; } + public required Argument Argument { get; init; } + + /// + /// Gets or sets additional, optional context for completions. + /// + [JsonPropertyName("context")] + public CompleteContext? Context { get; init; } }