CoreFoundation plist parse warning on startup when computer-use MCP is enabled (macOS)
Resolved 💬 1 comment Opened Apr 17, 2026 by intel352 Closed May 26, 2026
Summary
When the built-in computer-use MCP server is enabled for a project, Claude Code prints two identical CFPropertyListCreateFromXMLData() warnings to stderr on every interactive startup in that project's directory:
2026-04-16 23:19:55.130 claude[38732:6432735] CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary on line 3. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolon to debug.
2026-04-16 23:19:55.130 claude[38732:6432735] CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary on line 3. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolon to debug.
CF abandons the parse and Claude continues normally — the tool still works — so this is cosmetic, but the warning is noisy and looks alarming.
Reproduction
- macOS 14.5 (arm64), Claude Code
2.1.112installed to~/.local/bin/claude(native) - Enable
computer-usefor a project in~/.claude.json:
``json``
"projects": {
"/path/to/project": { "enabledMcpServers": ["computer-use"], ... }
}
cd /path/to/project && claude→ warnings appear on stderr at startup- Same claude in any directory where computer-use is not in
enabledMcpServers→ no warnings
Investigation
otool -Lon the claude binary only linkslibSystem,libicucore,libresolv,libc++. No static link toCoreFoundationorSecurity.- Strings in the binary show runtime
dlopenof/System/Library/Frameworks/CoreFoundation.framework/CoreFoundationand/System/Library/Frameworks/Security.framework/Security, plus references toAXIsProcessTrustedWithOptionsand CG event APIs — i.e. the FFI bindings used by computer-use. - The warning is emitted only when
computer-useis inenabledMcpServersfor the cwd's project — confirmed by toggling that single field and re-running. CFPropertyListCreateFromXMLDatawith an old-style-plist "missing semicolon on line 3" is what CF logs when it's handed JSON-ish or non-plist text. Something in the FFI init path (or a framework it loads transitively) is passing non-plist bytes into the plist parser.
Expected
No stderr noise on startup when computer-use is enabled.
Workaround
Remove "computer-use" from enabledMcpServers for the project, or launch with claude 2>/dev/null (hides all stderr).
Environment
- macOS 14.5 (23F79), arm64
- Claude Code 2.1.112 (native install)
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗