VPN Bypass について
vpn-bypass-mcpは、AIエージェントをmacOSアプリのVPN Bypassに接続し、通信経路の確認や変更を可能にします。アプリの状態、ドメインやサービスのルール、ルート、DNS、ログを扱い、読み取り専用モードも備えます。
主な機能
- 01アプリの状態とログの取得
- 02ドメインリストとサービスの管理
- 03ルーティングモードとルールの変更
- 04カーネルルートの確認と更新
- 05読み取り専用ツールセット
活用シーン
- 01VPN Bypassのルーティング状態の確認
- 02VPNを迂回するドメインの追加
- 03ログを使った接続問題の調査
MCP 対応
MCPサーバーはローカル制御ソケットを介してVPN Bypassを操作するツールとプロンプトを公開します。stdioを使い、ネットワークポートは開きません。読み取り専用モードでは変更を伴わないツールのみを登録します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y vpn-bypass-mcpVPNB_SOCKETPath of the VPN Bypass control socket (default ~/Library/Application Support/VPNBypass/control.sock)VPN_BYPASS_MCP_READ_ONLYSet to 1 to register only the 8 read tools and the diagnose_site prompt; any value except empty, 0, false or no turns it onローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
vpn-bypass-mcp
vpn-bypass-mcp は、VPN Bypass 用の MCP サーバーです。VPN Bypass は、どのトラフィックを VPN 経由にし、どのトラフィックを VPN を経由させずに送るかを決める macOS のメニューバーアプリです。AI エージェントはアプリのローカル制御ソケットを通じて、アプリの状態を読み取り、ルーティングを変更できます。macOS 専用です。
機能
- アプリの各アクションに対応する 23 個のツール:ステータス、ドメインリスト、サービス、ルーティングモード、カーネルルート、DNS の更新、ログ、Custom モードのルートとルールです。各ツールには表示用タイトルがあります。
- すべてのツールが、アプリ独自の JSON を変更せずにテキストと
structuredContentで返します。読み取りツール 8 個にはoutputSchemaも宣言されています。 - すべてのツールに MCP ヒント 4 種類すべてを設定しています。トラフィックの経路を変更するツールには
destructiveHint: trueを追加しているため、破壊的な呼び出しを確認するクライアントでは、注入された「これをプロキシ経由にして」という指示があっても、実行前に確認を求めます。custom_add_routeとcustom_update_routeにはopenWorldHint: trueも設定されています。 - アプリがすでに要求されたモードの場合、
set_modeは何も送信しません。 - ツールが宣言していない引数は拒否されるため、入力ミスが「成功」扱いになって何も変更されないことはありません。
- プロンプトは 3 種類です:
diagnose_site、bypass_site、rotate_proxy_port。 VPN_BYPASS_MCP_READ_ONLY=1を設定すると、何も変更しないツール 8 個とdiagnose_siteプロンプトのみが登録されます。- プロキシのパスワードは別フィールドで送信され、返却、エコー、ログへの記録は一切されません。エラーにはソケット名
control.sockのみが記載され、ホームフォルダーのパスは表示されません。 - stdio のみを使用します。サーバーはネットワークポートを開きません。
プロトコル
MCP 2026-07-28(server/discover、リクエストごとの _meta、リストのキャッシュヒント)と、それ以前のすべてのバージョン(initialize ハンドシェイク)に、同じバイナリで対応しています。現在も initialize を使うクライアントを含め、どちらの世代のクライアントでも動作します。
インストール
VPN Bypass を起動しておく必要があります。npm パッケージはインストール時にお使いの Mac 用のリリースバイナリをダウンロードします。パッケージマネージャーがインストールスクリプトをスキップする場合(npm 12、pnpm、bun)は、初回起動時にダウンロードします。その後、パッケージ内に含まれるハッシュと照合します。
Claude Code:
claude mcp add --transport stdio vpn-bypass -- npx -y vpn-bypass-mcp
Claude Desktop(~/Library/Application Support/Claude/claude_desktop_config.json)および Cursor(~/.cursor/mcp.json):
{
"mcpServers": {
"vpn-bypass": {
"command": "npx",
"args": ["-y", "vpn-bypass-mcp"]
}
}
}
VS Code(.vscode/mcp.json):
{
"servers": {
"vpn-bypass": {
"type": "stdio",
"command": "npx",
"args": ["-y", "vpn-bypass-mcp"]
}
}
}
Codex(~/.codex/config.toml):
[mcp_servers.vpn-bypass]
command = "npx"
args = ["-y", "vpn-bypass-mcp"]
読み取り専用にするには、サーバーの環境に VPN_BYPASS_MCP_READ_ONLY=1 を追加します(JSON では "env": {"VPN_BYPASS_MCP_READ_ONLY": "1"}、Codex では env = { VPN_BYPASS_MCP_READ_ONLY = "1" }、claude mcp add では名前の前に -e VPN_BYPASS_MCP_READ_ONLY=1 を指定します)。リリースバイナリとソースからのビルドについては、はじめにをご覧ください。
ツール
| グループ | ツール | 読み取り専用 |
|---|---|---|
| 状態とログ | status、get_logs | はい |
| モード | set_mode | |
| ドメインリスト | list_domains(読み取り)、add_domain、remove_domain、set_domain_enabled | |
| サービス | list_services、get_service(読み取り)、set_service_enabled | |
| カーネルルート | list_active_routes(読み取り)、clear_routes、refresh_routes、refresh_dns | |
| カスタムモードのルート | custom_list_routes(読み取り)、custom_add_route、custom_update_route、custom_set_route_enabled、custom_remove_route | |
| カスタムモードのルール | custom_list_rules(読み取り)、custom_add_rule、custom_remove_rule、custom_set_default_route |
ドメイン、サービス、アクティブルート、更新、ログの各ツールを使用するには、VPN Bypass 4.9.0 以降が必要です。status、set_mode、カスタムモードの各ツールは、それより古いバージョンでも動作します。各ツールの引数、ヒント、ソケットコマンドについては、使い方をご覧ください。
ドキュメント
すべてのドキュメントはgeiserx.github.io/vpn-bypass-mcpでご覧いただけます。
- はじめに: 要件、npm、リリースバイナリ、ソース、初回実行
- 設定: 環境変数、読み取り専用モード、タイムアウト、セキュリティ
- 使い方: モード、2 種類のルート、各ツール、エラー
- 開発: ビルド、テスト、リリース
- 関連プロジェクト: VPN Bypass アプリ、その
vpnbコマンドライン、およびこのサーバーの掲載先
関連プロジェクト
アプリのVPN Bypassと、そのHomebrew tap。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。