mcpField
T
tailscale

tailscale

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

tailscale について

tailscaleは、ローカルCLIとtailnet全体を操作するAPIを通じてTailscaleを管理するスキルです。接続診断に加え、デバイス、DNS、キーの管理に対応します。

主な機能

  1. 01ステータスとネットワーク診断の確認
  2. 02ピアへのPingと接続管理
  3. 03ファイル転送とサービス公開
  4. 04tailnetデバイスの一覧・管理
  5. 05DNS、ACL、認証キーの管理

活用シーン

  1. 01オンライン中のtailnetデバイスの確認
  2. 02ピア接続が中継かどうかの判定
  3. 03別のデバイスへのファイル送信
  4. 04サーバー用認証キーの作成

インストール

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

$npx skills add https://github.com/jmagar/claude-homelab --skill tailscale

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

同梱ファイル

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

load-env.sh
README.md
references/
api-endpoints.md
quick-reference.md
troubleshooting.md
scripts/
ts-api.sh

詳細

Tailscale スキル

⚠️ スキルの呼び出しは必須です ⚠️

ユーザーが次のいずれかのトリガーに言及した場合、このスキルを必ず呼び出してください(任意ではありません)。

  • 「Tailscale のステータス」、「tailnet デバイス」、「VPN のステータス」
  • 「Tailscale ピア」、「接続中のユーザー」、「出口ノード」
  • 「Tailscale を確認」、「tailnet の監視」、「Tailscale」
  • Tailscale または VPN ネットワーク管理への言及

トリガーが発生したときにこのスキルを呼び出さないと、運用要件に違反します。

目的

Tailscale CLI(ローカルマシンでの操作)と Tailscale API(tailnet 全体の管理)の両方を使用するハイブリッドスキルです。読み書き可能(安全) — 破壊的な操作はありません。書き込みには認証キーの作成やネットワーク機能の切り替えが含まれます。

操作の種類方法API キーが必要
ステータス、ping、netcheck、whoisCLIいいえ
Serve、funnel、ファイル転送、SSHCLIいいえ
全デバイスの一覧、ユーザー管理、DNSAPIはい
認証キーの作成/取り消しAPIはい

セットアップ

API 設定(任意。tailnet 全体の操作で使用)は ~/.claude-homelab/.env に保存されています。

TAILSCALE_API_KEY="tskey-api-k..."
TAILSCALE_TAILNET="-"

API キーの取得先:Tailscale Admin Console → Settings → Keys → Generate API Key

TAILSCALE_TAILNET には -(自動検出)、組織名、またはメールドメインを指定できます。


ローカル操作(CLI)

これらは現在のマシンでのみ動作します。

ステータスと診断
# Current status (peers, connection state)
tailscale status
tailscale status --json | jq '.Peer | to_entries[] | {name: .value.HostName, ip: .value.TailscaleIPs[0], online: .value.Online}'

# Network diagnostics (NAT type, DERP, UDP)
tailscale netcheck
tailscale netcheck --format=json

# Get this machine's Tailscale IP
tailscale ip -4

# Identify a Tailscale IP
tailscale whois 100.x.x.x
接続
# Ping a peer (shows direct vs relay)
tailscale ping <hostname-or-ip>

# Connect/disconnect
tailscale up
tailscale down

# Use an exit node
tailscale up --exit-node=<node-name>
tailscale exit-node list
tailscale exit-node suggest
ファイル転送(Taildrop)
# Send files to a device
tailscale file cp myfile.txt <device-name>:

# Receive files (moves from inbox to directory)
tailscale file get ~/Downloads
tailscale file get --wait ~/Downloads  # blocks until file arrives
サービスの公開
# Share locally within tailnet (private)
tailscale serve 3000
tailscale serve https://localhost:8080

# Share publicly to internet
tailscale funnel 8080

# Check what's being served
tailscale serve status
tailscale funnel status
SSH
# SSH via Tailscale (uses MagicDNS)
tailscale ssh user@hostname

# Enable SSH server on this machine
tailscale up --ssh

tailnet 全体の操作(API)

tailnet 全体を管理します。API キーが必要です。

全デバイスの一覧表示
./scripts/ts-api.sh devices

# With details
./scripts/ts-api.sh devices --verbose
デバイスの詳細
./scripts/ts-api.sh device <device-id-or-name>
オンライン状態の確認
# Quick online check for all devices
./scripts/ts-api.sh online
デバイスの承認/削除
./scripts/ts-api.sh authorize <device-id>
./scripts/ts-api.sh delete <device-id>
デバイスのタグとルート
./scripts/ts-api.sh tags <device-id> tag:server,tag:prod
./scripts/ts-api.sh routes <device-id>
認証キー
# Create a reusable auth key
./scripts/ts-api.sh create-key --reusable --tags tag:server

# Create ephemeral key (device auto-removes when offline)
./scripts/ts-api.sh create-key --ephemeral

# List keys
./scripts/ts-api.sh keys
DNS 管理
./scripts/ts-api.sh dns                 # Show DNS config
./scripts/ts-api.sh dns-nameservers     # List nameservers
./scripts/ts-api.sh magic-dns on|off    # Toggle MagicDNS
ACL
./scripts/ts-api.sh acl                 # Get current ACL
./scripts/ts-api.sh acl-validate <file> # Validate ACL file

よくあるユースケース

「今オンラインなのは誰ですか?」

./scripts/ts-api.sh online

「このファイルを自分のスマートフォンに送って」

tailscale file cp document.pdf my-phone:

「開発サーバーを公開して」

tailscale funnel 3000

「新しいサーバー用のキーを作成して」

./scripts/ts-api.sh create-key --reusable --tags tag:server --expiry 7d

「接続は直接ですか、それとも中継されていますか?」

tailscale ping my-server

🔧 エージェントツールの使用要件

重要: zsh-tool 経由でこのスキルのスクリプトを呼び出すときは、必ず pty: true を使用してください。

PTY モードを使用しないと、コマンドは正常に実行されても出力が表示されません。

正しい呼び出しパターン:

<invoke name="mcp__plugin_zsh-tool_zsh-tool__zsh">
<parameter name="command">./skills/SKILL_NAME/scripts/SCRIPT.sh [args]</parameter>
<parameter name="pty">true</parameter>
</invoke>

コメント