インストール不要。2分以内に動きます。
cloud.anythingmcp.com で無料トライアルを開始し、Tailscale をワンクリックで追加して、AI クライアント(Claude、ChatGPT、Copilot、Cursor)を生成された MCP エンドポイントに向けるだけ。Docker も git clone も、開発経験も不要です。
AnythingMCP は Claude のコネクタディレクトリに掲載されています。ワンクリックで Claude に追加 (新しいタブで開きます)し、サインインして Claude が使える MCP サーバーを選んでください。
概要
API v2 による Tailscale の tailnet 管理:ルート、タグ、承認、ポスチャー属性付きのデバイス、ユーザーとロール、認証キー、ポリシーファイル(読み取り、検証、プレビュー)、DNS と MagicDNS、tailnet の設定、構成監査ログとネットワークフローログ、ログストリーミング、Webhook、Services、ポスチャー連携。OAuth クライアントでサインインし、ブラウザでのサインインは不要です。
こう聞いてみよう
Tailscale のサンプルプロンプト
プロンプトをクリックでコピー。Claude / ChatGPT / Cursor / Gemini / Copilot / OpenClaw に貼り付けて、このコネクターで実行できます。
Claude は AI のため誤ることがあります。回答をご確認ください。
💡 インストール不要? cloud.anythingmcp.com を直接利用してください。 サインインし、Connectors → Tailscale をクリック、認証情報を貼り付け、MCP API キーを発行すれば完了です。Docker も
git cloneもローカルサーバーも不要。
Tailscale + Claude
API v2 による Tailscale の tailnet 管理:ルート、タグ、承認、ポスチャー属性付きのデバイス、ユーザーとロール、認証キー、ポリシーファイル(読み取り、検証、プレビュー)、DNS と MagicDNS、tailnet の設定、構成監査ログとネットワークフローログ、ログストリーミング、Webhook、Services、ポスチャー連携。OAuth クライアントでサインインし、ブラウザでのサインインは不要です。
前提条件
完全なセットアップ手順はコネクタ自体に組み込まれています (ストアでコネクタを選択すると表示)。必要な環境変数:
TAILSCALE_OAUTH_CLIENT_ID, TAILSCALE_OAUTH_CLIENT_SECRET
ステップ 1 — 認証情報を取得
設定は約 5 分で、Owner、Admin、Network admin、IT admin のいずれかのロールを持つ tailnet ユーザーが必要です。コネクタは Tailscale の OAuth クライアント(OAuth2 クライアントクレデンシャル)でサインインします。ブラウザでのサインインはなく、背後にユーザーアカウントもありません。
- https://login.tailscale.com/admin/settings/trust-credentials(**Settings**、**Trust credentials**。旧コンソールでは Settings、OAuth clients)を開き、Credential、続いて OAuth をクリックします。
- スコープを選びます。読み取りだけなら
all:readで十分です。書き込みツールには対応する書き込みスコープを追加します:devices:core(1 つ以上のタグが必要。例:tag:server)、devices:routes、users、auth_keys(こちらもタグが必要)、policy_file、dns、feature_settings、webhooks。allはすべてを許可します。 - Client ID(例:
kAbCdEf1CNTRL)をTAILSCALE_OAUTH_CLIENT_IDに、一度だけ表示される Client secret(tskey-client-...)をTAILSCALE_OAUTH_CLIENT_SECRETにコピーします。API アクセストークン(tskey-api-...)はここでは使えません。 - コネクタをインストールし、
tailscale_list_devicesを実行します。tailnet のデバイスを一覧表示し、クライアントを確認します。
コネクタは https://api.tailscale.com/api/v2/oauth/token でクライアントを有効期間 1 時間のアクセストークンに交換し、自動で更新します。最長 90 日の API アクセストークンと違い、OAuth クライアントは期限切れになりません。すべての呼び出しはクライアントを所有する tailnet に送られます(パスの -)。クライアントにスコープのない書き込みは 403 を返します。
応答に含まれるシークレット: AI はツールが返すものをすべて見ます。tailscale_create_auth_key は新しい認証キー(tskey-auth-...)を、tailscale_create_webhook は Webhook の署名シークレットを返し、どちらもこの 1 回しか表示されません。いずれも会話と AI プロバイダーに渡ります。AI はそれを依頼した人にだけ渡し、ほかのツール、ファイル、メッセージには決して渡しません。tailscale_list_user_invites は、持っている人なら誰でも参加できる招待リンクを表示します。tailscale_list_keys と tailscale_get_key はキーの値を一切返さず、tailscale_list_webhooks、tailscale_get_webhook、tailscale_get_log_streaming_configuration では署名シークレット、トークン、クラウドの認証情報が取り除かれます。
デバイス: tailscale_list_devices は filter(例: hostname=web-1、tags=tag:prod、authorized=false)で絞り込め、fields=all でルートと接続状況が加わります。ほかに tailscale_get_device、tailscale_get_device_routes、tailscale_get_device_posture_attributes があります。変更: tailscale_authorize_device(デバイス承認、または承認の取り消し)、tailscale_set_device_routes(サブネットルートと出口ノードの承認)、tailscale_set_device_tags、tailscale_set_device_name(新しい名前はすぐに MagicDNS 名になります)、tailscale_set_device_key_expiry(キーの有効期限をオフにする。ノート PC よりサーバー向け)。
ユーザー: ロールや種類で絞り込める tailscale_list_users、tailscale_get_user、tailscale_list_user_invites。変更は tailscale_update_user_role、tailscale_approve_user、tailscale_suspend_user と tailscale_restore_user(停止は復元で元に戻します)。
キー: tailscale_list_keys(all=true で認証キーと API アクセストークンも含む)、tailscale_get_key、そしてサーバー、コンテナ、CI ランナーを追加するための tailscale_create_auth_key です。再利用可能か 1 回限り、エフェメラル、事前承認を選べ、有効期間は最長 90 日です。このコネクタの OAuth クライアントでは、キーにタグが必要です(クライアント自身のタグか、それが所有するタグ)。
アクセスルール: tailscale_get_policy_file はポリシーファイル(grants と acls、groups、hosts、tagOwners、autoApprovers、ssh、nodeAttrs、postures、tests)を etag 付きで読み取ります。tailscale_preview_policy_rules はユーザーや IP:ポートに適用されるルールを示し、tailscale_validate_policy_file は下書きを確認してそのテストを実行します。どちらも何も変更しません。
DNS と設定: tailscale_get_dns_configuration はネームサーバー、スプリット DNS、検索ドメイン、MagicDNS を 1 回で表示します。変更は tailscale_set_dns_nameservers、tailscale_set_dns_preferences(MagicDNS のオンとオフ。オンにはグローバルネームサーバーが必要)、tailscale_set_dns_search_paths、tailscale_update_split_dns(渡したドメインだけが変わります)で行います。tailscale_get_tailnet_settings と tailscale_update_tailnet_settings は、デバイスとユーザーの承認、キーの有効期限、自動更新、ネットワークフローログ、HTTPS 証明書などを扱います。tailscale_get_contacts はアカウント、サポート、セキュリティの連絡先を表示します。
ログと連携: tailscale_list_configuration_audit_logs(誰が何を変えたか。90 日間保存され、操作者、対象、イベントで絞り込み可能)、tailscale_list_network_flow_logs(デバイス間の通信。Premium と Enterprise プランでフローログがオンの場合。応答がすぐ大きくなるため、AI は日単位ではなく分単位で取得します)、SIEM へのストリーミング用の tailscale_get_log_streaming_status と tailscale_get_log_streaming_configuration、Webhook(tailscale_list_webhooks、tailscale_get_webhook、tailscale_create_webhook)、Tailscale Services(tailscale_list_services、tailscale_get_service、tailscale_list_service_hosts)、ポスチャー連携(tailscale_list_posture_integrations)。
変更は一覧を置き換えます: ルート、タグ、ネームサーバー、検索ドメインは完全な一覧として送信されます。AI はまず現在の値を読み、既存の項目に新しい項目を加えて送ります。省いたルートは無効になります。
インストール時はオフ: tailscale_expire_device_key、tailscale_delete_device、tailscale_delete_user、tailscale_delete_key は元に戻せないため、tailscale_set_policy_file は tailnet のアクセスポリシー全体を 1 回で置き換え、誤ったルール 1 つでユーザーとデバイスが締め出されるため、オフになっています。チームが必要なときに、ワークスペース管理者が意図してオンにします。
データ形式: デバイスの nodeId(例: nAbCdEf1CNTRL)が推奨のデバイス ID で、数値の id も使えます。name は MagicDNS 名(web-1.tailnet-name.ts.net)、addresses は Tailscale の IP(100.x.y.z と fd7a:115c:a1e0::/48)です。時刻は UTC の RFC 3339 で、デバイスが接続中(connectedToControl: true)の間 lastSeen は空です。expires が 0001-01-01 ならキーの有効期限はオフです。タグは tag:name の形式です。
ページング: 一覧はページングなしで 1 回の応答で返ります。ログツールは代わりに start と end の時刻を受け取ります。
よくあるエラー: 401 は OAuth クライアントが削除されたか、シークレットが誤っています。403 はこの呼び出しに必要なスコープやタグがクライアントにないか、プランにその機能がありません。404 はその ID がこの tailnet に存在しません。400 は無効な入力で、message が付きます(テストが失敗するポリシーファイルも含む)。412 は etag の取得後にポリシーが変更されたことを示します。429 はレート制限です。1 分待ってから再試行してください。
このコネクタは OAuth クライアントや API アクセストークンを作成せず、ルートの広告やデバイスのサインインも行いません(それはデバイス上で行います)。インストール時に有効なツールでは、デバイス、ユーザー、キーを削除せず、ポリシーファイルも置き換えません。
ステップ 2 — アダプターをインストール
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
ステップ 3 — Claude にコネクタを追加
サーバーURL: AnythingMCP で MCP Servers を開き、このコネクタがあるサーバーを選んで URL(
https://cloud.anythingmcp.com/mcp/…)をコピーします。このガイドでYOUR_SERVER_IDと表示されている箇所に使ってください。
推奨ルート:設定ファイルを触らずに claude.ai web で動作します。
- Claude で Customize → Connectors を開きます。
- + をクリックし、Add custom connector を選びます。
- 名前(例:
Tailscale)とリモート MCP サーバー URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_IDを入力し、Add をクリックします。 - Connect をクリックし、AnythingMCP にサインイン(OAuth)してアクセスを許可します。
下記のすべてのツールがチャットに表示されます。プロンプトを入力し始めてください。
利用可能なツール
| Tool | What it does |
|---|---|
tailscale_list_devices | List the devices (machines) of the tailnet: nodeId, numeric id, name (MagicDNS name), hostname, user, OS, client version, Tailscale IP… |
tailscale_get_device | One device with its details: name, hostname, user, OS, addresses, tags, authorized, key expiry, lastSeen, connectedToControl and, with… |
tailscale_get_device_routes | The subnet routes a device advertises (advertisedRoutes) and the ones that are approved for it (enabledRoutes) |
tailscale_set_device_routes | Replace the list of approved (enabled) subnet routes of a device |
tailscale_authorize_device | Approve a device that waits for device approval (authorized=true), or take the approval back (authorized=false), which cuts it off from the… |
tailscale_set_device_name | Rename a device: the new name becomes its MagicDNS name at once, so links and scripts that use the old name stop working |
tailscale_set_device_tags | Replace the tags of a device |
tailscale_set_device_key_expiry | Switch key expiry off (key_expiry_disabled=true) or back on for a device |
tailscale_expire_device_key | Expire the node key of a device now |
tailscale_delete_device | Remove a device from the tailnet |
tailscale_get_device_posture_attributes | The posture attributes of a device as key-value pairs: those Tailscale collects (node:os, node:tsVersion, ...), those from posture… |
tailscale_list_users | List the users of the tailnet: id, displayName, loginName (e-mail), role, status (active, idle, suspended, needs-approval… |
tailscale_get_user | One user: displayName, loginName, role, status, type, created, lastSeen, deviceCount |
tailscale_update_user_role | Change the role of a user |
tailscale_approve_user | Approve a user whose status is needs-approval (when user approval is on in the tailnet settings) |
tailscale_suspend_user | Suspend a user: their devices lose access to the tailnet until the user is restored with tailscale_restore_user |
tailscale_restore_user | Restore a suspended user, giving their devices access to the tailnet again |
tailscale_delete_user | Delete a user from the tailnet, together with their devices |
tailscale_list_user_invites | Open (not yet accepted) invitations to join the tailnet: id, e-mail, role, inviter and when the e-mail was last sent. inviteUrl lets… |
tailscale_list_keys | List the keys of the tailnet: auth keys, API access tokens, OAuth clients and federated identities, with id, keyType, description, created… |
tailscale_get_key | One key by id: keyType, description, created, expires, revoked, invalid, capabilities (reusable, ephemeral, preauthorized, tags for auth… |
tailscale_create_auth_key | Create an auth key to add devices to the tailnet |
tailscale_delete_key | Revoke a key by id: an auth key, an API access token or a trust credential |
tailscale_get_policy_file | The tailnet policy file (access rules) as JSON: grants and acls, groups, hosts, tagOwners, autoApprovers, ssh, nodeAttrs, postures and… |
tailscale_validate_policy_file | Check a policy file without saving it: Tailscale parses it and runs its tests (and sshTests) |
tailscale_preview_policy_rules | Which rules of a policy file would apply to one user or one IP:port, without saving it |
tailscale_set_policy_file | Replace the whole tailnet policy file |
tailscale_get_dns_configuration | The full DNS setup of the tailnet in one call: global nameservers, split DNS routes (domain to nameservers), search paths and preferences… |
tailscale_set_dns_nameservers | Replace the global DNS nameservers of the tailnet |
tailscale_set_dns_preferences | Switch MagicDNS on or off for the tailnet |
tailscale_set_dns_search_paths | Replace the DNS search domains of the tailnet |
tailscale_update_split_dns | Change split DNS for some domains: only the domains you pass are changed, the others stay |
tailscale_get_tailnet_settings | The tailnet settings: device approval, device auto-updates, key expiry in days, user approval, who may join external tailnets, network flow… |
tailscale_update_tailnet_settings | Change one or more tailnet settings; fields you leave out keep their value |
tailscale_get_contacts | The account, support and security contact e-mails of the tailnet, each with its fallback and whether it still needs verification |
tailscale_list_configuration_audit_logs | Configuration audit log: who changed what in the tailnet (devices, users, keys, policy file, DNS, settings) between start and end, in time… |
tailscale_list_network_flow_logs | Network flow logs between start and end: which devices talked to which addresses and ports, with packet and byte counts per sample period… |
tailscale_get_log_streaming_status | Whether streaming of a log type to a SIEM works: last activity, last error, bytes and entries sent, rate |
tailscale_get_log_streaming_configuration | Where a log type is streamed: destination type (splunk, elastic, datadog, s3, ...), URL, upload period, compression, S3 bucket and region |
tailscale_list_webhooks | The webhook endpoints of the tailnet: endpointId, URL, provider type, the events they receive and who created them |
tailscale_get_webhook | One webhook endpoint by id: URL, provider type, subscribed events, creator, created and lastModified |
tailscale_create_webhook | Create a webhook that sends tailnet events to a URL |
tailscale_list_services | Tailscale Services of the tailnet (virtual services hosted by one or more devices): name (svc:...), addresses, ports, tags and comment |
tailscale_get_service | One Tailscale Service by name: its addresses, ports, tags and comment |
tailscale_list_service_hosts | The devices that host a Tailscale Service, with whether each one is approved to serve it |
tailscale_list_posture_integrations | The device posture integrations of the tailnet (CrowdStrike Falcon, Intune, Jamf Pro, Kandji, Kolide, SentinelOne): provider, cloud id… |
プロンプトの例
- 「30 日以上見えていないデバイスはどれですか? 名前、ユーザー、最終確認日時を表示してください。」
- 「router-1 はどのサブネットルートを広告していて、そのうちまだ承認されていないのはどれですか?」
- 「タグ tag:ci 付きで 7 日後に期限切れになる、再利用可能で事前承認済みの認証キーを作成してください。」
- 「先週、ポリシーファイルや DNS 設定を変更したのは誰ですか?」
- 「[email protected] に適用されるのは、ポリシーファイルのどのルールですか?」
FAQ
Claude Code は Claude Desktop と同じように動作しますか? はい。両方を https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID に向けてください。
次のステップ
このガイドは役に立ちましたか?