[Bug] Computer Use MCP permissions reset on every CLI update due to version-pinned binary path
Bug Description
From: Jordan Dea-Mattson
GitHub: @jordan-of (OrdinaryFolk), @jordandm (personal)
Email: jordan-of@users.noreply.github.com, jordandm@users.noreply.github.com
Related: anthropics/claude-code#41099 (Computer Use MCP permissions setup is a dead end)
Problem
Every Claude Code update will break Computer Use MCP permissions. The CLI binary is version-pinned at ~/.local/share/claude/versions/{version} — a new path for every
release. macOS Accessibility and Screen Recording permissions are tied to the specific binary. Update Claude Code, permissions are gone, back to the manual grant
dance.
The Cost
The setup process documented in anthropics/claude-code#41099 took two sessions and a forced terminal restart. That's not a one-time cost — it's a per-update cost. For
users on the CLI who update frequently, Computer Use MCP is effectively unusable as a persistent capability.
Why This Happens
- which claude resolves to ~/.local/bin/claude
- That's a symlink to ~/.local/share/claude/versions/2.1.87 — a Mach-O binary
- macOS grants permissions to the specific binary, not the symlink
- claude update installs a new version at ~/.local/share/claude/versions/2.1.88 (or whatever)
- The symlink changes, but macOS still has the old binary in its permission lists
- Accessibility and Screen Recording both need to be re-granted to the new binary
- Ghostty must be restarted to pick up the new grants
The Desktop app (Claude.app) doesn't have this problem — the app bundle path is stable across updates.
Expected
- Use a stable binary path that survives updates — either grant permissions to the symlink or use a fixed-path wrapper
- Or automate the permission migration on update
- At minimum, detect stale permissions on startup and warn the user before they waste a session debugging it
Environment: Claude Code 2.1.87, macOS 15, Ghostty terminal
Environment Info
- Platform: darwin
- Terminal: ghostty
- Version: 2.1.87
- Feedback ID: 3936bccd-26aa-4678-a98b-6635657f2036
Errors
[{"error":"Error: Tool mcp__computer-use__request_access not found\n at Qs7 (/$bunfs/root/src/entrypoints/cli.js:2923:27657)\n at _w (/$bunfs/root/src/entrypoints/cli.js:453:20997)\n at $O (/$bunfs/root/src/entrypoints/cli.js:453:39538)\n at Ks (/$bunfs/root/src/entrypoints/cli.js:453:50229)\n at sEH (/$bunfs/root/src/entrypoints/cli.js:453:86903)\n at M0 (/$bunfs/root/src/entrypoints/cli.js:453:85865)\n at aEH (/$bunfs/root/src/entrypoints/cli.js:453:85687)\n at WDH (/$bunfs/root/src/entrypoints/cli.js:453:82052)\n at FH (/$bunfs/root/src/entrypoints/cli.js:453:6488)\n at zH (/$bunfs/root/src/entrypoints/cli.js:453:4972)\n at async <anonymous> (/$bunfs/root/src/entrypoints/cli.js:16629:279)","timestamp":"2026-03-30T18:28:05.181Z"},{"error":"Error: Tool mcp__computer-use__request_access not found\n at Qs7 (/$bunfs/root/src/entrypoints/cli.js:2923:27657)\n at _w (/$bunfs/root/src/entrypoints/cli.js:453:20997)\n at $O (/$bunfs/root/src/entrypoints/cli.js:453:39538)\n at Ks (/$bunfs/root/src/entrypoints/cli.js:453:50229)\n at sEH (/$bunfs/root/src/entrypoints/cli.js:453:86903)\n at M0 (/$bunfs/root/src/entrypoints/cli.js:453:85865)\n at aEH (/$bunfs/root/src/entrypoints/cli.js:453:85687)\n at WDH (/$bunfs/root/src/entrypoints/cli.js:453:82052)\n at FH (/$bunfs/root/src/entrypoints/cli.js:453:6488)\n at zH (/$bunfs/root/src/entrypoints/cli.js:453:4972)\n at async <anonymous> (/$bunfs/root/src/entrypoints/cli.js:16629:279)","timestamp":"2026-03-30T18:28:05.186Z"},{"error":"Error: Tool mcp__computer-use__request_access not found\n at Qs7 (/$bunfs/root/src/entrypoints/cli.js:2923:27657)\n at _w (/$bunfs/root/src/entrypoints/cli.js:453:20997)\n at $O (/$bunfs/root/src/entrypoints/cli.js:453:39538)\n at Ks (/$bunfs/root/src/entrypoints/cli.js:453:50229)\n at sEH (/$bunfs/root/src/entrypoints/cli.js:453:86903)\n at M0 (/$bunfs/root/src/entrypoints/cli.js:453:85865)\n at aEH (/$bunfs/root/src/entrypoints/cli.js:453:85687)\n at WDH (/$bunfs/root/src/entrypoints/cli.js:453:82052)\n at FH (/$bunfs/root/src/entrypoints/cli.js:453:6488)\n at zH (/$bunfs/root/src/entrypoints/cli.js:453:4972)\n at async <anonymous> (/$bunfs/root/src/entrypoints/cli.js:16629:279)","timestamp":"2026-03-30T18:28:05.187Z"},{"error":"Error: Tool mcp__computer-use__list_granted_applications not found\n at Qs7 (/$bunfs/root/src/entrypoints/cli.js:2923:27657)\n at _w (/$bunfs/root/src/entrypoints/cli.js:453:20997)\n at $O (/$bunfs/root/src/entrypoints/cli.js:453:39538)\n at Ks (/$bunfs/root/src/entrypoints/cli.js:453:50229)\n at sEH (/$bunfs/root/src/entrypoints…
Note: Content was truncated.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗