بنقرة واحدة
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.