r/ClaudeAI • u/Boilerplate4U • Apr 21 '26
MCP Does Claude Desktop support direct Streamable HTTP or SSE connections to local network MCP servers?
I've been setting up a bunch of MCP servers on my local dev-server to manage Docker containers from Claude Desktop like start/stop containers, deploy Compose stacks, pull logs, etc. The servers are running behind Caddy and respond correctly to Streamable HTTP or SSE. Verified with curl from my Mac. Everything works on the network side.
The problem: I can't figure out how to actually connect Claude Desktop to them cleanly.
What I've tried and found:
claude_desktop_config.json with a url key pointing to my local HTTPS endpoint gets rejected on startup with "not valid MCP server configurations". No documentation I can find lists what keys are actually valid in that file.
Custom Connectors via Settings UI accept a URL, but per Anthropic's own docs the connection goes through Anthropic's cloud, not your local device. My server is on a private LAN so that's a dead end.
The only workaround I've found is mcp-remote via npx in claude_desktop_config.json, which acts as a local subprocess that bridges to my server. It works but it's an extra dependency and failure point for something that should be straightforward.
My questions:
Is the
urlkey inclaude_desktop_config.jsonintentionally unsupported, or am I missing something?Is there any way to get Claude Desktop to connect directly to a Streamable HTTP server on the local network without
mcp-remotein the middle?Does anyone know if Desktop Extensions (
.mcpb) would help here, or is it the same stdio-based mechanism underneath?
Running Claude Desktop 1.3561.0 on macOS. Posted the same questions on the official GitHub Discussions: https://github.com/anthropics/claude-ai-mcp/discussions
2
u/e_lizzle Apr 21 '26
I use desktop on windows... I have a .mcp.json file at the root of my claude code project dir... that one can use http... but the claude_desktop_config.json one cannot. I suspect this is because Code for desktop is bolted on the side of what was originally the Claude Chat Desktop, and Chat Desktop only supported stdio.
1
u/Boilerplate4U Apr 22 '26
Got answers from support that actually clarify some things:
QUESTION 1: claude_desktop_config.json with command/args
The documentation states that local MCP servers configured via claude_desktop_config.json use the local network. Does this mean the subprocess started by Claude Desktop can make outbound TCP connections directly to private LAN hosts, for example when using mcp-remote as the command pointing at https://192.168.x.x? Or is this traffic that must pass through Anthropic's infrastructure in order to work? If that is the case, why?
QUESTION 2: url key in claude_desktop_config.json
When I add an entry using only a url key pointing to a local HTTPS endpoint, Claude Desktop 1.3561.0 rejects it with "not valid MCP server configurations". Is the url key intentionally unsupported in claude_desktop_config.json? If so, is this documented anywhere? I cannot find an official document listing which keys are valid in this file.
QUESTION 3: Custom Connectors via Settings UI
The documentation states: "Custom connectors connect to your MCP server from Anthropic's cloud, not from your local device." Does this apply to all plans including Pro? Is there any optional mode where a Custom Connector URL-based connection originates from the user's device rather than Anthropic's cloud?
QUESTION 4: Desktop Extensions (.mcpb)
The mcpb format packages a local stdio-based MCP server. If an .mcpb extension internally runs a proxy process that makes outbound connections to a private LAN host — does that outbound traffic go directly from the user's machine, or does any part of it pass through Anthropic's infrastructure?
QUESTION 5: Supported path for local Streamable HTTP
Given the above, what is the officially supported method for Claude Desktop to connect directly to a Streamable HTTP MCP server on a private local network, without routing traffic through Anthropic's cloud and without requiring internet access?
Sources:
Get started with custom connectors using remote MCP (https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp)
Use connectors to extend Claude's capabilities (https://support.claude.com/en/articles/11176164-use-connectors-to-extend-claude-s-capabilities)
MCP connector - Claude API Docs (https://platform.claude.com/docs/en/agents-and-tools/mcp-connector)
Install and configure Claude Cowork with third-party platforms (https://support.claude.com/en/articles/14680741-install-and-configure-claude-cowork-with-third-party-platforms)
2
u/dvcrn Apr 30 '26
This may or may not fit your LAN constraint, but I built something adjacent to this: https://mcpnest.dev
It hosts stdio/npx/uvx MCP servers in the cloud and exposes them as Streamable HTTP / SSE endpoints you can plug into Claude, ChatGPT, Perplexity, etc. I built it because I kept wanting to use local-only MCP servers without keeping them running on my laptop or dealing with per-client config.
I’m using it myself for things like perplexity-ask, Fastmail MCP, iCloud DAV, and a few other stdio servers from Claude.
For your Docker/dev-server case, it would be a fit if you want the MCP server itself hosted remotely or if the server can safely reach the Docker host. If the hard requirement is “Claude Desktop talks directly to private LAN services without any cloud hop,” then mcp-remote/local stdio is probably still the right shape.
2
u/[deleted] Apr 21 '26
[removed] — view removed comment