Mullvad VPN MCP Server

by oregansamuel3

231 downloads
Not rated
GitHub

About

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.

Details

Author
oregansamuel3
Downloads
231
Categories
Other, Security

- Connect, disconnect, and reconnect with optional location parameters.
- Check current VPN status and verify against am.i.mullvad.net.
- List countries, cities, and servers with filtering.
- Set location, kill switch, DAITA, multihop, DNS, protocol, and obfuscation.
- Retrieve masked account number, expiry, and registered devices.
- No API keys or external configuration needed.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Mullvad VPN MCP Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Ensure Mullvad VPN app is installed with the mullvad CLI in your PATH, Python 3.11+, and the uv package manager. Clone the repository and run uv sync. Tools become available to any MCP-compatible AI client.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "mullvad vpn mcp server": {
            "mullvad": {
                "command": "uv",
                "args": [
                    "--directory",
                    "/path/to/mullvad-mcp",
                    "run",
                    "mullvad-mcp"
                ]
            }
        }
    }
}

McpServers

{
    "mullvad": {
        "command": "uv",
        "args": [
            "--directory",
            "/path/to/mullvad-mcp",
            "run",
            "mullvad-mcp"
        ]
    }
}

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

``bash 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)`
No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.