Stable Remote URL
Use this tutorial when a remote MCP client needs the same HTTPS URL every day while Coding Tools MCP continues to run on your local machine. A stable domain solves one problem: the client can keep the same server URL. It does not make a public multi-user relay by itself, and it does not discover every developer’s laptop automatically.What one URL means
There are two different designs:- Personal stable URL: one developer runs Coding Tools MCP locally and maps a stable hostname such as
https://mcp.example.com/mcpto that machine through ngrok, Cloudflare Tunnel, devtunnel, or another reverse tunnel. - Hosted relay for many users: a separate service authenticates users, registers devices, keeps outbound sessions from local agents, and routes each request to the right connected workspace.
Recommended hostname layout
Use a subdomain for MCP traffic instead of the apex domain:Choose the auth mode
Use OAuth when the MCP client supports OAuth 2.1 Authorization Code + PKCE discovery:Authorization header:
Authorization: Bearer <token> header on /mcp.
ngrok reserved domain
Claim a reserved ngrok domain, then run Coding Tools MCP on loopback and point ngrok at the local port. Terminal 1:Cloudflare named tunnel
Create a named tunnel and route a DNS hostname to it. Then map that hostname to the local Coding Tools MCP port. One-time setup:Quick tunnel for demos
For temporary testing, the checked-in script can install the package, start the local server, and expose a tunnel:Verify the URL
ReplaceBASE_URL with the tunnel origin without /mcp:
Security notes
- Keep Coding Tools MCP bound to
127.0.0.1; expose only the tunnel URL. - Prefer
--tool-profile read-onlyfor remote sessions until you explicitly need write tools. - Use OAuth or bearer auth for every non-loopback deployment.
- Treat
fullplusexec_commandas remote code execution inside the configured workspace boundary. - Stop the tunnel when testing is done, and rotate tokens or OAuth secrets if they were shared.