From de26b889ffad95e319468f6f9ea24149081bf2d7 Mon Sep 17 00:00:00 2001 From: Sacha Al Himdani Date: Tue, 16 Jun 2026 12:44:41 +0200 Subject: [PATCH] Coalesce nil additional emails to empty array The MCP Profile schema declares additional_email_addresses as a required, non-nullable array, but NewProfile passed the mail.Addrs value through unchanged. A profile with no extra emails has a nil slice, which marshals to JSON null and fails tool output validation with "type: null, want array". Default the nil slice to an empty mail.Addrs so the marshalled output always honors the strict array schema. Signed-off-by: Sacha Al Himdani --- pkg/server/api/mcp/v1/types/profile.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pkg/server/api/mcp/v1/types/profile.go b/pkg/server/api/mcp/v1/types/profile.go index 16cc188f1..6d4ff91a2 100644 --- a/pkg/server/api/mcp/v1/types/profile.go +++ b/pkg/server/api/mcp/v1/types/profile.go @@ -14,15 +14,23 @@ package types -import "go.probo.inc/probo/pkg/coredata" +import ( + "go.probo.inc/probo/pkg/coredata" + "go.probo.inc/probo/pkg/mail" +) func NewProfile(p *coredata.MembershipProfile) *Profile { + additionalEmailAddresses := p.AdditionalEmailAddresses + if additionalEmailAddresses == nil { + additionalEmailAddresses = mail.Addrs{} + } + return &Profile{ ID: p.ID, OrganizationID: p.OrganizationID, FullName: p.FullName, EmailAddress: p.EmailAddress, - AdditionalEmailAddresses: p.AdditionalEmailAddresses, + AdditionalEmailAddresses: additionalEmailAddresses, Kind: p.Kind, Source: p.Source, State: p.State,