[BUG] Title: [BUG] Cowork cannot connect to "Claude in Chrome" MCP — chrome-native-host.exe returns "Access is denied (os error 5)" — reproduced on 3 machines (Windows + macOS)
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
<html>
<body>
<!--StartFragment--><h2 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold">Bug Description</h2>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">Cowork mode fails to connect to the "Claude in Chrome" MCP server. The Chrome extension shows "Connected" in its popup, but Cowork consistently reports the MCP server as unreachable. The root cause appears to be that <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">chrome-native-host.exe</code> cannot be executed — it returns <strong>"Error: Access is denied. (os error 5)"</strong> when run directly.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">This issue reproduces on <strong>3 separate machines</strong> (Windows and macOS), all using the same Claude account, confirming this is not a local configuration problem.</p>
<h2 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold">Environment</h2>
<div class="overflow-x-auto w-full px-2 mb-6">
Component | Details
-- | --
Claude Desktop | Latest version (downloaded from claude.com/download)
Chrome | Latest version
Extension | Claude in Chrome, installed & enabled (ID: fcoeoabgfenejglbffodgkkbkcdhcgfn)
Subscription | Max plan
OS | Windows 10/11 + macOS (3 machines tested)
Other Claude tools | Claude Desktop only (no Claude Code CLI installed)
</div>
<h2 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold">Steps to Reproduce</h2>
<ol class="[li_&]:mb-0 [li_&]:mt-1 [li_&]:gap-1 [&:not(:last-child)_ul]:pb-1 [&:not(:last-child)_ol]:pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3">
<li class="whitespace-normal break-words pl-2">Install Claude Desktop from claude.com/download</li>
<li class="whitespace-normal break-words pl-2">Install Claude in Chrome extension from Chrome Web Store</li>
<li class="whitespace-normal break-words pl-2">Sign in with the same Claude account on both</li>
<li class="whitespace-normal break-words pl-2">Enable "Claude in Chrome" in Claude Desktop → Settings → Connectors</li>
<li class="whitespace-normal break-words pl-2">Open Cowork mode and attempt to use browser automation</li>
</ol>
<h2 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold">Expected Behavior</h2>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">Cowork should connect to Chrome via the Claude in Chrome extension and enable browser automation.</p>
<h2 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold">Actual Behavior</h2>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">Cowork reports "Claude in Chrome is not connected." Browser automation tools are completely unavailable.</p>
<h2 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold">Diagnosis</h2>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">Performed a full diagnostic of the native messaging host pipeline:</p>
<h3 class="text-text-100 mt-2 -mb-1 text-base font-bold">1. Registry — ✅ OK</h3>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]"><code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">HKEY_CURRENT_USER\SOFTWARE\Google\Chrome\NativeMessagingHosts\com.anthropic.claude_browser_extension</code> exists and points to the correct JSON manifest.</p>
<h3 class="text-text-100 mt-2 -mb-1 text-base font-bold">2. JSON Manifest — ✅ OK</h3>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">Located at:</p>
<div role="group" aria-label="Code" tabindex="0" class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100"><div class="sticky opacity-0 group-hover/copy:opacity-100 group-focus-within/copy:opacity-100 top-2 py-2 h-12 w-0 float-right"><div class="absolute right-0 h-8 px-2 items-center inline-flex z-10"><button class="inline-flex
items-center
justify-center
relative
isolate
shrink-0
can-focus
select-none
disabled:pointer-events-none
disabled:opacity-50
disabled:shadow-none
disabled:drop-shadow-none border-transparent
transition
font-base
duration-300
ease-[cubic-bezier(0.165,0.85,0.45,1)] h-8 w-8 rounded-md backdrop-blur-md _fill_1abo4_9 _ghost_1abo4_96" type="button" aria-label="Copy to clipboard" data-state="closed"><div class="relative"><div class="transition-all opacity-100 scale-100" style="width: 20px; height: 20px; display: flex; align-items: center; justify-content: center;"><svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="transition-all opacity-100 scale-100" aria-hidden="true" style="flex-shrink: 0;"><path d="M12.5 3A1.5 1.5 0 0 1 14 4.5V6h1.5A1.5 1.5 0 0 1 17 7.5v8a1.5 1.5 0 0 1-1.5 1.5h-8A1.5 1.5 0 0 1 6 15.5V14H4.5A1.5 1.5 0 0 1 3 12.5v-8A1.5 1.5 0 0 1 4.5 3zm1.5 9.5a1.5 1.5 0 0 1-1.5 1.5H7v1.5a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5v-8a.5.5 0 0 0-.5-.5H14zM4.5 4a.5.5 0 0 0-.5.5v8a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5v-8a.5.5 0 0 0-.5-.5z"></path></svg></div><div class="absolute inset-0 flex items-center justify-center"><div class="transition-all opacity-0 scale-50" style="width: 20px; height: 20px; display: flex; align-items: center; justify-content: center;"><svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="transition-all opacity-0 scale-50" aria-hidden="true" style="flex-shrink: 0;"><path d="M15.188 5.11a.5.5 0 0 1 .752.626l-.056.084-7.5 9a.5.5 0 0 1-.738.033l-3.5-3.5-.064-.078a.501.501 0 0 1 .693-.693l.078.064 3.113 3.113 7.15-8.58z"></path></svg></div></div></div></button></div></div><div class="overflow-x-auto"><pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5" style="color: rgb(20, 24, 31); background: transparent; font-family: var(--font-mono);"><code style="color: rgb(20, 24, 31); background: transparent; font-family: var(--font-mono); white-space: pre-wrap;"><span><span>C:\Users\<user>\AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\ChromeNativeHost\com.anthropic.claude_browser_extension.json</span></span></code></pre></div></div>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">Contents are correct:</p>
<ul class="[li_&]:mb-0 [li_&]:mt-1 [li_&]:gap-1 [&:not(:last-child)_ul]:pb-1 [&:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="whitespace-normal break-words pl-2"><code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">name</code>: <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">com.anthropic.claude_browser_extension</code></li>
<li class="whitespace-normal break-words pl-2"><code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">type</code>: <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">stdio</code></li>
<li class="whitespace-normal break-words pl-2"><code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">path</code>: points to <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">chrome-native-host.exe</code> in the same directory</li>
<li class="whitespace-normal break-words pl-2"><code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">allowed_origins</code>: includes the correct extension ID (<code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">fcoeoabgfenejglbffodgkkbkcdhcgfn</code>)</li>
</ul>
<h3 class="text-text-100 mt-2 -mb-1 text-base font-bold">3. Executable — ✅ Exists, ❌ Cannot Execute</h3>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]"><code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">chrome-native-host.exe</code> (1,014 KB, dated 2026-04-01) exists at the expected path inside the MSIX package directory.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]"><strong>However, running it directly produces:</strong></p>
<div role="group" aria-label="Code" tabindex="0" class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100"><div class="sticky opacity-0 group-hover/copy:opacity-100 group-focus-within/copy:opacity-100 top-2 py-2 h-12 w-0 float-right"><div class="absolute right-0 h-8 px-2 items-center inline-flex z-10"><button class="inline-flex
items-center
justify-center
relative
isolate
shrink-0
can-focus
select-none
disabled:pointer-events-none
disabled:opacity-50
disabled:shadow-none
disabled:drop-shadow-none border-transparent
transition
font-base
duration-300
ease-[cubic-bezier(0.165,0.85,0.45,1)] h-8 w-8 rounded-md backdrop-blur-md _fill_1abo4_9 _ghost_1abo4_96" type="button" aria-label="Copy to clipboard" data-state="closed"><div class="relative"><div class="transition-all opacity-100 scale-100" style="width: 20px; height: 20px; display: flex; align-items: center; justify-content: center;"><svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="transition-all opacity-100 scale-100" aria-hidden="true" style="flex-shrink: 0;"><path d="M12.5 3A1.5 1.5 0 0 1 14 4.5V6h1.5A1.5 1.5 0 0 1 17 7.5v8a1.5 1.5 0 0 1-1.5 1.5h-8A1.5 1.5 0 0 1 6 15.5V14H4.5A1.5 1.5 0 0 1 3 12.5v-8A1.5 1.5 0 0 1 4.5 3zm1.5 9.5a1.5 1.5 0 0 1-1.5 1.5H7v1.5a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5v-8a.5.5 0 0 0-.5-.5H14zM4.5 4a.5.5 0 0 0-.5.5v8a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5v-8a.5.5 0 0 0-.5-.5z"></path></svg></div><div class="absolute inset-0 flex items-center justify-center"><div class="transition-all opacity-0 scale-50" style="width: 20px; height: 20px; display: flex; align-items: center; justify-content: center;"><svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="transition-all opacity-0 scale-50" aria-hidden="true" style="flex-shrink: 0;"><path d="M15.188 5.11a.5.5 0 0 1 .752.626l-.056.084-7.5 9a.5.5 0 0 1-.738.033l-3.5-3.5-.064-.078a.501.501 0 0 1 .693-.693l.078.064 3.113 3.113 7.15-8.58z"></path></svg></div></div></div></button></div></div><div class="overflow-x-auto"><pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5" style="color: rgb(20, 24, 31); background: transparent; font-family: var(--font-mono);"><code style="color: rgb(20, 24, 31); background: transparent; font-family: var(--font-mono); white-space: pre-wrap;"><span><span>Error: Access is denied. (os error 5)</span></span></code></pre></div></div>
<h3 class="text-text-100 mt-2 -mb-1 text-base font-bold">4. Chrome Extension — ✅ OK</h3>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">Extension popup shows "Connected" status. Extension ID matches <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">allowed_origins</code> in the JSON manifest.</p>
<h3 class="text-text-100 mt-2 -mb-1 text-base font-bold">5. File Properties</h3>
<ul class="[li_&]:mb-0 [li_&]:mt-1 [li_&]:gap-1 [&:not(:last-child)_ul]:pb-1 [&:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="whitespace-normal break-words pl-2">No "Unblock" option in Windows file properties (not zone-blocked)</li>
<li class="whitespace-normal break-words pl-2">No Windows Defender/antivirus blocks detected</li>
</ul>
<h2 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold">Root Cause Hypothesis</h2>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">The <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">chrome-native-host.exe</code> resides inside the MSIX package directory (<code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">AppData\Local\Packages\Claude_pzs8sxrjxfjjc\...</code>). MSIX sandboxing may restrict external processes (Chrome) from executing binaries inside the package. This would explain why the native messaging host connection always fails despite all configurations being correct.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">The fact that this reproduces identically on macOS as well suggests there may also be a service-side or application-level issue beyond just MSIX permissions.</p>
<h2 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold">Workarounds Attempted (All Unsuccessful)</h2>
<ul class="contains-task-list">
<li class="task-list-item"><input disabled="" type="checkbox" checked=""> Full restart of Chrome + Claude Desktop (Chrome started first)</li>
<li class="task-list-item"><input disabled="" type="checkbox" checked=""> Reinstalled Claude in Chrome extension</li>
<li class="task-list-item"><input disabled="" type="checkbox" checked=""> Refreshed extension from chrome://extensions/</li>
<li class="task-list-item"><input disabled="" type="checkbox" checked=""> Verified same account on both extension and desktop app</li>
<li class="task-list-item"><input disabled="" type="checkbox" checked=""> Checked Windows Defender protection history — no blocks</li>
<li class="task-list-item"><input disabled="" type="checkbox" checked=""> Checked file properties for "Unblock" — not present</li>
<li class="task-list-item"><input disabled="" type="checkbox" checked=""> Uninstalled and reinstalled Claude Desktop</li>
<li class="task-list-item"><input disabled="" type="checkbox" checked=""> Tested on 3 different machines (Windows + macOS)</li>
</ul>
<h2 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold">Related Issues</h2>
<ul class="[li_&]:mb-0 [li_&]:mt-1 [li_&]:gap-1 [&:not(:last-child)_ul]:pb-1 [&:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="whitespace-normal break-words pl-2">#27492</li>
<li class="whitespace-normal break-words pl-2">#26305</li>
<li class="whitespace-normal break-words pl-2">#25151</li></ul><!--EndFragment-->
</body>
</html>
What Should Happen?
Cowork should connect to Chrome via the Claude in Chrome extension and enable browser automation tools (tabs_context_mcp, navigate, read_page, etc.).
Error Messages/Logs
Running chrome-native-host.exe directly:
Error: Access is denied. (os error 5)
Cowork MCP status:
"Claude in Chrome is not connected"
Steps to Reproduce
- Install Claude Desktop (latest version from claude.com/download) on Windows
- Install "Claude in Chrome" extension from Chrome Web Store
- Sign in with the same Claude Max account on both
- Enable "Claude in Chrome" in Claude Desktop → Settings → Connectors
- Open Chrome, confirm extension popup shows "Connected"
- Open Cowork mode in Claude Desktop
- Attempt any browser automation — connection always fails
Note: Reproduced on 3 separate machines (Windows + macOS), same Claude account. The issue is not machine-specific.
Claude Model
Not sure / Multiple models
Is this a regression?
No, this never worked
Last Working Version
_No response_
Claude Code Version
N/A — using Claude Desktop Cowork only
Platform
Other
Operating System
Windows
Terminal/Shell
Other
Additional Information
Full Diagnosis
Performed a complete native messaging host pipeline check on Windows:
- ✅ Registry:
HKEY_CURRENT_USER\SOFTWARE\Google\Chrome\NativeMessagingHosts\com.anthropic.claude_browser_extensionexists - ✅ JSON manifest: correctly configured with matching extension ID and exe path
- ✅ chrome-native-host.exe: exists (1,014 KB, dated 2026-04-01)
- ❌ Executing chrome-native-host.exe returns:
Error: Access is denied. (os error 5) - ✅ Chrome extension popup shows "Connected"
- ✅ Same Claude Max account on both extension and desktop app
Exe path (inside MSIX package directory):
C:\Users\<user>\AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\ChromeNativeHost\chrome-native-host.exe
Reproduced on 3 machines (Windows + macOS), same account. Not machine-specific.
Related: #27492, #26305, #25151
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗