Skip to main content
Use a tunnel when ChatGPT, Claude, or another remote MCP client needs to reach a server running on your machine. The tunnel gives you a public HTTPS URL that forwards to your local MCP endpoint. With mcp-use, start the server with --tunnel, then copy the printed Tunnel URL. The URL you give to clients must include /mcp.
Keep the terminal process running while you test. The public URL stops working when the process exits. With mcp-use dev --tunnel or mcp-use start --tunnel, the framework connects directly to the relay over WebSocket. It does not install or execute a native tunnel binary or a separate tunnel package. If the relay connection drops while the command is still running, the tunnel reconnects automatically and reuses the same identifier when possible. The relay forwards both HTTP requests and WebSocket upgrades. In development, MCP App views loaded from the public tunnel keep Vite HMR: editing a local view updates the remote Inspector or client without restarting the tunnel.

Start a tunnel with mcp-use

Use mcp-use dev --tunnel while you are developing:
Use mcp-use start --tunnel when you want to test the built server:
After the production server binds, successful output includes the local and public MCP endpoints:
Copy the value after mcp-use public MCP URL: into your remote MCP client. Do not copy only the tunnel origin; the client URL must end with /mcp.

Verify the tunnel

Verify the public URL with the mcp-use client CLI:
The connect command performs the MCP handshake and saves the tunnel under the name tunnel-test. The tools list command should print the tools exposed by your local server. If the server uses OAuth or bearer authentication, complete the client authentication flow or pass the required auth option before testing tools.

Stop the tunnel

Press Ctrl+C in the terminal running the tunnel. When you started the tunnel with mcp-use dev --tunnel or mcp-use start --tunnel, stopping the command stops both the local server process and the tunnel.

Lifetime and limits

Tunnels are for local testing before deployment:
  • The tunnel is active only while the command is running.
  • With mcp-use dev --tunnel or mcp-use start --tunnel, a dropped tunnel registration is re-established automatically while the command runs.
  • Reservations that never connect expire after 5 minutes.
  • Connected tunnels expire after 24 hours.
  • Inactive tunnels are cleaned up after 1 hour without activity.
  • Each source IP can create up to 10 tunnels per hour.
  • Each source IP can have up to 5 active tunnels at a time.
For a stable public URL, deploy the server instead of relying on a local tunnel.

Next steps