关于 Mullvad VPN MCP Server
Mullvad VPN MCP Server 将 Mullvad VPN CLI 封装为 MCP 服务,供兼容 MCP 的客户端管理连接、服务器位置和隐私设置。它通过本机 CLI 执行操作,无需 API 调用或凭据。
主要功能
- 01连接、断开及重连 VPN
- 02查看连接状态并检查流量泄漏
- 03浏览并选择 VPN 服务器
- 04管理账户和设备信息
- 05配置锁定模式、DAITA 与多跳
- 06调整 DNS、协议及混淆设置
适用场景
- 01从 MCP 客户端切换 VPN 服务器位置
- 02确认连接状态及 VPN 防护情况
- 03启用锁定模式或 DNS 阻止选项
- 04查看账户设备与到期信息
MCP 相关
作为 MCP 服务,它向客户端提供 Mullvad VPN 连接控制、诊断、服务器选择、账户和设置工具。所有操作都通过本机 Mullvad CLI 执行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mullvad-mcp
一个 MCP(Model Context Protocol)服务,可通过任何兼容 MCP 的客户端控制 Mullvad VPN——包括 Claude Desktop、Cursor、Windsurf 等。
所有 VPN 操作均通过 mullvad CLI 完成。不直接调用 API,不解析配置文件,也不需要凭据。
前置条件
- 已安装 Mullvad VPN 应用,且 CLI 位于 PATH 中
- 验证:
mullvad --version - 下载 Mullvad
- 验证:
- Python 3.11+
- uv 包管理器——安装 uv
安装
git clone https://github.com/your-username/mullvad-mcp.git
cd mullvad-mcp
uv sync
客户端配置
Claude Desktop
添加到 ~/.config/claude-desktop/claude_desktop_config.json(Linux)或 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS):
{
"mcpServers": {
"mullvad": {
"command": "uv",
"args": ["--directory", "/path/to/mullvad-mcp", "run", "mullvad-mcp"]
}
}
}
Cursor
添加到项目中的 .cursor/mcp.json,或全局配置文件 ~/.cursor/mcp.json:
{
"mcpServers": {
"mullvad": {
"command": "uv",
"args": ["--directory", "/path/to/mullvad-mcp", "run", "mullvad-mcp"]
}
}
}
通用 MCP 客户端(stdio)
{
"mcpServers": {
"mullvad": {
"command": "uv",
"args": ["--directory", "/path/to/mullvad-mcp", "run", "mullvad-mcp"],
"transport": "stdio"
}
}
}
可用工具
连接控制
| 工具 | 描述 |
|---|---|
connect | 连接 VPN,可指定国家/城市/主机名 |
disconnect | 断开 VPN 连接 |
reconnect | 重新连接,可选择新位置 |
状态与诊断
| 工具 | 描述 |
|---|---|
get_status | 当前连接状态、服务、协议和 IP |
check_leak | 查询 am.i.mullvad.net,验证 VPN 保护是否生效 |
服务选择
| 工具 | 描述 |
|---|---|
list_countries | 所有可用国家及服务数量 |
list_cities | 指定国家的城市 |
list_servers | 按条件筛选服务(国家、城市、owned_only) |
set_location | 按国家、城市或主机名设置首选位置 |
账户管理
| 工具 | 描述 |
|---|---|
get_account_info | 屏蔽后的账号号码、到期日期 |
get_device_info | 已注册到该账号的设备 |
设置
| 工具 | 描述 |
|---|---|
get_settings | 以结构化对象形式返回所有当前设置 |
set_killswitch | 启用/停用锁定模式 |
set_daita | 启用/停用 DAITA(流量分析防护) |
set_multihop | 启用/停用多跳,可选择入口位置 |
set_dns | 设置 DNS:默认模式(含拦截选项)或自定义 IP |
set_protocol | 配置 WireGuard 选项(抗量子、IPv6) |
set_obfuscation | 设置反审查模式(auto/off/udp2tcp/shadowsocks 等) |
交互示例
连接
“帮我连接到瑞典”
→ 调用
connect(country="se")——将中继设为瑞典并连接。
状态检查
“我的流量有泄漏吗?”
→ 调用
check_leak()——查询 am.i.mullvad.net,并报告流量是否通过 Mullvad 出口。
服务选择
“德国有哪些可用城市?”
→ 调用
list_cities(country="de")——返回柏林、法兰克福等城市及服务数量。
设置
“启用终止开关并拦截广告”
→ 先调用
set_killswitch(enabled=True),再调用set_dns(block_ads=True)。
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
MULLVAD_CLI_PATH | 自动检测 | 覆盖 mullvad 二进制文件的路径 |
MULLVAD_CLI_TIMEOUT | 10 | CLI 命令超时时间,单位为秒 |
工作原理
所有工具都通过子进程调用 mullvad CLI。CLI 会原生处理身份验证——无需 API 密钥或密钥。输出会被解析为结构化字典,供大模型分析结果。
资源
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。