feat(tunnel): implement tunnel provider switching
linuztx committed
Jun 8, 2025 at 19:20 UTC
2f9266fa5b2bd1dcf85dc26d08fc594d55429ffb
1 file changed
+11
-14
python/helpers/tunnel_manager.py
+11
-14
@@ -18,30 +18,26 @@ class TunnelManager:
18
self.tunnel = None
19
self.tunnel_url = None
20
self.is_running = False
21
+ self.provider = None
22
22
- def start_tunnel(self, port=80):
23
+ def start_tunnel(self, port=80, provider="serveo"):
24
"""Start a new tunnel or return the existing one's URL"""
25
if self.is_running and self.tunnel_url:
26
return self.tunnel_url
27
27
-
28
- # switched to serveo to support SSE MCP server
29
-
30
- # Create and start a new tunnel
31
- # config = FlareConfig(
32
- # port=port,
33
- # verbose=True,
34
- # timeout=60, # Increase timeout from default 30 to 60 seconds
35
- # )
36
-
37
- config = ServeoConfig(port=port) # type: ignore
28
+ self.provider = provider
29
30
try:
31
# Start tunnel in a separate thread to avoid blocking
32
def run_tunnel():
33
try:
43
- # self.tunnel = FlareTunnel(config)
44
- self.tunnel = ServeoTunnel(config)
34
+ if self.provider == "cloudflared":
35
+ config = FlareConfig(port=port, verbose=True)
36
+ self.tunnel = FlareTunnel(config)
37
+ else: # Default to serveo
38
+ config = ServeoConfig(port=port)
39
+ self.tunnel = ServeoTunnel(config)
40
+
41
self.tunnel.start()
42
self.tunnel_url = self.tunnel.tunnel_url
43
self.is_running = True
@@ -72,6 +68,7 @@ class TunnelManager:
68
self.tunnel.stop()
69
self.is_running = False
70
self.tunnel_url = None
71
+ self.provider = None
72
return True
73
except Exception:
74
return False