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; }
}