diff --git a/protocol/source/served/lsp/protocol.d b/protocol/source/served/lsp/protocol.d
index 679efff..611ee98 100644
--- a/protocol/source/served/lsp/protocol.d
+++ b/protocol/source/served/lsp/protocol.d
@@ -2057,6 +2057,7 @@ struct ServerCapabilities
 	@serdeOptional Variant!(void, bool, ReferenceOptions) referencesProvider;
 	@serdeOptional Variant!(void, bool, DocumentHighlightOptions) documentHighlightProvider;
 	@serdeOptional Variant!(void, bool, DocumentSymbolOptions) documentSymbolProvider;
+	@serdeOptional Variant!(void, bool, InlayHintProvider) inlayHintProvider;
 	@serdeOptional Variant!(void, bool, CodeActionOptions) codeActionProvider;
 	@serdeOptional Variant!(void, CodeLensOptions) codeLensProvider;
 	@serdeOptional Variant!(void, DocumentLinkOptions) documentLinkProvider;
@@ -3085,6 +3086,43 @@ struct ReferenceParams
 	ReferenceContext context;
 }
 
+@serdeFallbackStruct
+@allowedMethods("textDocument/inlayHint")
+struct InlayHintParams
+{
+	TextDocumentIdentifier textDocument;
+	TextRange range;
+}
+
+@serdeFallbackStruct
+struct InlayHint
+{
+    Position position;
+    Variant!(string, InlayHintLabelPart[]) label;
+    @serdeOptional Optional!InlayHintKind kind;
+    @serdeOptional Optional!(TextEdit[]) textEdits;
+    @serdeOptional Variant!(void, string, MarkupContent) tooltip;
+    @serdeOptional Optional!(bool) paddingLeft;
+    @serdeOptional Optional!(bool) paddingRight;
+    // TODO: @serdeOptional Optional!(LSPAny) data;
+}
+
+@serdeEnumProxy!uint
+enum InlayHintKind
+{
+    type = 1,
+    parameter = 2,
+}
+
+@serdeFallbackStruct
+struct InlayHintLabelPart
+{
+    string value;
+    @serdeOptional Variant!(void, string, MarkupContent) tooltip;
+    @serdeOptional Optional!Location location;
+    @serdeOptional Optional!Command command;
+}
+
 @serdeFallbackStruct
 struct ReferenceContext
 {
@@ -3151,6 +3189,14 @@ struct DocumentSymbolOptions
 	@serdeOptional Optional!string label;
 }
 
+@serdeFallbackStruct
+struct InlayHintProvider
+{
+	mixin WorkDoneProgressOptions;
+
+	@serdeOptional Optional!string label;
+}
+
 @serdeFallbackStruct
 struct DocumentSymbolRegistrationOptions
 {