ワンクリックで
ts-test
Live integration test for all Tailscale MCP tools — read + safe writes with cleanup
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Live integration test for all Tailscale MCP tools — read + safe writes with cleanup
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Manage Tailscale ACL policy — view, edit, validate, test, preview, drift detection against Source of Truth
Manage Tailscale devices — list, authorize, configure routes, set tags, manage posture
Manage Tailscale DNS — split DNS routes, global nameservers, search paths, MagicDNS
Tailnet health dashboard — devices, DNS, ACL, keys, connectivity
Manage Tailscale auth keys — create, list, rotate, revoke with expiry tracking
New device onboarding workflow — create auth key, authorize, set tags, configure routes, verify connectivity
| name | ts-test |
| description | Live integration test for all Tailscale MCP tools — read + safe writes with cleanup |
| disable-model-invocation | true |
Run live integration tests against the Tailscale API to verify all MCP tools work correctly.
Usage: /ts-test (all domains) or /ts-test <domain> (single domain)
Available domains: devices, dns, acl, keys, tailnet, diagnostics
If a tool returns an unexpected error or wrong data:
bug including the failure detailsmcp-live-test in key description)devices)Read tests:
tailscale_device_list — list devices, expect ≥1 devicetailscale_device_get — get first device from list by IDtailscale_device_routes_get — get routes for first devicetailscale_device_posture_get — get posture attributes for first deviceSKIP: tailscale_device_delete — destructive, would remove device from tailnet
SKIP: tailscale_device_authorize — would authorize a pending device
SKIP: tailscale_device_routes_set — would change live device routes
SKIP: tailscale_device_tags_set — would change device tags
SKIP: tailscale_device_posture_set — would set posture attributes
dns)Read tests:
tailscale_dns_nameservers_get — get global nameserverstailscale_dns_searchpaths_get — get search pathstailscale_dns_splitdns_get — get split DNS configurationtailscale_dns_preferences_get — get MagicDNS preferencesSKIP: tailscale_dns_nameservers_set — would change live global nameservers
SKIP: tailscale_dns_searchpaths_set — would change live search paths
SKIP: tailscale_dns_splitdns_set — would change live split DNS routes
SKIP: tailscale_dns_preferences_set — would change MagicDNS settings
acl)Read tests:
tailscale_acl_get — get current ACL policy (expect HuJSON response)tailscale_acl_validate — validate current ACL (expect success/valid response)tailscale_acl_test — test ACL with empty test suite [] (expect pass)SKIP: tailscale_acl_set — would overwrite live ACL policy
SKIP: tailscale_acl_preview — requires proposed ACL body
keys)Read test:
tailscale_key_list — list existing auth keysWrite + Cleanup cycle — Auth Key:
2. tailscale_key_create — create auth key: capabilities.devices.create.reusable = false, capabilities.devices.create.ephemeral = true, expirySeconds = 3600, description = mcp-live-test
3. tailscale_key_get — VERIFY: get key by ID from step 2, confirm description matches
4. tailscale_key_delete — CLEANUP: delete key by ID, confirm true
5. tailscale_key_list — VERIFY: confirm test key no longer appears
tailnet)Read tests:
tailscale_tailnet_settings_get — get tailnet settingstailscale_tailnet_contacts_get — get tailnet contactstailscale_tailnet_lock_status — get tailnet lock statusSKIP: tailscale_tailnet_contacts_set — would change tailnet contacts
diagnostics)Read tests:
tailscale_status — get overall tailscale statustailscale_api_verify — verify API connectivity and token validitytailscale_derp_map — get DERP relay map (expect regions array)tailscale_log_stream_get — get log stream configurationSKIP: tailscale_log_stream_set — would change log streaming destination
After all tests complete, present results in this format:
## Tailscale Live Test Results — [DATE]
### Summary
- Total tools: 35
- Tested: [N] | Skipped: [N]
- PASS: [N] | FAIL: [N] | ERROR: [N]
- Write+Cleanup cycles: [N] completed, [N] failed
- Bugs created: [N] (list issue URLs)
### Per Domain
| Domain | Tools | Tested | Pass | Fail | Skip |
|--------|-------|--------|------|------|------|
| Devices | 9 | ... | ... | ... | ... |
| DNS | 8 | ... | ... | ... | ... |
| ACL | 5 | ... | ... | ... | ... |
| Keys | 4 | ... | ... | ... | ... |
| Tailnet | 4 | ... | ... | ... | ... |
| Diagnostics | 5 | ... | ... | ... | ... |
### Failures (if any)
| Tool | Input | Expected | Actual | Issue |
|------|-------|----------|--------|-------|
| ... | ... | ... | ... | #XX |
### Cleanup Status
- [ ] All test entries removed
- [ ] No `mcp-live-test` entries remain in any domain
Post a concise summary to Slack (channel provided by the caller):
🧪 Tailscale Live Test — [DATE]
Tested: [N]/35 | ✅ [N] Pass | ❌ [N] Fail | ⏭️ [N] Skip
Write+Cleanup: [N]/[N] clean
Bugs: [N] created ([issue URLs])
tailscale_acl_test tool should be called with an empty test array [] to validate without modifying anything.