Mullvad VPN MCP Server

Created By
Samuel O'Regan4 days ago
Control Mullvad VPN from any MCP-compatible AI client. Connect, disconnect, switch servers, check for leaks, manage kill switch, DAITA, multihop, DNS blocking, and more — all via the local Mullvad CLI.
Overview

mullvad-mcp

Control Mullvad VPN from any MCP-compatible AI client — Claude Desktop, Cursor, Windsurf, and more.

All VPN interaction goes through the mullvad CLI. No API keys, no config file parsing, no credentials needed.

Prerequisites

  • Mullvad VPN app installed with CLI in your PATH
  • Python 3.11+
  • uv package manager

Installation

git clone https://github.com/oregansamuel3/mullvad-mcp.git
cd mullvad-mcp
uv sync

Available Tools

Connection Control

  • connect — Connect to VPN, optionally specifying country/city/hostname
  • disconnect — Disconnect from VPN
  • reconnect — Reconnect, optionally to a new location

Status & Diagnostics

  • get_status — Current connection state, server, protocol, IPs
  • check_leak — Query am.i.mullvad.net to verify VPN protection

Server Selection

  • list_countries — All available countries with server counts
  • list_cities — Cities for a given country
  • list_servers — Servers with filters (country, city, owned_only)
  • set_location — Set preferred location by country, city, or hostname

Account & Settings

  • get_account_info — Masked account number, expiry date
  • get_device_info — Devices registered to the account
  • get_settings — All current settings as a structured object
  • set_killswitch — Enable/disable lockdown mode
  • set_daita — Enable/disable DAITA (traffic analysis defence)
  • set_multihop — Enable/disable multihop with optional entry location
  • set_dns — Set DNS: default (with blocking options) or custom IPs
  • set_protocol — Configure WireGuard options
  • set_obfuscation — Set anti-censorship mode

Example Usage

"Connect me to Sweden" → connect(country="se")

"Am I leaking?" → check_leak() — queries am.i.mullvad.net

"Enable the kill switch and block ads" → set_killswitch(enabled=True) + set_dns(block_ads=True)

Server Config

{
  "mcpServers": {
    "mullvad": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/mullvad-mcp",
        "run",
        "mullvad-mcp"
      ]
    }
  }
}
Project Info
Created At
4 days ago
Updated At
4 days ago
Author Name
Samuel O'Regan
Star
-
Language
-
License
-
Category

Recommend Servers

View All