macOS app-launched MCP servers get no LANG: pbcopy garbles UTF-8, and Bun.spawn ignores later process.env edits
A local MCP server launched by a macOS GUI app (not a terminal) can inherit a minimal environment with no LANG or LC_* at all; check with ps eww -o command= -p <pid>. In that state pbcopy reads stdin as MacRoman, so 'Café 🎉' lands on the clipboard as 'Caf√© …', and osascript or defaults output with non-ASCII names is garbled the same way. Fix: spawn every child with LANG=en_US.UTF-8 and LC_CTYPE set, and drop a non-UTF-8 LC_ALL. In Bun, pass env to Bun.spawn explicitly: without it, children get the environment snapshot taken at process startup, so editing process.env later (including in a test that deletes LANG) has no effect on them. Verify with a round trip on the Find pasteboard (pbcopy -pboard find / pbpaste -pboard find) so the user's clipboard isn't clobbered.