mcpField
S
sc-vpn

sc-vpn

github.com/starchild-ai-agentCloud & DevOps30141 installsUpdated 6d ago
Repository

About sc-vpn

sc-vpn is an internal VPN gateway skill for Starchild users who need a country-specific exit for an otherwise blocked request. It supports per-request proxying through 18 fixed countries and provides a REST API for tunnel and usage status.

Key features

  1. 01Per-request HTTP and HTTPS proxying
  2. 02Exit nodes in 18 fixed countries
  3. 03Daily latency-based server selection
  4. 04REST endpoints for tunnel, status, and usage
  5. 05Source-IP-based usage identification

Use cases

  1. 01Routing a geo-blocked API request through a chosen country
  2. 02Checking tunnel status and latency
  3. 03Reviewing traffic statistics by source IP

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/starchild-ai-agent/official-skills --skill sc-vpn

After installing, type/sc-vpnin Claude Code to confirm it loaded.

Details

From the project README

SC-VPN Gateway

Internal VPN service for the Starchild platform. Provides exit nodes in 18 fixed countries — accessible only from within the Starchild internal network. No credentials or setup needed.

⚠️ When to Use

SC-VPN is a last resort, not a default. Most agent HTTP traffic already goes through sc-proxy (the platform's transparent billing proxy for paid APIs). Setting a global VPN proxy will break sc-proxy routing.

Use SC-VPN only when:

  • A specific request is geo-blocked or returns a region error
  • You need to appear from a specific country for a particular API call
  • A target website/API refuses connections from the default exit

Always use per-request proxy (pass proxies= to requests.get() or -x to curl). Never set global HTTP_PROXY / HTTPS_PROXY environment variables

Available Countries

CountryCodeExample Cities
🇦🇺 AustraliaauAdelaide, Sydney, Melbourne
🇨🇭 SwitzerlandchZürich
🇩🇪 GermanydeBerlin, Frankfurt
🇯🇵 JapanjpTokyo, Osaka
🇲🇾 MalaysiamyKuala Lumpur
🇲🇽 MexicomxQuerétaro
🇹🇭 ThailandthBangkok
🇿🇦 South AfricazaJohannesburg
🇧🇷 BrazilbrSão Paulo, Fortaleza
🇦🇷 ArgentinaarBuenos Aires
🇸🇬 SingaporesgSingapore
🇭🇰 Hong KonghkHong Kong
🇬🇧 United KingdomgbLondon, Manchester
🇳🇱 NetherlandsnlAmsterdam
🇫🇷 FrancefrParis, Marseille
🇸🇪 SwedenseStockholm, Malmö
🇪🇸 SpainesMadrid
🇮🇹 ItalyitMilan, Rome

Only these 18 countries. Requests for other regions are rejected (502). The specific server per country is auto-selected daily based on latency.

Quick Start

curl (per-request proxy)
# Route ONE request through Japan
curl -x "http://jp:[email protected]:8080" https://ifconfig.me

# Route ONE request through Brazil
curl -x "http://br:[email protected]:8080" https://example.com/api
Python requests (per-request proxy)
import requests

def vpn_proxy(region: str) -> dict:
    """Return proxy dict for a given region code."""
    return {
        "https": f"http://{region}:[email protected]:8080",
        "http":  f"http://{region}:[email protected]:8080",
    }

# Only the geo-blocked request goes through VPN
resp = requests.get("https://geo-restricted-api.example.com", proxies=vpn_proxy("jp"))

# All other requests go through normal sc-proxy routing (no proxies= arg)
resp2 = requests.get("https://api.coingecko.com/...")
❌ Do NOT do this
# WRONG — may influence other requests
export HTTP_PROXY="http://jp:[email protected]:8080"
export HTTPS_PROXY="http://jp:[email protected]:8080"

Region Selection

The username in the proxy URL selects the exit country:

InputResolves To
jp or japanJapan
au or australiaAustralia
de or germanyGermany
ch or switzerlandSwitzerland
th or thailandThailand
br or brazilBrazil
ar or argentinaArgentina
mx or mexicoMexico
my or malaysiaMalaysia
za or south_africaSouth Africa
sg or singaporeSingapore
hk or hong_kongHong Kong
gb or uk or united_kingdomUnited Kingdom
nl or netherlandsNetherlands
fr or franceFrance
se or swedenSweden
es or spainSpain
it or italyItaly

REST API

Base URL: http://sc-vpn.internal:8081

EndpointDescription
GET /api/tunnelsStatus of all 18 tunnels (region, latency, uptime)
GET /api/statusGateway overview
GET /api/usageYour traffic stats (identified by source IP)
GET /healthHealth check

Rate Limits

LimitDefault
Monthly quota per client500 GB
Max concurrent connections50
Requests per second100

Clients identified by source IP. No API keys needed — internal network only.

Verify It Works

# Your real exit IP
curl https://ifconfig.me

# VPN exit IP (should be different, from Japan)
curl -x "http://jp:[email protected]:8080" https://ifconfig.me

Troubleshooting

ProblemFix
502 Bad Gateway: Unknown regionUse one of: au, ch, de, jp, my, mx, th, za, br, ar, sg, hk, gb, nl, fr, se, es, it
502 Bad Gateway: Tunnel not activeGateway may need restart — check /api/status
400 Bad Request: No region specifiedAdd username to proxy URL: http://jp:[email protected]:8080
DNS failure for sc-vpn.internalOnly accessible from Starchild internal network
Other requests broken after using VPNYou set global HTTP_PROXY — unset it immediately

Comments

Markdown supported