From cc96080270c1d620fec43fba655c8d4fe6598210 Mon Sep 17 00:00:00 2001 From: Martin Emde Date: Fri, 4 Jul 2025 09:19:27 -0700 Subject: [PATCH] mcp: ensure meta is not skipped on blob ResourceContents --- mcp/content.go | 2 ++ mcp/content_test.go | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/mcp/content.go b/mcp/content.go index ed7f6f99..35533f18 100644 --- a/mcp/content.go +++ b/mcp/content.go @@ -177,10 +177,12 @@ func (r ResourceContents) MarshalJSON() ([]byte, error) { URI string `json:"uri,omitempty"` MIMEType string `json:"mimeType,omitempty"` Blob []byte `json:"blob"` + Meta Meta `json:"_meta,omitempty"` }{ URI: r.URI, MIMEType: r.MIMEType, Blob: r.Blob, + Meta: r.Meta, } return json.Marshal(br) } diff --git a/mcp/content_test.go b/mcp/content_test.go index 5ee6f66c..02653583 100644 --- a/mcp/content_test.go +++ b/mcp/content_test.go @@ -146,6 +146,10 @@ func TestEmbeddedResource(t *testing.T) { &mcp.ResourceContents{URI: "u", Blob: []byte{1}}, `{"uri":"u","blob":"AQ=="}`, }, + { + &mcp.ResourceContents{URI: "u", MIMEType: "m", Blob: []byte{1}, Meta: mcp.Meta{"key": "value"}}, + `{"uri":"u","mimeType":"m","blob":"AQ==","_meta":{"key":"value"}}`, + }, } { data, err := json.Marshal(tt.rc) if err != nil {