From 51f6794b96b997cfbf4ffbb391d527382f2b8ffd Mon Sep 17 00:00:00 2001 From: Stephen Toub Date: Thu, 5 Jun 2025 15:26:05 -0700 Subject: [PATCH] Add context to complete requests --- .../Protocol/CompleteContext.cs | 19 +++++++++++++++++++ .../Protocol/CompleteRequestParams.cs | 8 +++++++- 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 src/ModelContextProtocol.Core/Protocol/CompleteContext.cs diff --git a/src/ModelContextProtocol.Core/Protocol/CompleteContext.cs b/src/ModelContextProtocol.Core/Protocol/CompleteContext.cs new file mode 100644 index 00000000..eda5a50c --- /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 a64d2a55..1514ad3d 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; } }