Internet access for your
Claude Code instance

Route WebFetch and any HTTP traffic through VPN exit nodes. Connect from any region, bypass geo-restrictions, avoid rate limits. One MCP tool. One command.

Without VPN MCP
claude-code
$ WebFetch("https://target-api.eu/data")
ERROR: 403 Forbidden — geo-restricted
 
$ WebFetch("https://api.example.com/v2")
ERROR: 429 Too Many Requests
 
# Your real IP is exposed
# Single location, no rotation
# Rate-limited after a few requests
With VPN MCP
claude-code
$ vpn_connect("eu-1")
Connected to eu-1 (Frankfurt)
Proxy: 127.0.0.1:18080
 
$ WebFetch("https://target-api.eu/data")
200 OK — 2.4KB received
 
# Clean datacenter IP, any region
# Rotate nodes mid-task
# Quota-managed, no surprise bills
Activate Now Setup Guide

Three steps to internet access

Install the MCP server, add it to your config, and connect. That's it.

01

Install

Install the MCP server package with uv or pip.

$ uv tool install vpn-mcp
02

Configure

Add to your .mcp.json — Claude Code picks it up automatically.

{
  "mcpServers": {
    "vpn": {
      "command": "uv"
    }
  }
}
03

Connect

Call vpn_connect() from Claude Code. All traffic routes through VPN.

$ vpn_connect("na-1")
Connected

Real problems, solved

Every developer hitting API limits, geo-blocks, or privacy walls from Claude Code.

One proxy for everything

Without
  • Separate VPN app for browsing
  • Separate tool for Claude Code
  • Two subscriptions, two configs
  • Can't share one exit node
With VPN MCP
  • Automatic for Claude Code (HTTPS_PROXY)
  • PAC file for browser proxy
  • 127.0.0.1:18080 for any app
  • One connection, everything routed

Geo-restriction bypass

Without
$ WebFetch("https://eu-api.com/data")
403 Forbidden — Access denied from your region
# Site blocks your IP / region
With VPN MCP
$ vpn_connect("eu-1")
Connected — Frankfurt exit
$ WebFetch("https://eu-api.com/data")
200 OK
# Clean datacenter IP, EU region

Scraping and rate limiting

Without
$ for page in pages: WebFetch(page)
Page 1... OK
Page 5... OK
Page 10...
429 Too Many Requests
# Rate-limited after 10 requests
With VPN MCP
$ vpn_connect("na-1")
Connected
... 50 requests ...
$ vpn_switch("na-2")
Switched — new IP
... 50 more requests ...
# Rotate exit nodes mid-task

Region testing

Without
# Need to test from Europe
# You're in North America
# No way to change region from CLI
Can't test EU-specific behavior
With VPN MCP
$ vpn_switch("eu-1")
Switched to eu-1 (Frankfurt)
$ WebFetch("https://myapp.com/api/geo")
{"region": "EU", "country": "DE"}
# Instant region change, test anywhere

Exit Nodes

Multiple exit nodes worldwide. Choose your region after activation.

Node list available via vpn_nodes() after account activation. Regions include NA, EU, and Asia-Pacific.

Pay per use. No subscription.

One payment, 30 days of access. No recurring charges, no credit card required.

1 USDT

TON network

  • 1 GB/month included
  • 30 days access period
  • All exit nodes included
  • Unlimited node switching
  • SOCKS5 + HTTP proxy protocols
Generate Payment Address

Instant activation after on-chain confirmation