Microsoft 365 connector: outlook_send_mail / outlook_create_draft cannot set recipient display names
What Happens
The claude.ai Microsoft 365 connector exposes recipients on outlook_send_mail and outlook_create_draft as an array of strings validated with format: email. There is no display-name field, either on the recipient or on the message.
Passing the RFC 5322 name-addr form fails validation:
to: ["Jane Doe <jane@example.com>"]
MCP error -32602: Input validation error:
[{"validation":"email","code":"invalid_string",
"message":"Invalid email address","path":["to",0]}]
Why It Matters
Mail sent through the connector goes out with the address sitting in the display-name slot, addressed jane@example.com rather than Jane Doe. For correspondence with real people that reads as machine-generated, and there is no way to avoid it from within the connector.
Why This Looks Like A Wrapper Gap Rather Than A Platform Limit
Microsoft Graph's emailAddress resource has always accepted {name, address}. The connector flattens that to a bare string, so the underlying capability exists but is not reachable through the tool.
Suggested Fix
Accept either the name-addr string form ("Jane Doe <jane@example.com>") or an object form ({name, address}) in to, cc and bcc, then pass name through to Graph.
Workaround
Bypass the connector and send via EWS or Graph directly.