Stop Rewriting MCP Ports: Bridging Local IDEs with MCPxHub
How MCPxHub keeps Claude Desktop and other MCP clients connected to local VS Code-family and JetBrains IDE servers without constant port babysitting.

Local MCP setups usually fail in boring ways.
The IDE is running. The plugin is installed. Claude Desktop still cannot connect. You open the config file, squint at a port number, restart everything, and hope the next launch picks the same port.
That is not a workflow.
That is port babysitting.
MCPxHub exists for this one irritating layer: keep an MCP client connected to whatever local IDE MCP server is actually alive.
The Port Problem
IDE-side MCP servers often bind to local ports.
VS Code-family tools might listen somewhere in the 9960-9990 range. JetBrains integrations often live around 63342-63352. That is fine until the port moves, the IDE restarts, or another process grabs the slot first.
Then your MCP client has stale config.
The bad fix is to hardcode ports and keep editing JSON. It works once. It does not scale across machines, IDEs, or the kind of workday where you open three projects and forget which one started first.
MCPxHub turns that into discovery.
A Bridge, Not Another Tool Box
MCPxHub is not trying to be the tool provider.
It does not replace your VS Code extension or JetBrains MCP plugin. It sits between the client and the IDE-side server, scans the expected local ranges, then proxies JSON-RPC calls to the live endpoint.
That distinction matters.
If your IDE plugin exposes file edits, terminal commands, Git status, or debugger actions, MCPxHub keeps the client pointed at that plugin. The tool boundary stays inside the editor integration.
The bridge just makes the connection less brittle.
Claude Desktop
|
| MCP over stdio
v
MCPxHub
|
| local JSON-RPC proxy
v
IDE-side MCP server
The bridge is intentionally narrow: find the live IDE endpoint and keep the MCP client connected to it.
The Config Can Stay Boring
The common setup is intentionally short:
{
"mcpServers": {
"MCPxHub": {
"command": "npx",
"args": ["-y", "@bugstan/mcpxhub"],
"env": {
"IDE_TYPE": "vscode"
}
}
}
}
Set IDE_TYPE to vscode or jetbrains.
If you already know the endpoint, you can pass MCP_SERVER and MCP_SERVER_PORT. If not, let MCPxHub scan. That is the point.
When the connection drops, the bridge polls more aggressively. When it is stable, it backs off.
Debugging The First Connection
The first failure usually comes from one of three places:
- The IDE MCP plugin is not installed.
- The IDE plugin is installed but not listening.
IDE_TYPEpoints at the wrong family.
Do not start by rewriting the whole config.
Check the IDE status bar first. Make sure the server is actually running. Then enable logs:
LOG_ENABLED=true
This failure mode is inspectable. You can see whether the bridge scanned the right range and whether it found a candidate endpoint.
Why This Matters For Multi-IDE Work
Many developers do not live in one editor anymore.
You might have Cursor open for app code, VS Code attached to a remote folder, and a JetBrains IDE for a backend service. The MCP client should not care which local plugin won the port lottery.
MCPxHub gives you a stable client entry point while the IDE layer changes underneath.
That is useful for Claude Desktop. It is also useful for any MCP client that wants one local command instead of per-IDE hand wiring.
Use It With Workspace Boundaries
A bridge makes connection easier. It does not remove responsibility.
If the IDE-side server exposes terminal commands or file edits, workspace trust still matters. Review what your editor plugin allows. Keep dangerous actions behind explicit approval. Do not point an agent at a random folder just because the connection works.
MCPxHub solves discovery.
It does not solve judgment.
The Practical Shape
Install the IDE plugin first. For VS Code-family editors, GG MCP for VS Code is one option. For JetBrains, use the appropriate IDE-side MCP server plugin.
Then start the bridge:
npx -y @bugstan/mcpxhub
If you are packaging it into Claude Desktop, keep the config stable and let the bridge handle the moving endpoint.
The result is fewer JSON edits, fewer restarts, and less time spent chasing local ports.