Mullvad VPN MCP Server について
Mullvad VPN MCP Serverは、MCP対応クライアントからMullvad VPNを操作できるMCPサーバーです。ローカルのMullvad CLI経由で処理し、API呼び出しや認証情報を必要としません。
主な機能
- 01VPNの接続、切断、再接続
- 02接続状態と通信漏えいの確認
- 03VPNサーバーの一覧表示と選択
- 04アカウントとデバイス情報の確認
- 05ロックダウン、DAITA、マルチホップの設定
- 06DNS、プロトコル、難読化の調整
活用シーン
- 01MCPクライアントからVPNの接続先を変更
- 02接続状態とVPN保護を確認
- 03ロックダウンやDNSブロックを有効化
- 04アカウントのデバイスと有効期限を確認
MCP 対応
VPN操作、診断、サーバー選択、アカウント情報、設定のツールをMCPクライアントに提供します。操作はローカルのMullvad CLI経由で行います。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mullvad-mcp
あらゆる MCP 互換クライアント(Claude Desktop、Cursor、Windsurf など)から Mullvad VPN を操作するための MCP(Model Context Protocol)サーバーです。
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 キーやシークレットは必要ありません。出力は構造化された dict に解析されるため、LLM が結果を推論できます。
リソース
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。