[BUG] Claude Desktop: Web session mode lacks MCP server access despite configuration
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?
Claude Desktop app can operate in at least two distinct modes with different levels of local resource access:
Web-based containerized sessions - Desktop app acts as viewer/shell for web chat sessions running in Linux containers, WITHOUT access to locally configured MCP servers
Native local sessions - Desktop app runs Claude locally with full access to configured MCP servers
This architectural distinction is not documented and creates user confusion when MCP servers are configured but not accessible.
Impact: Users configure MCP servers expecting them to be available throughout the Desktop app, but sessions opened via web links (e.g., claude.ai/code/session_*) run in containers without MCP access.
What Should Happen?
When using Claude Desktop (native Mac/Windows app), users expect:
- Consistent access to configured local MCP servers across all conversations
- MCP servers to be available regardless of how the session was initiated
- Visual indication if a session has limited capabilities
Error Messages/Logs
the error was logical, not the stuff of error messages.
the issue can be induced by simply copying a session url from Claude Code web app Research Preview, e.g. this
https://claude.ai/code/session_011CUrmcWYFVbNy9V45u41ZK?open_in_browser=1
into a Claude Desktop chat. Desktop Chat then get's 'confused' as to 'where' it is
Observed:
- Claude instance reports NO access to configured MCP servers
- Only built-in tools available (web_search, bash_tool, file operations)
- Claude is running in a Linux container (Ubuntu)
- Available mounts: /mnt/skills, /mnt/user-data
- Missing: All configured local MCP servers
- No visual indication that the session is running in limited "web mode" vs full "native mode"
- Container verified via:
$ uname -a
Linux runsc 4.4.0 #1 SMP Sun Jan 10 15:06:54 PST 2016 x86_64
$ cat /container_info.json
{
"container_name": "container_011CUsHwcTDhN9LYnzx3Z3ba--wiggle--hollow-amused-oily-blank",
"creation_time": 1762462094.7752397
}
Steps to Reproduce
- Configure MCP servers in Claude Desktop via Settings > Developer > Edit Config or install Desktop Extensions
- Verify MCP servers appear in configuration (e.g., Neo4j, n8n, Google Drive, GitHub, etc.)
- Click on a claude.ai/code/session_* link or similar web session URL
- Claude Desktop opens and displays the session in native Mac/Windows UI
- Ask Claude: "What MCP servers do you have access to?"
- Query the environment with: uname -a and cat /container_info.json
Claude Model
Sonnet (default)
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.0.30 (Claude Code)
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
MCP with claude desktop app works
I am regularly using claude-code from
- the terminal (MacOS and Ubuntu for the Nvdia DGX Spark)
- the VS Code Claude Code extension
- the Claude Code web based Research preview (claude.ai/Claude Code)
I am about to light off the cloudflare tunnels to get to the Docker Desktop hosted MCP servers local to the Mac. Was weird when I dropped the url from the new web-based Claude Code Research Preview, to attempt to have Desktop Claude pick up a bit of context, and inadvertently found myself chatting from desktop claude to a container that had no MCP access. hence this ask.
This issue has 8 comments on GitHub. Read the full discussion on GitHub ↗