{
  "$schema": "https://verifymcp.io/schemas/changelog.json",
  "server": "io-usefulapi-tailscale",
  "component": "tailscale",
  "generated_at": "2026-09-21T05:30:24.596Z",
  "tracking_since": "2026-08-01",
  "counts": {
    "critical": 0,
    "security": 20,
    "functional": 0,
    "cosmetic": 0
  },
  "events": [
    {
      "id": "chg_01a0b6f7-800e-7eb8-adaf-b09eb76c822d",
      "kind": "check.reverified",
      "family": "auth-oauth",
      "subject_kind": "check",
      "subject": "auth-oauth",
      "subject_child": "",
      "from_code": "auth.none_unlisted",
      "to_code": "auth.rfc9728_invoke",
      "from_value": "unverified",
      "to_value": "pass",
      "materiality": "security",
      "direction": "improvement",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-19",
      "occurred_at": "2026-09-19 00:01:08.415819+00",
      "observed_since": "2026-09-18",
      "source": "scan",
      "summary": "Authorization (unverified → pass)",
      "link": "https://verifymcp.io/servers/io-usefulapi-tailscale/tailscale#chg-chg_01a0b6f7-800e-7eb8-adaf-b09eb76c822d"
    },
    {
      "id": "chg_01a0b6f7-8013-704c-a13c-78e8c0ec6893",
      "kind": "check.reverified",
      "family": "tool-safety-injection",
      "subject_kind": "check",
      "subject": "tool-safety-injection",
      "subject_child": "",
      "from_code": "toolsafety.auth_gated",
      "to_code": "toolsafety.injection_clean",
      "from_value": "unverified",
      "to_value": "pass",
      "materiality": "security",
      "direction": "improvement",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-19",
      "occurred_at": "2026-09-19 00:01:08.415819+00",
      "observed_since": "2026-09-18",
      "source": "scan",
      "summary": "Injection markers (unverified → pass)",
      "link": "https://verifymcp.io/servers/io-usefulapi-tailscale/tailscale#chg-chg_01a0b6f7-8013-704c-a13c-78e8c0ec6893"
    },
    {
      "id": "chg_01a0b6f7-8018-74ef-be72-b67bfbd658bf",
      "kind": "check.reverified",
      "family": "stability",
      "subject_kind": "check",
      "subject": "stability",
      "subject_child": "",
      "from_code": "stability.insufficient_history",
      "to_code": "stability.stable",
      "from_value": "unverified",
      "to_value": "pass",
      "materiality": "security",
      "direction": "improvement",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-19",
      "occurred_at": "2026-09-19 00:01:08.415819+00",
      "observed_since": "2026-09-18",
      "source": "scan",
      "summary": "Stability (unverified → pass)",
      "link": "https://verifymcp.io/servers/io-usefulapi-tailscale/tailscale#chg-chg_01a0b6f7-8018-74ef-be72-b67bfbd658bf"
    },
    {
      "id": "chg_01a0b1db-9657-70ed-bc75-0a0316168c72",
      "kind": "check.unverifiable",
      "family": "stability",
      "subject_kind": "check",
      "subject": "stability",
      "subject_child": "",
      "from_code": "stability.churn",
      "to_code": "stability.insufficient_history",
      "from_value": "fail",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-18",
      "occurred_at": "2026-09-18 00:12:33.146056+00",
      "observed_since": "2026-09-17",
      "source": "scan",
      "summary": "Stability (fail → unverified)",
      "link": "https://verifymcp.io/servers/io-usefulapi-tailscale/tailscale#chg-chg_01a0b1db-9657-70ed-bc75-0a0316168c72"
    },
    {
      "id": "chg_01a0b1db-965a-77b7-90b0-3791e909aa63",
      "kind": "check.unverifiable",
      "family": "tool-safety-injection",
      "subject_kind": "check",
      "subject": "tool-safety-injection",
      "subject_child": "",
      "from_code": "toolsafety.injection_clean",
      "to_code": "toolsafety.auth_gated",
      "from_value": "pass",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-18",
      "occurred_at": "2026-09-18 00:12:33.146056+00",
      "observed_since": "2026-09-17",
      "source": "scan",
      "summary": "Tool safety (pass → unverified)",
      "link": "https://verifymcp.io/servers/io-usefulapi-tailscale/tailscale#chg-chg_01a0b1db-965a-77b7-90b0-3791e909aa63"
    },
    {
      "id": "chg_01a0b1db-965b-7678-b1c9-9aba74dbdf5d",
      "kind": "check.reason",
      "family": "auth-oauth",
      "subject_kind": "check",
      "subject": "auth-oauth",
      "subject_child": "",
      "from_code": "auth.none_destructive_unverified",
      "to_code": "auth.none_unlisted",
      "from_value": "unverified",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "neutral",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-18",
      "occurred_at": "2026-09-18 00:12:33.146056+00",
      "observed_since": "2026-09-17",
      "source": "scan",
      "summary": "Authorization (Authorisation not fully verified: no authorisation is required to connect, but we couldn't read the tool list to see what that exposes.)",
      "link": "https://verifymcp.io/servers/io-usefulapi-tailscale/tailscale#chg-chg_01a0b1db-965b-7678-b1c9-9aba74dbdf5d"
    },
    {
      "id": "chg_01a0b1db-9660-7512-9bec-37d61a29a51c",
      "kind": "capture.status_changed",
      "family": "",
      "subject_kind": "server",
      "subject": "capture",
      "subject_child": "",
      "from_code": null,
      "to_code": null,
      "from_value": "verified",
      "to_value": "auth_gated",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "to": "auth_gated",
        "from": "verified"
      },
      "occurred_on": "2026-09-18",
      "occurred_at": "2026-09-18 00:12:33.146056+00",
      "observed_since": "2026-09-17",
      "source": "scan",
      "summary": "Endpoint reachability (reachable → behind authorisation)",
      "link": "https://verifymcp.io/servers/io-usefulapi-tailscale/tailscale#chg-chg_01a0b1db-9660-7512-9bec-37d61a29a51c"
    },
    {
      "id": "chg_01a0acb5-8c59-78ee-934c-3b29056fee60",
      "kind": "check.reverified",
      "family": "stability",
      "subject_kind": "check",
      "subject": "stability",
      "subject_child": "",
      "from_code": "stability.insufficient_history",
      "to_code": "stability.churn",
      "from_value": "unverified",
      "to_value": "fail",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "days": "30",
        "added": "0",
        "breaks": "0",
        "removed": "0",
        "auth_transport": "1"
      },
      "occurred_on": "2026-09-17",
      "occurred_at": "2026-09-17 00:12:54.138198+00",
      "observed_since": "2026-09-16",
      "source": "scan",
      "summary": "Stability (unverified → fail)",
      "link": "https://verifymcp.io/servers/io-usefulapi-tailscale/tailscale#chg-chg_01a0acb5-8c59-78ee-934c-3b29056fee60"
    },
    {
      "id": "chg_01a0acb5-8c5b-74c1-8686-c4e5b6b08c6f",
      "kind": "check.reverified",
      "family": "transport",
      "subject_kind": "check",
      "subject": "transport",
      "subject_child": "",
      "from_code": "transport.auth_gated",
      "to_code": "transport.verified",
      "from_value": "unverified",
      "to_value": "pass",
      "materiality": "security",
      "direction": "improvement",
      "score_delta": null,
      "detail": {
        "transport": "streamable-http"
      },
      "occurred_on": "2026-09-17",
      "occurred_at": "2026-09-17 00:12:54.138198+00",
      "observed_since": "2026-09-16",
      "source": "scan",
      "summary": "Transport (unverified → pass)",
      "link": "https://verifymcp.io/servers/io-usefulapi-tailscale/tailscale#chg-chg_01a0acb5-8c5b-74c1-8686-c4e5b6b08c6f"
    },
    {
      "id": "chg_01a0acb5-8c5c-7ba0-90bb-ab4f69a6b6d3",
      "kind": "check.reverified",
      "family": "tool-safety-injection",
      "subject_kind": "check",
      "subject": "tool-safety-injection",
      "subject_child": "",
      "from_code": "toolsafety.unreachable",
      "to_code": "toolsafety.injection_clean",
      "from_value": "unverified",
      "to_value": "pass",
      "materiality": "security",
      "direction": "improvement",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-17",
      "occurred_at": "2026-09-17 00:12:54.138198+00",
      "observed_since": "2026-09-16",
      "source": "scan",
      "summary": "Injection markers (unverified → pass)",
      "link": "https://verifymcp.io/servers/io-usefulapi-tailscale/tailscale#chg-chg_01a0acb5-8c5c-7ba0-90bb-ab4f69a6b6d3"
    },
    {
      "id": "chg_01a0acb5-8c5d-776f-a255-b7051ae9d619",
      "kind": "check.reason",
      "family": "auth-oauth",
      "subject_kind": "check",
      "subject": "auth-oauth",
      "subject_child": "",
      "from_code": "auth.none_unlisted",
      "to_code": "auth.none_destructive_unverified",
      "from_value": "unverified",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "neutral",
      "score_delta": null,
      "detail": {
        "tool": "tailscale_authorize_device"
      },
      "occurred_on": "2026-09-17",
      "occurred_at": "2026-09-17 00:12:54.138198+00",
      "observed_since": "2026-09-16",
      "source": "scan",
      "summary": "Authorization (Authorisation not fully verified: this server exposes a tool marked destructive (tailscale_authorize_device) and its handshake is open, but we could not confirm whether a tool call is gated, so we do not assert it is callable unauthenticated.)",
      "link": "https://verifymcp.io/servers/io-usefulapi-tailscale/tailscale#chg-chg_01a0acb5-8c5d-776f-a255-b7051ae9d619"
    },
    {
      "id": "chg_01a0a26f-f344-7e46-b792-b9b221524549",
      "kind": "check.unverifiable",
      "family": "auth-oauth",
      "subject_kind": "check",
      "subject": "auth-oauth",
      "subject_child": "",
      "from_code": "auth.rfc9728_invoke",
      "to_code": "auth.none_unlisted",
      "from_value": "pass",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-15",
      "occurred_at": "2026-09-15 00:20:40.840976+00",
      "observed_since": "2026-09-14",
      "source": "scan",
      "summary": "Authorization (pass → unverified)",
      "link": "https://verifymcp.io/servers/io-usefulapi-tailscale/tailscale#chg-chg_01a0a26f-f344-7e46-b792-b9b221524549"
    },
    {
      "id": "chg_01a0a26f-f346-71f7-b9f0-276f79f8f414",
      "kind": "check.unverifiable",
      "family": "stability",
      "subject_kind": "check",
      "subject": "stability",
      "subject_child": "",
      "from_code": "stability.stable",
      "to_code": "stability.insufficient_history",
      "from_value": "pass",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-15",
      "occurred_at": "2026-09-15 00:20:40.840976+00",
      "observed_since": "2026-09-14",
      "source": "scan",
      "summary": "Stability (pass → unverified)",
      "link": "https://verifymcp.io/servers/io-usefulapi-tailscale/tailscale#chg-chg_01a0a26f-f346-71f7-b9f0-276f79f8f414"
    },
    {
      "id": "chg_01a0a26f-f346-7a25-bc7b-85d37877d422",
      "kind": "check.unverifiable",
      "family": "tool-safety-injection",
      "subject_kind": "check",
      "subject": "tool-safety-injection",
      "subject_child": "",
      "from_code": "toolsafety.injection_clean",
      "to_code": "toolsafety.unreachable",
      "from_value": "pass",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-15",
      "occurred_at": "2026-09-15 00:20:40.840976+00",
      "observed_since": "2026-09-14",
      "source": "scan",
      "summary": "Tool safety (pass → unverified)",
      "link": "https://verifymcp.io/servers/io-usefulapi-tailscale/tailscale#chg-chg_01a0a26f-f346-7a25-bc7b-85d37877d422"
    },
    {
      "id": "chg_01a0a26f-f347-775c-b822-858721ce5371",
      "kind": "check.unverifiable",
      "family": "transport",
      "subject_kind": "check",
      "subject": "transport",
      "subject_child": "",
      "from_code": "transport.verified",
      "to_code": "transport.auth_gated",
      "from_value": "pass",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "transport": "streamable-http"
      },
      "occurred_on": "2026-09-15",
      "occurred_at": "2026-09-15 00:20:40.840976+00",
      "observed_since": "2026-09-14",
      "source": "scan",
      "summary": "Transport (pass → unverified)",
      "link": "https://verifymcp.io/servers/io-usefulapi-tailscale/tailscale#chg-chg_01a0a26f-f347-775c-b822-858721ce5371"
    },
    {
      "id": "chg_01a0a26f-f349-74c2-accc-bf70b2fec199",
      "kind": "capture.status_changed",
      "family": "",
      "subject_kind": "server",
      "subject": "capture",
      "subject_child": "",
      "from_code": null,
      "to_code": null,
      "from_value": "verified",
      "to_value": "not_mcp",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "to": "not_mcp",
        "from": "verified"
      },
      "occurred_on": "2026-09-15",
      "occurred_at": "2026-09-15 00:20:40.840976+00",
      "observed_since": "2026-09-14",
      "source": "scan",
      "summary": "Endpoint reachability (reachable → not serving MCP)",
      "link": "https://verifymcp.io/servers/io-usefulapi-tailscale/tailscale#chg-chg_01a0a26f-f349-74c2-accc-bf70b2fec199"
    },
    {
      "id": "chg_01a05a4f-b499-7143-b355-0ed6b3693b4e",
      "kind": "check.verdict",
      "family": "stability",
      "subject_kind": "check",
      "subject": "stability",
      "subject_child": "",
      "from_code": "stability.building_history",
      "to_code": "stability.stable",
      "from_value": "0.97",
      "to_value": "pass",
      "materiality": "security",
      "direction": "neutral",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-01",
      "occurred_at": "2026-09-01 00:12:48.123114+00",
      "observed_since": "2026-08-31",
      "source": "scan",
      "summary": "Stability (0.97 → pass)",
      "link": "https://verifymcp.io/servers/io-usefulapi-tailscale/tailscale#chg-chg_01a05a4f-b499-7143-b355-0ed6b3693b4e"
    },
    {
      "id": "chg_019fbfc5-a636-7942-b308-48ad68e105d0",
      "kind": "check.reverified",
      "family": "auth-oauth",
      "subject_kind": "check",
      "subject": "auth-oauth",
      "subject_child": "",
      "from_code": "auth.none_unlisted",
      "to_code": "auth.rfc9728_invoke",
      "from_value": "unverified",
      "to_value": "pass",
      "materiality": "security",
      "direction": "improvement",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-08-02",
      "occurred_at": "2026-08-02 00:00:29.140913+00",
      "observed_since": "2026-08-01",
      "source": "scan",
      "summary": "Authorization (unverified → pass)",
      "link": "https://verifymcp.io/servers/io-usefulapi-tailscale/tailscale#chg-chg_019fbfc5-a636-7942-b308-48ad68e105d0"
    },
    {
      "id": "chg_019fbfc5-a641-75b8-b61b-6b34b0bc671c",
      "kind": "check.verdict",
      "family": "transport",
      "subject_kind": "check",
      "subject": "transport",
      "subject_child": "",
      "from_code": "transport.http_error",
      "to_code": "transport.verified",
      "from_value": "fail",
      "to_value": "pass",
      "materiality": "security",
      "direction": "improvement",
      "score_delta": null,
      "detail": {
        "transport": "streamable-http"
      },
      "occurred_on": "2026-08-02",
      "occurred_at": "2026-08-02 00:00:29.140913+00",
      "observed_since": "2026-08-01",
      "source": "scan",
      "summary": "Transport (fail → pass)",
      "link": "https://verifymcp.io/servers/io-usefulapi-tailscale/tailscale#chg-chg_019fbfc5-a641-75b8-b61b-6b34b0bc671c"
    },
    {
      "id": "chg_019fbfc5-a648-776c-987a-96cba1bf6fa1",
      "kind": "check.appeared",
      "family": "auth-registration",
      "subject_kind": "check",
      "subject": "auth-registration",
      "subject_child": "",
      "from_code": null,
      "to_code": "auth.registration_dcr_only",
      "from_value": null,
      "to_value": "partial",
      "materiality": "security",
      "direction": "neutral",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-08-02",
      "occurred_at": "2026-08-02 00:00:29.140913+00",
      "observed_since": "2026-08-01",
      "source": "scan",
      "summary": "First check of Authorization (partial)",
      "link": "https://verifymcp.io/servers/io-usefulapi-tailscale/tailscale#chg-chg_019fbfc5-a648-776c-987a-96cba1bf6fa1"
    }
  ],
  "days": [
    {
      "date": "2026-09-19",
      "total": 86,
      "delta": 58,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 6
    },
    {
      "date": "2026-09-18",
      "total": 28,
      "delta": -45,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 7
    },
    {
      "date": "2026-09-17",
      "total": 73,
      "delta": 55,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 7
    },
    {
      "date": "2026-09-15",
      "total": 18,
      "delta": -68,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 7
    },
    {
      "date": "2026-09-14",
      "total": 86,
      "delta": -1,
      "tracked": true,
      "explained": false,
      "beyond_event_horizon": false,
      "attribution": {
        "category": "Endpoint Security",
        "from": 80,
        "to": 78,
        "delta": -2,
        "others": [],
        "accrual": null,
        "partial": false,
        "compared_to": "2026-09-13",
        "summary": "No change was recorded against any check on this day. Endpoint Security went from 80 to 78."
      },
      "event_count": 0
    },
    {
      "date": "2026-09-13",
      "total": 87,
      "delta": 1,
      "tracked": true,
      "explained": false,
      "beyond_event_horizon": false,
      "attribution": {
        "category": "Endpoint Security",
        "from": 78,
        "to": 80,
        "delta": 2,
        "others": [],
        "accrual": null,
        "partial": false,
        "compared_to": "2026-09-12",
        "summary": "No change was recorded against any check on this day. Endpoint Security went from 78 to 80."
      },
      "event_count": 0
    },
    {
      "date": "2026-09-01",
      "total": 86,
      "delta": 0,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 1
    },
    {
      "date": "2026-08-31",
      "total": 86,
      "delta": 1,
      "tracked": true,
      "explained": false,
      "beyond_event_horizon": false,
      "attribution": {
        "category": "Stability & Change Management",
        "from": 93,
        "to": 97,
        "delta": 4,
        "others": [],
        "accrual": {
          "code": "stability.building_history",
          "from_days": 28,
          "to_days": 29
        },
        "partial": false,
        "compared_to": "2026-08-30",
        "summary": "No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes."
      },
      "event_count": 0
    }
  ]
}