Skip to main content
Glama

vpn-mcp

Internet access for AI coding tools through VPN exit nodes.

An MCP server that gives your AI coding assistant access to the internet through VPN exit nodes. Route requests through different regions, bypass geo-restrictions, avoid rate limits.

Works with Claude Code, Cursor, Windsurf, OpenCode, Cline, Continue, Zed, Hermes, and any MCP-compatible client.

Quick start

# Install
uv tool install vpn-mcp

# Or with pip
pip install vpn-mcp

Add to your MCP config (.mcp.json for Claude Code, .cursor/mcp.json for Cursor, etc.):

{
  "mcpServers": {
    "vpn": {
      "command": "vpn-mcp"
    }
  }
}

Then from your AI assistant:

> vpn_activate()
Account activated — Free tier

> vpn_connect()
Connected to North America

> vpn_fetch("https://httpbin.org/ip")
{"origin": "185.xx.xx.xx"}

Related MCP server: codex-session-gateway

Features

  • Free tier — no payment needed. 1 request per 30 seconds, 256 KB/s.

  • Multiple regions — North America, Europe, Ukraine, Tor exit.

  • vpn_fetch() — make HTTP requests through VPN. Recommended tool.

  • Rate-limited tiers — upgrade for more bandwidth and requests.

  • Machine fingerprint — one account per device, prevents abuse.

Tiers

Tier

Price

Requests

Bandwidth

Free

0

1 / 30s

256 KB/s

Basic

1 USDT/mo

30 / min

500 KB/s

Pro

5 USDT/mo

120 / min

2 MB/s

Payment via USDT on TON network. Upgrade by calling vpn_activate() and following the payment instructions.

MCP Tools

Tool

Description

vpn_activate()

Activate account. Free tier is instant.

vpn_connect(node?)

Connect to VPN exit node.

vpn_disconnect()

Disconnect.

vpn_switch(node)

Switch exit node.

vpn_status()

Account status, tier, quota.

vpn_nodes()

List available exit nodes.

vpn_fetch(url, method?, headers?, body?)

HTTP request through VPN.

vpn_setup()

Download VPN binary. Auto on first connect.

Configuration per tool

Claude Code — .mcp.json or ~/.claude/mcp.json

Cursor — .cursor/mcp.json or ~/.cursor/mcp.json

Windsurf — ~/.codeium/windsurf/mcp_config.json

OpenCode — opencode.json or ~/.config/opencode/opencode.json

Continue — .continue/mcpServers/vpn.json

Hermes — ~/.hermes/config.yaml under mcp_servers

All use the same config:

{
  "mcpServers": {
    "vpn": {
      "command": "vpn-mcp"
    }
  }
}

License

Source-available. See LICENSE for details.

Available Tools

8 tools
vpn_activateA

Activate VPN account. Returns a TON USDT payment address and instructions. Show the address and instructions to the user — they need to send 1 USDT using a TON wallet app (Tonkeeper, TonHub, etc). Payment is detected automatically. Do NOT open a browser — all payment info is returned by this tool. After the user pays, call vpn_status() to check, then vpn_connect() to start.

Inputs: no named parameters.

vpn_connectA

Connect to a VPN exit node. Starts local proxy. After connecting, use vpn_fetch(url) to make requests through the VPN. If the account is not yet activated, returns payment instructions — show these to the user so they can pay with a TON wallet app. Do NOT open a browser for payment — the payment address is returned directly by this tool.

Inputs: node.

vpn_disconnectA

Disconnect from VPN. Stops the local proxy. WebFetch returns to direct connection.

Inputs: no named parameters.

vpn_fetchA

Fetch a URL through the VPN tunnel. Use this instead of WebFetch when you need the request to come from the VPN exit node IP. Requires vpn_connect() first. Returns status code, headers, and body. This is the safe default — only vpn_fetch requests go through VPN, WebFetch stays direct.

Inputs: url (required), method, headers, body.

vpn_nodesA

List available VPN exit nodes with regions. Requires an active (paid) account.

Inputs: no named parameters.

vpn_setupA

Download and install VPN binary for the current OS. Called automatically by vpn_connect if needed.

Inputs: no named parameters.

vpn_statusA

Check VPN account status: payment state, quota used/remaining, expiry, active node. Use after payment to verify activation before connecting.

Inputs: no named parameters.

vpn_switchA

Switch to a different VPN exit node. Restarts the proxy with the new node.

Inputs: node (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.3/5.0

    Scored across 8 tools

    Disambiguation5/5

    Each tool has a distinct and clear purpose within the VPN lifecycle: activation, connection, disconnection, fetching through VPN, node listing, setup, status checking, and node switching. There is no overlap or ambiguity; an agent can easily select the right tool for each step.

    Naming Consistency5/5

    All tool names follow a consistent 'vpn_' prefix with descriptive action suffixes (e.g., activate, connect, fetch). The naming pattern is uniform and predictable, making it easy for an agent to understand and navigate the toolset.

    Tool Count5/5

    With 8 tools, the server is well-scoped for managing a VPN service. Each tool serves a specific function in the activation, setup, connection, usage, and management workflow, with no redundant or missing operations for the domain.

    Completeness5/5

    The toolset provides complete coverage for the VPN domain: account activation, setup, connection, disconnection, fetching through the VPN, node listing, status monitoring, and node switching. There are no obvious gaps, enabling agents to handle the full lifecycle without dead ends.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables Gemini CLI and ChatGPT to inspect, modify, and run commands in local code projects through MCP, including Git operations and multi-project session binding with secure remote access.
      160 npm
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      This MCP server enables web AI assistants such as ChatGPT, Claude Web, and Gemini Web to securely connect to local IDEs and workspaces for file edits, terminal and Git commands, and multi-project navigation through an outbound bridge with zero inbound ports.
      1
      MIT