mcp-use, start the server with --tunnel, then copy the printed Tunnel URL. The URL you give to clients must include /mcp.
Start a tunnel with mcp-use
Usemcp-use dev --tunnel while you are developing:
mcp-use start --tunnel when you want to test the built server:
Tunnel: into your remote MCP client. Do not copy only https://happy-blue.local.mcp-use.run; the client URL must end with /mcp.
Tunnel any server on /mcp
Use the standalone tunnel package when your local MCP server is not started bymcp-use. The server must already be running locally and serving MCP over HTTP at /mcp.
For a server on port 3000, run:
/mcp, into ChatGPT, Claude, or your other remote MCP client.
Verify the tunnel
Verify the public URL with themcp-use client CLI:
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
PressCtrl+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. When you started the tunnel with npx @mcp-use/tunnel 3000, stopping that command closes only the tunnel; your local server keeps running until you stop it separately.
Lifetime and limits
Tunnels are for local testing before deployment:- The tunnel is active only while the command is running.
- Tunnels expire after 24 hours.
- Inactive tunnels are cleaned up after 1 hour without activity.
- Each IP address can create up to 10 tunnels per hour.
- Each IP address can have up to 5 active tunnels at a time.
Next steps
- Use the TypeScript quickstart to create a local MCP server.
- Use Build your first MCP App to test widgets in a remote client.
- Use Deploy to Manufact Cloud when you are ready for a hosted MCP endpoint.