mcpField
W
wake-on-lan

wake-on-lan

github.com/wmy2981クラウド・DevOps154 回インストール5 週間前に更新
リポジトリ

wake-on-lan について

wake-on-lan は、ローカルネットワーク上の WoL 対応コンピューターに UDP の Magic Packet を送るコマンドラインスキルです。ホスト設定の管理にも対応し、結果を JSON で返します。

主な機能

  1. 01UDP Magic Packet によるホストの起動
  2. 02ホスト設定の追加・編集・一覧表示
  3. 03MAC アドレスを指定した直接起動
  4. 04ブロードキャスト・ポート・送信数の設定
  5. 05JSON 形式での結果出力

活用シーン

  1. 01登録済みのホスト名でコンピューターを起動
  2. 02MAC アドレスだけでコンピューターを起動
  3. 03ネットワークが不安定な場合の送信数調整

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/wmy2981/skills --skill wake-on-lan

インストール後、Claude Code で/wake-on-lanを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

.claude-plugin/
plugin.json
scripts/
.env.example
wol.py

詳細

Wake on LAN

UDP ブロードキャスト経由でマジックパケットを送信し、ローカルネットワーク上の WoL 対応コンピューターを起動します。スクリプトからホスト設定を管理できるため、YAML を手動で編集する必要はありません。

実行ルール

ユーザーが要求したコマンドを、依存関係、環境変数、設定を事前に確認せずに直接実行します。問題がある場合はスクリプトが明確なエラーを出して失敗するため、その時点でのみ確認して修正してください。

環境変数

変数必須説明
WOL_CONFIG_PATH❌hosts.yaml のカスタムパス(デフォルト:~/.wmyskills/wake-on-lan/hosts.yaml)

スクリプトは ~/.wmyskills/.env(スキル間で共有)からこれらを自動的に読み込みます。スクリプトディレクトリに scripts/.env がある場合は、そちらが優先されます。テンプレートとして scripts/.env.example を使用してください。変数は ~/.wmyskills/.env に追加し、既存のファイルを上書きしないでください。

要件

pip install pyyaml python-dotenv

使い方

スクリプト:scripts/wol.py

ホストの管理
# List all configured hosts
python scripts/wol.py list

# Add a host
python scripts/wol.py add my-pc AA:BB:CC:DD:EE:FF --ip 192.168.1.100

# Edit a host's fields
python scripts/wol.py edit my-pc --mac 00:11:22:33:44:55 --ip 192.168.1.10

# Remove a host
python scripts/wol.py remove my-pc
ホストの起動
# Wake by name (from host list)
python scripts/wol.py wake my-pc

# Wake with more packets (improves reliability on lossy networks)
python scripts/wol.py wake my-pc --count 5

# Wake by raw MAC address (no config needed)
python scripts/wol.py wake-mac AA:BB:CC:DD:EE:FF

# Wake by MAC with custom broadcast
python scripts/wol.py wake-mac AA:BB:CC:DD:EE:FF --broadcast 192.168.1.255 --port 9
Add コマンドのオプション
フラグ説明
--ip IPIP アドレス(表示/参照用)
--broadcast BCブロードキャストアドレス(デフォルト:255.255.255.255)
--port PORTUDP ポート(デフォルト:9)
--count N送信するマジックパケットの数(デフォルト:3)
Wake/Wake-MAC オプション
フラグ説明
--broadcast BCブロードキャストアドレスを上書きします
--port PORTUDP ポートを上書きします(デフォルト:9)
--count N送信するパケットの数(デフォルト:3。数を増やすと信頼性が向上します)
Edit オプション
フラグ説明
--new-name NAMEホストの名前を変更します
--mac MACMAC アドレスを変更します
--ip IPIP アドレスを変更します
--broadcast BCブロードキャストアドレスを変更します
--port PORTUDP ポートを変更します
--count Nパケット数を変更します

出力形式

すべての出力は JSON 形式です。

{"success": true, "host": "my-pc", "mac": "AA:BB:CC:DD:EE:FF", "broadcast": "255.255.255.255", "port": 9, "packets_sent": 3, "message": "Magic packet sent to AA:BB:CC:DD:EE:FF (3x via 255.255.255.255:9)"}

失敗時:

{"success": false, "error": "Host 'xyz' not found", "available_hosts": ["my-pc", "my-server"]}

注意事項

  • 起動対象のコンピューターのネットワークアダプターとマザーボードが WoL に対応し、BIOS/UEFI で有効になっている必要があります。
  • マジックパケットは UDP ブロードキャストです。ローカルサブネット内にとどまります。サブネットをまたいだ WoL には、ダイレクトブロードキャストまたはリレーの設定が必要です。
  • ホスト設定はデフォルトで ~/.wmyskills/wake-on-lan/hosts.yaml に保存されます。スクリプトは初回実行時にこのファイルを自動作成します。
  • 依存関係:Python 3.8 以降、pyyaml。パケットの構築には標準ライブラリのソケットを使用します。

コメント