Agent Skills: ngrok Tunnel Skill

Secure tunnel for exposing local MCP servers to Claude, remote agents, and external clients. Supports custom domains, IP whitelisting, and traffic policies.

UncategorizedID: plurigrid/asi/ngrok-tunnel

Install this agent skill to your local

pnpm dlx add-skill https://github.com/plurigrid/asi/tree/HEAD/skills/ngrok-tunnel

Skill Files

Browse the full folder contents for ngrok-tunnel.

Download Skill

Loading file tree…

skills/ngrok-tunnel/SKILL.md

Skill Metadata

Name
ngrok-tunnel
Description
Secure tunnel for exposing local MCP servers to Claude, remote agents, and external clients. Supports custom domains, IP whitelisting, and traffic policies.

ngrok Tunnel Skill

Trit: +1 (PLUS - enables external connectivity)
Foundation: ngrok + WireGuard-style tunneling + Traffic Policies

Core Concept

ngrok creates secure tunnels from localhost to public endpoints:

  • HTTPS with automatic TLS certificates
  • Custom domains (paid plans)
  • IP whitelisting for Claude/Anthropic
  • Traffic policies for access control
  • Real-time request inspection

Quick Start

# Install (macOS)
brew install ngrok

# Authenticate
ngrok config add-authtoken YOUR_TOKEN

# Expose local MCP server
ngrok http 3000

# With custom domain (paid)
ngrok http --url=your-domain.ngrok.io 3000

MCP Server Exposure

# Start your MCP server
bun run mcp-server --port 8080

# Expose via ngrok
ngrok http 8080

# Copy the HTTPS URL (e.g., https://abc123.ngrok.io)
# Register in Claude Settings → Integrations → Add more

Traffic Policy: Claude-Only Access

Create policy.yml:

on_http_request:
  - actions:
      - type: restrict-ips
        config:
          enforce: true
          allow:
            - 160.79.104.0/23  # Anthropic IP range

Apply:

ngrok http 8080 --traffic-policy-file policy.yml

Custom Domain Setup

# Reserve domain in ngrok dashboard first
ngrok http --url=mcp.yourdomain.com 8080

# With traffic policy
ngrok http --url=mcp.yourdomain.com --traffic-policy-file policy.yml 8080

vers-agent Integration

# Expose vers-agent server for remote access
vers-agent --server --port 8765 &
ngrok http 8765

# Remote clients connect via ngrok URL
vers-agent --remote https://abc123.ngrok.io

GF(3) Integration

def trit_from_tunnel(tunnel):
    """Map tunnel status to GF(3) trit."""
    if tunnel.status == "online" and tunnel.has_custom_domain:
        return 1   # PLUS: full connectivity
    elif tunnel.status == "online":
        return 0   # ERGODIC: basic tunnel
    else:
        return -1  # MINUS: offline/error

Canonical Triads

skill-validation-gf3 (-1) ⊗ tailscale-mesh (0) ⊗ ngrok-tunnel (+1) = 0 ✓
bisimulation-game (-1) ⊗ localsend-mcp (0) ⊗ ngrok-tunnel (+1) = 0 ✓

Composio MCP Integration

For AI agent automation, use Composio's ngrok MCP:

  • https://mcp.composio.dev/ngrok
  • 9+ tools for tunnel management
  • Works with Claude, Cursor, Windsurf

ToolHive Integration

# Expose ToolHive-managed MCP servers
thv proxy tunnel --server my-mcp-server

See Also

  • tailscale-mesh - WireGuard mesh VPN
  • tailscale-file-transfer - P2P file transfer
  • localsend-mcp - Local network P2P
  • mcp-builder - MCP server creation guide

References