# Browser MCP Tools Not Available

**URL:** <https://forum.cursor.com/t/browser-mcp-tools-not-available/148335>\
**Category:** Bug Reports\
**Tags:** mcp, browser\
**Created:** [January 8, 2026, 4:37pm UTC](https://forum.cursor.com/t/browser-mcp-tools-not-available/148335 "2026-01-08T16:37:26Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![sneaXOR](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/sneaxor/32/93742_2.png) [@sneaXOR](https://forum.cursor.com/u/sneaXOR)\
**Post date:** [January 8, 2026, 4:37pm UTC](https://forum.cursor.com/t/browser-mcp-tools-not-available/148335/1 "2026-01-08T16:37:26Z")

</div>

### Where does the bug appear (feature/product)?

Cursor IDE

### Describe the Bug

Hi

I’m experiencing an issue where the `@Browser` MCP tools are not accessible to the AI assistant in Cursor. According to the MCP instructions, I should have access to browser tools from `cursor-browser-extension` and `cursor-ide-browser` servers, but these tools are not appearing in the available tools list.

When the assistant attempts to use browser functionality:

1. `list_mcp_resources()` returns empty: When querying for browser MCP resources, the tool returns “No MCP resources found” for both `cursor-browser-extension` and `cursor-ide-browser` servers.

2. No browser tools in available tools: The assistant’s available tools list does not include any browser-related tools (no `browser_navigate`, `browser_open`, `browser_click`, etc.).

3. Cannot perform browser operations: The assistant cannot navigate to URLs or interact with web pages through MCP, even when explicitly requested

4. Expected MCP Servers:

I precise I’ve al verified that I already activate the browser automation, and “show localhost links in browser”,i tested to explicitly call @browser but same problem

### Steps to Reproduce

1. Request the assistant to open a URL using the browser (e.g., “use the browser tab to open google”)
2. The assistant attempts to use `list_mcp_resources` for browser servers
3. Result: “No MCP resources found”
4. The assistant cannot access any browser tools

What I’ve Tried

- Called `list_mcp_resources()` without server filter - no resources found
- Called `list_mcp_resources(server="cursor-browser-extension")` - no resources found
- Called `list_mcp_resources(server="cursor-ide-browser")` - no resources found
- Searched the codebase for MCP configuration - no relevant configuration found

also tried with differents models, switch agent to chat, plan etc etc.

### Expected Behavior

just browser functionnality work

### Operating System

Windows 10/11

### Current Cursor Version (Menu → About Cursor → Copy)

Version: 2.3.30 (system setup)  
VSCode Version: 1.105.1  
Commit: d1289018cc3fcc395487f65455e31651734308d0  
Date: 2026-01-08T05:21:38.211Z  
Electron: 37.7.0  
Chromium: 138.0.7204.251  
Node.js: 22.20.0  
V8: 13.8.258.32-electron.0  
OS: Windows\_NT x64 10.0.26100

### Does this stop you from using Cursor

Sometimes - I can sometimes use Cursor

---

<div class="post-metadata">

**Author:** ![deanrie](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/deanrie/32/1263_2.png) [@deanrie](https://forum.cursor.com/u/deanrie)\
**Post date:** [January 8, 2026, 5:04pm UTC](https://forum.cursor.com/t/browser-mcp-tools-not-available/148335/3 "2026-01-08T17:04:49Z")

</div>

Hey, thanks for the report.

This is a known issue, a regression in versions 2.3.18+. The team is working on a fix. Browser automation should work through the built-in tools and it does NOT show up as a separate MCP server in Settings \> MCP.

To help us fix this faster, can you share:

- Help \> Toggle Developer Tools \> Console: any errors when you try to use the browser tools
- The Request ID of the failed call (chat context menu \> Copy Request ID)
- What do you see in Settings \> Tools & MCP \> Browser Automation?

Related reports: [Bug report with browser extension](https://forum.cursor.com/t/bug-report-with-browser-extension/147882)

---

<div class="post-metadata">

**Author:** ![sneaXOR](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/sneaxor/32/93742_2.png) [@sneaXOR](https://forum.cursor.com/u/sneaXOR)\
**Post date:** [January 8, 2026, 5:12pm UTC](https://forum.cursor.com/t/browser-mcp-tools-not-available/148335/4 "2026-01-08T17:12:15Z")

</div>

Oh, so maybe how can i regrete my cursor version to a functional version ?

Request ID : “6acbc610-7639-4496-bfaf-d185facd4b95”

Yes i see Browser automation and it is activated.

 ![Capture d’écran 2026-01-08 181151](https://us1.discourse-cdn.com/cursor1/original/3X/0/a/0a2037ac2fc74048b0c46cf0d12ef6b59a1ae025.png)

---

<div class="post-metadata">

**Author:** ![lonny](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/lonny/32/27347_2.png) [@lonny](https://forum.cursor.com/u/lonny)\
**Post date:** [January 10, 2026, 10:58am UTC](https://forum.cursor.com/t/browser-mcp-tools-not-available/148335/5 "2026-01-10T10:58:08Z")

</div>

Any ETA on a fix for this?

---

<div class="post-metadata">

**Author:** ![agfn](https://avatars.discourse-cdn.com/v4/letter/a/e5b9ba/32.png) [@agfn](https://forum.cursor.com/u/agfn)\
**Post date:** [January 17, 2026, 5:38pm UTC](https://forum.cursor.com/t/browser-mcp-tools-not-available/148335/7 "2026-01-17T17:38:55Z")

</div>

I’m absolutely furious! How can a critical feature like MCP have such a rookie bug? It’s like your team has no clue what testing is. This bug has been lingering since multiple versions ago and is still there in \*\*2.3.41 (2026-01-16)\*\*—unbelievable! You’d rather roll out new features than roll back this broken garbage? I just don’t get it!

VS Code once pushed an update that raised the libc version requirement, breaking the app for tons of old users. They fixed it the very next day, even though it was such a low-level dependency issue. But Cursor? You keep overhauling the UI and forcing your ugly agent layout down our throats, messing up our habits over and over again, while this MCP bug—where `list_mcp_resources()` returns nothing—remains unaddressed. Pathetic!

---

<div class="post-metadata">

**Author:** ![Gene\_Webb](https://avatars.discourse-cdn.com/v4/letter/g/aeb1de/32.png) [@Gene\_Webb](https://forum.cursor.com/u/Gene_Webb)\
**Post date:** [January 17, 2026, 5:42pm UTC](https://forum.cursor.com/t/browser-mcp-tools-not-available/148335/8 "2026-01-17T17:42:35Z")

</div>

Yes it was working with an mcp server to access SQL now nada, I also filed a bug report. I have not found a way to go back to the update from a day or two ago. Is there a way.

This was working before the 2.3.41 update in the last few days (at least for the sql mcp servers).

---

<div class="post-metadata">

**Author:** ![Nobody\_Here](https://avatars.discourse-cdn.com/v4/letter/n/65b543/32.png) [@Nobody\_Here](https://forum.cursor.com/u/Nobody_Here)\
**Post date:** [January 17, 2026, 10:26pm UTC](https://forum.cursor.com/t/browser-mcp-tools-not-available/148335/9 "2026-01-17T22:26:47Z")

</div>

Same problem. I regret that I have updated. Any workaround?

---

<div class="post-metadata">

**Author:** ![anonix98](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/anonix98/32/13764_2.png) [@anonix98](https://forum.cursor.com/u/anonix98)\
**Post date:** [January 18, 2026, 2:32am UTC](https://forum.cursor.com/t/browser-mcp-tools-not-available/148335/10 "2026-01-18T02:32:16Z")

</div>

What are you guys doing!!! Cursor is now unusable for me and my ultra subscribtion just renewed otherwise i would have cancled beforehand!!!

---

<div class="post-metadata">

**Author:** ![Peter\_Cox](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/peter_cox/32/100910_2.png) [@Peter\_Cox](https://forum.cursor.com/u/Peter_Cox)\
**Post date:** [January 18, 2026, 2:36am UTC](https://forum.cursor.com/t/browser-mcp-tools-not-available/148335/11 "2026-01-18T02:36:31Z")

</div>

I recommend using Playwriter.dev MCP which is far better than the Browser (unless you really want the browser window and editing tools in the Cursor IDE).

Apparently it has a significantly reduced context window - you can read all about if if you really want

It attaches to an existing tab rather than a new browser incognito window so no faff if your app uses SSO

> **[GitHub - remorses/playwriter: MCP to control your Chrome window via extension....](https://github.com/remorses/playwriter)**
>
> MCP to control your Chrome window via extension. Runs Playwright code in a stateful sandbox.

{

“mcpServers”: {

“playwriter”: {

“command”: “npx”,

“args”: [

“playwriter@latest”

],

“env”: {

“PLAYWRITER\_AUTO\_ENABLE”: “1”

}

}

}

}

---

<div class="post-metadata">

**Author:** ![Dario\_Tschannen](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/dario_tschannen/32/95500_2.png) [@Dario\_Tschannen](https://forum.cursor.com/u/Dario_Tschannen)\
**Post date:** [January 18, 2026, 3:07pm UTC](https://forum.cursor.com/t/browser-mcp-tools-not-available/148335/12 "2026-01-18T15:07:55Z")

</div>

Had the same issue with Cursor 2.3.41

Just downgraded Cursor to 2.2.44 and it works again like before.

---

<div class="post-metadata">

**Author:** ![igk](https://avatars.discourse-cdn.com/v4/letter/i/278dde/32.png) [@igk](https://forum.cursor.com/u/igk)\
**Post date:** [January 19, 2026, 2:40am UTC](https://forum.cursor.com/t/browser-mcp-tools-not-available/148335/13 "2026-01-19T02:40:46Z")

</div>

for historical versions, there’s one repo in github.

> <https://github.com/worryzyy/awesome-cursor-download/blob/master/cursor-version-archive.json>

---

<div class="post-metadata">

**Author:** ![igk](https://avatars.discourse-cdn.com/v4/letter/i/278dde/32.png) [@igk](https://forum.cursor.com/u/igk)\
**Post date:** [January 19, 2026, 2:45am UTC](https://forum.cursor.com/t/browser-mcp-tools-not-available/148335/14 "2026-01-19T02:45:50Z")

</div>

and to disable auto update, search `update.mode` in user settings (VSCode settings)

---

<div class="post-metadata">

**Author:** ![romabeorn](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/romabeorn/32/95024_2.png) [@romabeorn](https://forum.cursor.com/u/romabeorn)\
**Post date:** [January 19, 2026, 11:40am UTC](https://forum.cursor.com/t/browser-mcp-tools-not-available/148335/15 "2026-01-19T11:40:03Z")

</div>

Tried to fix xcodebuildmcp somehow for 3 hours. Downgrading to Cursor 2.2 helped. Agent mode just doesn’t see any mcp tools. Only mcp resources…

---

<div class="post-metadata">

**Author:** ![jzrbsv](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/jzrbsv/32/95600_2.png) [@jzrbsv](https://forum.cursor.com/u/jzrbsv)\
**Post date:** [January 23, 2026, 3:18am UTC](https://forum.cursor.com/t/browser-mcp-tools-not-available/148335/16 "2026-01-23T03:18:15Z")

</div>

having same issues described here but just instaled playright mcp to stop headaches.  
hope it gets fixed soon

---

<div class="post-metadata">

**Author:** ![cgcb](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/cgcb/32/43367_2.png) [@cgcb](https://forum.cursor.com/u/cgcb)\
**Post date:** [January 30, 2026, 4:19pm UTC](https://forum.cursor.com/t/browser-mcp-tools-not-available/148335/17 "2026-01-30T16:19:50Z")

</div>

I got this to work in the prior version by saving a workplace file. But I just upgraded and now this is not working AGAIN and saving the workplace file does no good. Cursor, you may want to invest in human coders and rely a little less on your buggy product.

My version is:

Version: 2.4.23 (Universal)  
VSCode Version: 1.105.1  
Commit: 379934e04d2b3290cf7aefa14560f942e4212920  
Date: 2026-01-29T21:24:23.350Z  
Build Type: Stable  
Release Track: Default  
Electron: 39.2.7  
Chromium: 142.0.7444.235  
Node.js: 22.21.1  
V8: 14.2.231.21-electron.0  
OS: Darwin arm64 25.2.0

---

<div class="post-metadata">

**Author:** ![cgcb](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/cgcb/32/43367_2.png) [@cgcb](https://forum.cursor.com/u/cgcb)\
**Post date:** [January 30, 2026, 4:30pm UTC](https://forum.cursor.com/t/browser-mcp-tools-not-available/148335/18 "2026-01-30T16:30:37Z")

</div>

Just installed which has broken the internal browser:

Version: 2.4.23 (Universal)  
VSCode Version: 1.105.1  
Commit: 379934e04d2b3290cf7aefa14560f942e4212920  
Date: 2026-01-29T21:24:23.350Z  
Build Type: Stable  
Release Track: Default  
Electron: 39.2.7  
Chromium: 142.0.7444.235  
Node.js: 22.21.1  
V8: 14.2.231.21-electron.0  
OS: Darwin arm64 25.2.0

Now, the config directories contain:

ls -al /Users/chris/.cursor/projects/Users-chris-Documents-Development-Tour-Editor-POC/mcps/\*

/Users/chris/.cursor/projects/Users-chris-Documents-Development-Tour-Editor-POC/mcps/cursor-browser-extension:

total 16  
drwxr-xr-x@ 4 chris staff 128 Jan 30 09:26 .  
drwxr-xr-x@ 4 chris staff 128 Jan 30 09:26 ..  
-rw-r–r–@ 1 chris staff 318 Jan 30 09:26 INSTRUCTIONS.md  
-rw-r–r–@ 1 chris staff 96 Jan 30 09:26 SERVER\_METADATA.json

/Users/chris/.cursor/projects/Users-chris-Documents-Development-Tour-Editor-POC/mcps/cursor-ide-browser:  
total 16  
drwxr-xr-x@ 4 chris staff 128 Jan 30 09:26 .  
drwxr-xr-x@ 4 chris staff 128 Jan 30 09:26 ..  
-rw-r–r–@ 1 chris staff 1931 Jan 30 09:26 INSTRUCTIONS.md  
-rw-r–r–@ 1 chris staff 84 Jan 30 09:26 SERVER\_METADATA.json

Developer console says this when I direct agent to debug in browser:

workbench.desktop.main.js:531 This document requires ‘TrustedScript’ assignment. The action has been blocked.  
(anonymous) @ workbench.desktop.main.js:531  
workbench.desktop.main.js:531 The JavaScript Function constructor does not accept TrustedString arguments. See [Trusted Types for function constructor · w3c/trusted-types Wiki · GitHub](https://github.com/w3c/webappsec-trusted-types/wiki/Trusted-Types-for-function-constructor) for more information.  
workbench.desktop.main.js:58 WARN Missing property “rpcFileLoggerFolder” in oldValue. Filling with value from initValue. Please add a migration if necessary.  
warn @ workbench.desktop.main.js:58  
workbench.desktop.main.js:58 WARN Via ‘product.json#extensionEnabledApiProposals’ extension ‘ms-toolsai.datawrangler’ wants API proposal ‘debugFocus’ but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check ‘vscode.d.ts’) or was abandoned.  
warn @ workbench.desktop.main.js:58  
workbench.desktop.main.js:58 WARN Via ‘product.json#extensionEnabledApiProposals’ extension ‘ms-vscode.vscode-copilot-data-analysis’ wants API proposal ‘chatVariableResolver’ but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check ‘vscode.d.ts’) or was abandoned.  
warn @ workbench.desktop.main.js:58  
workbench.desktop.main.js:58 WARN Via ‘product.json#extensionEnabledApiProposals’ extension ‘ms-python.python’ wants API proposal ‘terminalShellType’ but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check ‘vscode.d.ts’) or was abandoned.  
warn @ workbench.desktop.main.js:58  
workbench.desktop.main.js:58 WARN Via ‘product.json#extensionEnabledApiProposals’ extension ‘ms-python.vscode-python-envs’ wants API proposal ‘terminalShellType’ but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check ‘vscode.d.ts’) or was abandoned.  
warn @ workbench.desktop.main.js:58  
workbench.desktop.main.js:58 WARN Via ‘product.json#extensionEnabledApiProposals’ extension ‘github.copilot-chat’ wants API proposal ‘chatReadonlyPromptReference’ but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check ‘vscode.d.ts’) or was abandoned.  
warn @ workbench.desktop.main.js:58  
workbench.desktop.main.js:58 WARN Via ‘product.json#extensionEnabledApiProposals’ extension ‘ms-azuretools.vscode-azure-github-copilot’ wants API proposal ‘lmTools’ but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check ‘vscode.d.ts’) or was abandoned.  
warn @ workbench.desktop.main.js:58  
workbench.desktop.main.js:58 WARN Via ‘product.json#extensionEnabledApiProposals’ extension ‘vscjava.vscode-java-pack’ wants API proposal ‘lmTools’ but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check ‘vscode.d.ts’) or was abandoned.  
warn @ workbench.desktop.main.js:58  
workbench.desktop.main.js:58 WARN Via ‘product.json#extensionEnabledApiProposals’ extension ‘apidev.azure-api-center’ wants API proposal ‘chatParticipant’ but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check ‘vscode.d.ts’) or was abandoned.  
warn @ workbench.desktop.main.js:58  
workbench.desktop.main.js:58 WARN Via ‘product.json#extensionEnabledApiProposals’ extension ‘apidev.azure-api-center’ wants API proposal ‘languageModels’ but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check ‘vscode.d.ts’) or was abandoned.  
warn @ workbench.desktop.main.js:58  
workbench.desktop.main.js:58 ERR Extension ‘openai.chatgpt’ wants API proposal ‘chatSessionsProvider’ but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check ‘vscode.d.ts’) or was abandoned.  
error @ workbench.desktop.main.js:58  
workbench.desktop.main.js:58 ERR Extension ‘openai.chatgpt’ wants API proposal ‘languageModelProxy’ but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check ‘vscode.d.ts’) or was abandoned.  
error @ workbench.desktop.main.js:58  
workbench.desktop.main.js:58 WARN [ms-python.vscode-pylance]: Cannot register ‘python.analysis.autoImportCompletions’. This property is already registered.  
warn @ workbench.desktop.main.js:58  
workbench.desktop.main.js:58 WARN [ms-python.vscode-pylance]: Cannot register ‘python.analysis.autoSearchPaths’. This property is already registered.  
warn @ workbench.desktop.main.js:58  
workbench.desktop.main.js:58 WARN [ms-python.vscode-pylance]: Cannot register ‘python.analysis.stubPath’. This property is already registered.  
warn @ workbench.desktop.main.js:58  
workbench.desktop.main.js:58 WARN [ms-python.vscode-pylance]: Cannot register ‘python.analysis.diagnosticMode’. This property is already registered.  
warn @ workbench.desktop.main.js:58  
workbench.desktop.main.js:58 WARN [ms-python.vscode-pylance]: Cannot register ‘python.analysis.extraPaths’. This property is already registered.  
warn @ workbench.desktop.main.js:58  
workbench.desktop.main.js:58 WARN [ms-python.vscode-pylance]: Cannot register ‘python.analysis.useLibraryCodeForTypes’. This property is already registered.  
warn @ workbench.desktop.main.js:58  
workbench.desktop.main.js:58 WARN [ms-python.vscode-pylance]: Cannot register ‘python.analysis.typeCheckingMode’. This property is already registered.  
warn @ workbench.desktop.main.js:58  
workbench.desktop.main.js:58 WARN [ms-python.vscode-pylance]: Cannot register ‘python.analysis.diagnosticSeverityOverrides’. This property is already registered.  
warn @ workbench.desktop.main.js:58  
workbench.desktop.main.js:58 WARN [ms-python.vscode-pylance]: Cannot register ‘python.analysis.logLevel’. This property is already registered.  
warn @ workbench.desktop.main.js:58  
workbench.desktop.main.js:58 WARN [ms-python.vscode-pylance]: Cannot register ‘python.analysis.typeshedPaths’. This property is already registered.  
warn @ workbench.desktop.main.js:58  
workbench.desktop.main.js:58 ERR [Extension Host] (node:11844) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.  
(Use `Cursor Helper (Plugin) --trace-deprecation ...` to show where the warning was created)  
error @ workbench.desktop.main.js:58  
workbench.desktop.main.js:11398 [Extension Host] (node:11844) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.  
(Use `Cursor Helper (Plugin) --trace-deprecation ...` to show where the warning was created)  
qMf @ workbench.desktop.main.js:11398  
workbench.desktop.main.js:34040 [transport] Connect error in unary AI connect ConnectError: [unauthenticated] You must be a team member to access this resource  
at t (workbench.desktop.main.js:11431:34429)  
at async Object.getTeamCommands (workbench.desktop.main.js:637:31933)  
at async RLc.loadTeamCommands (workbench.desktop.main.js:36045:4584) Object  
error @ workbench.desktop.main.js:34040  
workbench.desktop.main.js:36045 Failed to load team commands: ConnectError: [unauthenticated] You must be a team member to access this resource  
at t (workbench.desktop.main.js:11431:34429)  
at async Object.getTeamCommands (workbench.desktop.main.js:637:31933)  
at async RLc.loadTeamCommands (workbench.desktop.main.js:36045:4584)  
loadTeamCommands @ workbench.desktop.main.js:36045  
workbench.desktop.main.js:58 ERR [Extension Host] [otel.error] {“stack”:“OTLPExporterError: Bad Request\n\tat IncomingMessage. (/Applications/Cursor.app/Contents/Resources/app/node\_modules/@opentelemetry/otlp-exporter-base/build/src/transport/http-transport-utils.js:52:31)\n\tat IncomingMessage.emit (node:events:531:35)\n\tat endReadableNT (node:internal/streams/readable:1698:12)\n\tat process.processTicksAndRejections (node:internal/process/task\_queues:90:21)”,“message”:“Bad Request”,“code”:“400”,“name”:“OTLPExporterError”,“data”:“{“error”:“Trace spans collection is not enabled for this user”}”}  
error @ workbench.desktop.main.js:58  
error @ workbench.desktop.main.js:58  
error @ workbench.desktop.main.js:35991  
WMf @ workbench.desktop.main.js:11398  
$logExtensionHostMessage @ workbench.desktop.main.js:11398  
\_doInvokeHandler @ workbench.desktop.main.js:33981  
\_invokeHandler @ workbench.desktop.main.js:33981  
\_receiveRequest @ workbench.desktop.main.js:33981  
\_receiveOneMessage @ workbench.desktop.main.js:33981  
(anonymous) @ workbench.desktop.main.js:33981  
\_deliver @ workbench.desktop.main.js:49  
fire @ workbench.desktop.main.js:49  
fire @ workbench.desktop.main.js:11415  
(anonymous) @ workbench.desktop.main.js:36042  
workbench.desktop.main.js:11398 [Extension Host] [otel.error] {“stack”:“OTLPExporterError: Bad Request\n\tat IncomingMessage. (/Applications/Cursor.app/Contents/Resources/app/node\_modules/@opentelemetry/otlp-exporter-base/build/src/transport/http-transport-utils.js:52:31)\n\tat IncomingMessage.emit (node:events:531:35)\n\tat endReadableNT (node:internal/streams/readable:1698:12)\n\tat process.processTicksAndRejections (node:internal/process/task\_queues:90:21)”,“message”:“Bad Request”,“code”:“400”,“name”:“OTLPExporterError”,“data”:“{“error”:“Trace spans collection is not enabled for this user”}”}  
qMf @ workbench.desktop.main.js:11398  
$logExtensionHostMessage @ workbench.desktop.main.js:11398  
\_doInvokeHandler @ workbench.desktop.main.js:33981  
\_invokeHandler @ workbench.desktop.main.js:33981  
\_receiveRequest @ workbench.desktop.main.js:33981  
\_receiveOneMessage @ workbench.desktop.main.js:33981  
(anonymous) @ workbench.desktop.main.js:33981  
\_deliver @ workbench.desktop.main.js:49  
fire @ workbench.desktop.main.js:49  
fire @ workbench.desktop.main.js:11415  
(anonymous) @ workbench.desktop.main.js:36042  
//  
undefined  
workbench.desktop.main.js:34040 [composer] No first token received within 2s {arch: ‘arm64’, platform: ‘darwin’, channel: ‘stable’, client\_version: ‘2.4.23’, requestId: ‘adcf7bc9-6466-4acb-a545-2eb8d134b5e7’, …}  
\_log @ workbench.desktop.main.js:34040  
warn @ workbench.desktop.main.js:34040  
(anonymous) @ workbench.desktop.main.js:9169  
setTimeout  
e.setTimeout @ workbench.desktop.main.js:33432  
(anonymous) @ workbench.desktop.main.js:9169  
submitChatMaybeAbortCurrent @ workbench.desktop.main.js:9169  
await in submitChatMaybeAbortCurrent  
$i @ workbench.desktop.main.js:32991  
await in $i  
(anonymous) @ workbench.desktop.main.js:32965  
dt @ workbench.desktop.main.js:32965  
onClick @ workbench.desktop.main.js:32965  
(anonymous) @ workbench.desktop.main.js:9197  
workbench.desktop.main.js:34040 [composer] No first token received within 4s {arch: ‘arm64’, platform: ‘darwin’, channel: ‘stable’, client\_version: ‘2.4.23’, requestId: ‘adcf7bc9-6466-4acb-a545-2eb8d134b5e7’, …}  
\_log @ workbench.desktop.main.js:34040  
warn @ workbench.desktop.main.js:34040  
(anonymous) @ workbench.desktop.main.js:9169  
setTimeout  
e.setTimeout @ workbench.desktop.main.js:33432  
(anonymous) @ workbench.desktop.main.js:9169  
submitChatMaybeAbortCurrent @ workbench.desktop.main.js:9169  
await in submitChatMaybeAbortCurrent  
$i @ workbench.desktop.main.js:32991  
await in $i  
(anonymous) @ workbench.desktop.main.js:32965  
dt @ workbench.desktop.main.js:32965  
onClick @ workbench.desktop.main.js:32965  
(anonymous) @ workbench.desktop.main.js:9197  
workbench.desktop.main.js:34040 [composer] No first token received within 6s {arch: ‘arm64’, platform: ‘darwin’, channel: ‘stable’, client\_version: ‘2.4.23’, requestId: ‘adcf7bc9-6466-4acb-a545-2eb8d134b5e7’, …}  
\_log @ workbench.desktop.main.js:34040  
warn @ workbench.desktop.main.js:34040  
(anonymous) @ workbench.desktop.main.js:9169  
setTimeout  
e.setTimeout @ workbench.desktop.main.js:33432  
(anonymous) @ workbench.desktop.main.js:9169  
submitChatMaybeAbortCurrent @ workbench.desktop.main.js:9169  
await in submitChatMaybeAbortCurrent  
$i @ workbench.desktop.main.js:32991  
await in $i  
(anonymous) @ workbench.desktop.main.js:32965  
dt @ workbench.desktop.main.js:32965  
onClick @ workbench.desktop.main.js:32965  
(anonymous) @ workbench.desktop.main.js:9197  
workbench.desktop.main.js:34040 [composer] No first token received within 8s {arch: ‘arm64’, platform: ‘darwin’, channel: ‘stable’, client\_version: ‘2.4.23’, requestId: ‘adcf7bc9-6466-4acb-a545-2eb8d134b5e7’, …}  
\_log @ workbench.desktop.main.js:34040  
warn @ workbench.desktop.main.js:34040  
(anonymous) @ workbench.desktop.main.js:9169  
setTimeout  
e.setTimeout @ workbench.desktop.main.js:33432  
(anonymous) @ workbench.desktop.main.js:9169  
submitChatMaybeAbortCurrent @ workbench.desktop.main.js:9169  
await in submitChatMaybeAbortCurrent  
$i @ workbench.desktop.main.js:32991  
await in $i  
(anonymous) @ workbench.desktop.main.js:32965  
dt @ workbench.desktop.main.js:32965  
onClick @ workbench.desktop.main.js:32965  
(anonymous) @ workbench.desktop.main.js:9197

---

<div class="post-metadata">

**Author:** ![cgcb](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/cgcb/32/43367_2.png) [@cgcb](https://forum.cursor.com/u/cgcb)\
**Post date:** [February 2, 2026, 4:50pm UTC](https://forum.cursor.com/t/browser-mcp-tools-not-available/148335/19 "2026-02-02T16:50:27Z")

</div>

Update: I deleted my .cursor entries for workspace and the directory. Yes, that caused me to lose all my chats which is BS and sucks, but c’est la vie. I was then able to add the directory in cursor and save a new workspace file, which does create the necessary /tools directory. But if I enable autosave on the workspace, that tools directory gets deleted the first time autosave happens. So Cursor devs, there’s your smoking gun.

---

<div class="post-metadata">

**Author:** ![dalmia](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/dalmia/32/98054_2.png) [@dalmia](https://forum.cursor.com/u/dalmia)\
**Post date:** [February 12, 2026, 8:03am UTC](https://forum.cursor.com/t/browser-mcp-tools-not-available/148335/21 "2026-02-12T08:03:42Z")

</div>

Thanks @Dario_Tschannen, this worked for me!

---

<div class="post-metadata">

**Author:** ![timi-ty](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/timi-ty/32/98067_2.png) [@timi-ty](https://forum.cursor.com/u/timi-ty)\
**Post date:** [February 12, 2026, 10:06am UTC](https://forum.cursor.com/t/browser-mcp-tools-not-available/148335/22 "2026-02-12T10:06:48Z")

</div>

Adding some root cause analysis from log files that may help the Cursor team fix this. Still hitting this on **Cursor 2.4.31** on Windows 11 (multi-root `.code-workspace`).

## Root Cause (from extension logs)

The `Cursor IDE Browser Automation` extension calls `injectBrowserUIScript` **once** during activation. If the Simple Browser panel is not already open at that moment, it fails and **never retries** :

**Cursor IDE Browser Automation.log:**

```auto
[INFO] Cursor Browser Automation extension activated
[INFO] Browser Automation MCP Provider initialized with direct execution
[INFO] injectBrowserUIScript called
[ERROR] Failed to inject browser UI script:: No browser view available
Error: No browser view available
    at jyt (workbench.desktop.main.js:34255:73836)

```

The MCP server then permanently reports 0 tools for the entire session:

**Mcp FileSystem Writer.log:**

```auto
MCP server "cursor-ide-browser" (cursor-ide-browser): 0 tool(s), 0 resource(s), 0 prompt(s) {"status":"connected"}

```

The `browser-use` subagent then fails with:

```auto
Error: MCP file system options are required for CallMcpTool

```

## Why the “Reload Window” workaround doesn’t work

There’s a **race condition** : after Reload Window, the extension activates _before_ the Simple Browser panel is restored, so `injectBrowserUIScript` fails again with the same “No browser view available” error.

## Suggested Fix

The extension should use an **event-driven retry** — listen for when a browser view becomes available (e.g., `onDidChangeVisibleWebviewPanels` or similar) rather than attempting injection only once at activation time.

## Environment

- Cursor: 2.4.31
- OS: Windows 11 (10.0.26200)
- Workspace type: Multi-root (.code-workspace file)

---

<div class="post-metadata">

**Author:** ![system](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/system/32/99069_2.png) [@system](https://forum.cursor.com/u/system)\
**Post date:** [March 6, 2026, 10:07am UTC](https://forum.cursor.com/t/browser-mcp-tools-not-available/148335/24 "2026-03-06T10:07:33Z")

</div>

Closed on March 6, 2026, 10:07am UTC

This topic was automatically closed 22 days after the last reply. New replies are no longer allowed.
