computer-use MCP: browsers reported "(not installed)" on macOS when Spotlight is disabled, despite LaunchServices having them registered
Summary
On macOS 26.4 with Claude Code 2.1.154, the computer-use MCP's request_access permission dialog reports all browsers as "(not installed)" and offers to allow "0 apps" for the session — even though the browsers are physically installed, have valid Info.plist bundle identifiers, and are fully registered in LaunchServices.
The dialog is functionally unusable for any browser-targeted task because no app can ever be granted.
Environment
- macOS: 26.4 (Darwin 25.4.0, arm64 Mac16,8)
- Claude Code: 2.1.154
- Spotlight: intentionally disabled by the user for performance reasons (
mdutil -s /→Indexing disabled.)
Evidence that browsers ARE installed and registered
All four browsers exist with valid Info.plist:
Safari bundle=com.apple.Safari version=26.4
Google Chrome bundle=com.google.Chrome version=148.0.7778.216
Firefox bundle=org.mozilla.firefox version=151.0.2
Microsoft Edge bundle=com.microsoft.edgemac version=148.0.3967.96
lsregister -dump shows full LaunchServices records for each, including teamID, version, executables, claimed UTIs and schemes. Excerpts:
identifier: com.google.Chrome teamID: EQHXZ8M8AV
identifier: org.mozilla.firefox teamID: 43AQ936H96 version: 15126.5.25
identifier: com.microsoft.edgemac teamID: UBF8T346G9 version: 148.0.3967
Safari resolves correctly via path to application id "com.apple.Safari" → /System/Volumes/Preboot/Cryptexes/App/System/Applications/Safari.app/.
What the dialog shows
Computer Use wants to control these apps
View the Tailscale admin console you have open so I can point you to the
exact Aperture delete control instead of guessing.
o com.apple.Safari (not installed)
o com.brave.Browser (not installed)
o com.google.Chrome (not installed)
> 1. Allow for this session (0 apps)
2. Deny, and tell Claude what to do differently
(A second variant of the dialog used app names instead of bundle IDs — same "(not installed)" result.)
Reproduction
- Disable Spotlight:
sudo mdutil -i off /(and/System/Volumes/Data) - Install Chrome / Firefox / Edge into
/Applications(LaunchServices registers them automatically on first launch) - Verify with
lsregister -dump | grep -E "com.google.Chrome|org.mozilla.firefox|com.microsoft.edgemac"— entries are present - Have a Claude Code session call
mcp__computer-use__request_accesswith browsers in the app list - Observe: every browser labeled
(not installed), "Allow for this session (0 apps)"
Suspected cause
The detection mechanism in request_access likely uses Spotlight (mdfind / kMDItemCFBundleIdentifier) rather than LaunchServices APIs (NSWorkspace.urlForApplication(toOpen:) or LSCopyApplicationURLsForBundleIdentifier). With Spotlight disabled, the Spotlight query returns nothing — but LaunchServices is still authoritative for installed apps and should be the source of truth.
Suggested fix
Detect installed apps via LSCopyApplicationURLsForBundleIdentifier(bundleID, kLSRolesAll, NULL) or NSWorkspace.shared.urlForApplication(withBundleIdentifier:). Both work independent of Spotlight indexing state.
Workaround on the user side
Until fixed, users with Spotlight off can use the playwright MCP for browser automation (works across Chromium / Firefox / WebKit and does its own browser launching) or install claude-in-chrome for Chrome / Edge.
Related issues searched (not duplicates)
- #50735 — computer-use TCC permission grant ignored (different symptom, comprehensive TCC granted, here apps just aren't detected)
- #50719 / #42153 — Dock layer-20 hit-test blocks clicks (different — about input, not detection)
- #38783 — Windows-only Cowork registration
None match this macOS-specific detection-vs-LaunchServices discrepancy.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗