[Bug] Computer Use MCP permissions reset on every CLI update due to version-pinned binary path

Resolved 💬 3 comments Opened Mar 30, 2026 by jordandm Closed Apr 3, 2026

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

  1. which claude resolves to ~/.local/bin/claude
  2. That's a symlink to ~/.local/share/claude/versions/2.1.87 — a Mach-O binary
  3. macOS grants permissions to the specific binary, not the symlink
  4. claude update installs a new version at ~/.local/share/claude/versions/2.1.88 (or whatever)
  5. The symlink changes, but macOS still has the old binary in its permission lists
  6. Accessibility and Screen Recording both need to be re-granted to the new binary
  7. 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

  1. Use a stable binary path that survives updates — either grant permissions to the symlink or use a fixed-path wrapper
  2. Or automate the permission migration on update
  3. 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.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗