{
  "$schema": "https://verifymcp.io/schemas/changelog.json",
  "server": "sh-fettle-mcp",
  "component": "api",
  "generated_at": "2026-09-28T18:47:31.733Z",
  "tracking_since": "2026-08-25",
  "counts": {
    "critical": 0,
    "security": 17,
    "functional": 0,
    "cosmetic": 0
  },
  "events": [
    {
      "id": "chg_01a06ff9-dd47-79e3-98d4-7cf6170d9af8",
      "kind": "check.reason",
      "family": "tool-safety-injection",
      "subject_kind": "check",
      "subject": "tool-safety-injection",
      "subject_child": "",
      "from_code": "toolsafety.unreachable",
      "to_code": "toolsafety.auth_gated",
      "from_value": "unverified",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "neutral",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-05",
      "occurred_at": "2026-09-05 05:10:41.05377+00",
      "observed_since": "2026-09-04",
      "source": "scan",
      "summary": "Tool safety (Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools.)",
      "link": "https://verifymcp.io/servers/sh-fettle-mcp/api#chg-chg_01a06ff9-dd47-79e3-98d4-7cf6170d9af8"
    },
    {
      "id": "chg_01a06ff9-dd46-7165-b064-57ef96fdb280",
      "kind": "check.unverifiable",
      "family": "transport",
      "subject_kind": "check",
      "subject": "transport",
      "subject_child": "",
      "from_code": "transport.unreachable",
      "to_code": "transport.auth_gated",
      "from_value": "fail",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "transport": "streamable-http"
      },
      "occurred_on": "2026-09-05",
      "occurred_at": "2026-09-05 05:10:41.05377+00",
      "observed_since": "2026-09-04",
      "source": "scan",
      "summary": "Transport (fail → unverified)",
      "link": "https://verifymcp.io/servers/sh-fettle-mcp/api#chg-chg_01a06ff9-dd46-7165-b064-57ef96fdb280"
    },
    {
      "id": "chg_01a06ff9-dd45-7140-be98-880e2ab10a47",
      "kind": "check.reverified",
      "family": "auth-oauth",
      "subject_kind": "check",
      "subject": "auth-oauth",
      "subject_child": "",
      "from_code": "auth.unreachable",
      "to_code": "auth.challenge_only",
      "from_value": "unverified",
      "to_value": "fail",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-05",
      "occurred_at": "2026-09-05 05:10:41.05377+00",
      "observed_since": "2026-09-04",
      "source": "scan",
      "summary": "Authorization (unverified → fail)",
      "link": "https://verifymcp.io/servers/sh-fettle-mcp/api#chg-chg_01a06ff9-dd45-7140-be98-880e2ab10a47"
    },
    {
      "id": "chg_01a06ff9-dd46-76fc-889b-852a9fbdd9b3",
      "kind": "check.reverified",
      "family": "dnssec",
      "subject_kind": "check",
      "subject": "dnssec",
      "subject_child": "",
      "from_code": "dnssec.inconclusive",
      "to_code": "dnssec.validated",
      "from_value": "unverified",
      "to_value": "pass",
      "materiality": "security",
      "direction": "improvement",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-05",
      "occurred_at": "2026-09-05 05:10:41.05377+00",
      "observed_since": "2026-09-04",
      "source": "scan",
      "summary": "DNSSEC (unverified → pass)",
      "link": "https://verifymcp.io/servers/sh-fettle-mcp/api#chg-chg_01a06ff9-dd46-76fc-889b-852a9fbdd9b3"
    },
    {
      "id": "chg_01a06ff9-dd46-7b9c-bdea-dc945e1d00f8",
      "kind": "check.reverified",
      "family": "tls",
      "subject_kind": "check",
      "subject": "tls",
      "subject_child": "",
      "from_code": "tls.unreachable",
      "to_code": "tls.valid",
      "from_value": "unverified",
      "to_value": "pass",
      "materiality": "security",
      "direction": "improvement",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-05",
      "occurred_at": "2026-09-05 05:10:41.05377+00",
      "observed_since": "2026-09-04",
      "source": "scan",
      "summary": "TLS certificate (unverified → pass)",
      "link": "https://verifymcp.io/servers/sh-fettle-mcp/api#chg-chg_01a06ff9-dd46-7b9c-bdea-dc945e1d00f8"
    },
    {
      "id": "chg_01a06ff9-dd47-70d0-9fb8-f208eb556278",
      "kind": "check.reverified",
      "family": "hsts",
      "subject_kind": "check",
      "subject": "hsts",
      "subject_child": "",
      "from_code": "headers.inconclusive",
      "to_code": "headers.hsts_present",
      "from_value": "unverified",
      "to_value": "pass",
      "materiality": "security",
      "direction": "improvement",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-05",
      "occurred_at": "2026-09-05 05:10:41.05377+00",
      "observed_since": "2026-09-04",
      "source": "scan",
      "summary": "HSTS header (unverified → pass)",
      "link": "https://verifymcp.io/servers/sh-fettle-mcp/api#chg-chg_01a06ff9-dd47-70d0-9fb8-f208eb556278"
    },
    {
      "id": "chg_01a06ad3-b9f8-7ab1-a285-c73832dce1f3",
      "kind": "check.unverifiable",
      "family": "auth-oauth",
      "subject_kind": "check",
      "subject": "auth-oauth",
      "subject_child": "",
      "from_code": "auth.challenge_only",
      "to_code": "auth.unreachable",
      "from_value": "fail",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-04",
      "occurred_at": "2026-09-04 05:10:55.636631+00",
      "observed_since": "2026-09-03",
      "source": "scan",
      "summary": "Authorization (fail → unverified)",
      "link": "https://verifymcp.io/servers/sh-fettle-mcp/api#chg-chg_01a06ad3-b9f8-7ab1-a285-c73832dce1f3"
    },
    {
      "id": "chg_01a06ad3-b9fa-7344-b616-3b8c4f050300",
      "kind": "check.reverified",
      "family": "transport",
      "subject_kind": "check",
      "subject": "transport",
      "subject_child": "",
      "from_code": "transport.auth_gated",
      "to_code": "transport.unreachable",
      "from_value": "unverified",
      "to_value": "fail",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {
        "transport": "streamable-http"
      },
      "occurred_on": "2026-09-04",
      "occurred_at": "2026-09-04 05:10:55.636631+00",
      "observed_since": "2026-09-03",
      "source": "scan",
      "summary": "Transport (unverified → fail)",
      "link": "https://verifymcp.io/servers/sh-fettle-mcp/api#chg-chg_01a06ad3-b9fa-7344-b616-3b8c4f050300"
    },
    {
      "id": "chg_01a06ad3-b9fc-756e-ae6d-1c16c9ccf21c",
      "kind": "check.unverifiable",
      "family": "tls",
      "subject_kind": "check",
      "subject": "tls",
      "subject_child": "",
      "from_code": "tls.valid",
      "to_code": "tls.unreachable",
      "from_value": "pass",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-04",
      "occurred_at": "2026-09-04 05:10:55.636631+00",
      "observed_since": "2026-09-03",
      "source": "scan",
      "summary": "TLS certificate (pass → unverified)",
      "link": "https://verifymcp.io/servers/sh-fettle-mcp/api#chg-chg_01a06ad3-b9fc-756e-ae6d-1c16c9ccf21c"
    },
    {
      "id": "chg_01a06ad3-b9fd-7f10-927e-cc3b8a596497",
      "kind": "check.unverifiable",
      "family": "hsts",
      "subject_kind": "check",
      "subject": "hsts",
      "subject_child": "",
      "from_code": "headers.hsts_present",
      "to_code": "headers.inconclusive",
      "from_value": "pass",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-04",
      "occurred_at": "2026-09-04 05:10:55.636631+00",
      "observed_since": "2026-09-03",
      "source": "scan",
      "summary": "HSTS header (pass → unverified)",
      "link": "https://verifymcp.io/servers/sh-fettle-mcp/api#chg-chg_01a06ad3-b9fd-7f10-927e-cc3b8a596497"
    },
    {
      "id": "chg_01a06ad3-b9fe-79f8-8452-94d5818928b6",
      "kind": "check.unverifiable",
      "family": "dnssec",
      "subject_kind": "check",
      "subject": "dnssec",
      "subject_child": "",
      "from_code": "dnssec.validated",
      "to_code": "dnssec.inconclusive",
      "from_value": "pass",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-04",
      "occurred_at": "2026-09-04 05:10:55.636631+00",
      "observed_since": "2026-09-03",
      "source": "scan",
      "summary": "DNSSEC (pass → unverified)",
      "link": "https://verifymcp.io/servers/sh-fettle-mcp/api#chg-chg_01a06ad3-b9fe-79f8-8452-94d5818928b6"
    },
    {
      "id": "chg_01a06ad3-ba00-7323-b724-059fe4b04224",
      "kind": "check.reason",
      "family": "tool-safety-injection",
      "subject_kind": "check",
      "subject": "tool-safety-injection",
      "subject_child": "",
      "from_code": "toolsafety.auth_gated",
      "to_code": "toolsafety.unreachable",
      "from_value": "unverified",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "neutral",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-04",
      "occurred_at": "2026-09-04 05:10:55.636631+00",
      "observed_since": "2026-09-03",
      "source": "scan",
      "summary": "Tool safety (Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.)",
      "link": "https://verifymcp.io/servers/sh-fettle-mcp/api#chg-chg_01a06ad3-ba00-7323-b724-059fe4b04224"
    },
    {
      "id": "chg_01a065ad-2496-7b08-9337-42672aec2e2e",
      "kind": "check.reverified",
      "family": "dnssec",
      "subject_kind": "check",
      "subject": "dnssec",
      "subject_child": "",
      "from_code": "dnssec.inconclusive",
      "to_code": "dnssec.validated",
      "from_value": "unverified",
      "to_value": "pass",
      "materiality": "security",
      "direction": "improvement",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-03",
      "occurred_at": "2026-09-03 05:10:40.949848+00",
      "observed_since": "2026-09-02",
      "source": "scan",
      "summary": "DNSSEC (unverified → pass)",
      "link": "https://verifymcp.io/servers/sh-fettle-mcp/api#chg-chg_01a065ad-2496-7b08-9337-42672aec2e2e"
    },
    {
      "id": "chg_01a06087-2305-718b-ab2e-ff9ceeb32bf2",
      "kind": "check.unverifiable",
      "family": "dnssec",
      "subject_kind": "check",
      "subject": "dnssec",
      "subject_child": "",
      "from_code": "dnssec.bogus",
      "to_code": "dnssec.inconclusive",
      "from_value": "fail",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-02",
      "occurred_at": "2026-09-02 05:11:04.09398+00",
      "observed_since": "2026-09-01",
      "source": "scan",
      "summary": "DNSSEC (fail → unverified)",
      "link": "https://verifymcp.io/servers/sh-fettle-mcp/api#chg-chg_01a06087-2305-718b-ab2e-ff9ceeb32bf2"
    },
    {
      "id": "chg_01a05b60-cc17-7ef3-a571-798de3c10ecd",
      "kind": "check.verdict",
      "family": "dnssec",
      "subject_kind": "check",
      "subject": "dnssec",
      "subject_child": "",
      "from_code": "dnssec.validated",
      "to_code": "dnssec.bogus",
      "from_value": "pass",
      "to_value": "fail",
      "materiality": "security",
      "direction": "regression",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-09-01",
      "occurred_at": "2026-09-01 05:11:05.444192+00",
      "observed_since": "2026-08-31",
      "source": "scan",
      "summary": "DNSSEC (pass → fail)",
      "link": "https://verifymcp.io/servers/sh-fettle-mcp/api#chg-chg_01a05b60-cc17-7ef3-a571-798de3c10ecd"
    },
    {
      "id": "chg_01a0563a-15f3-7df5-8192-3d8ed0872b02",
      "kind": "check.reason",
      "family": "tool-safety-injection",
      "subject_kind": "check",
      "subject": "tool-safety-injection",
      "subject_child": "",
      "from_code": "toolsafety.unreachable",
      "to_code": "toolsafety.auth_gated",
      "from_value": "unverified",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "neutral",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-08-31",
      "occurred_at": "2026-08-31 05:10:42.222671+00",
      "observed_since": "2026-08-30",
      "source": "scan",
      "summary": "Tool safety (Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools.)",
      "link": "https://verifymcp.io/servers/sh-fettle-mcp/api#chg-chg_01a0563a-15f3-7df5-8192-3d8ed0872b02"
    },
    {
      "id": "chg_01a05114-0240-7c0d-a0bd-a1492308c4d6",
      "kind": "check.reason",
      "family": "tool-safety-injection",
      "subject_kind": "check",
      "subject": "tool-safety-injection",
      "subject_child": "",
      "from_code": "toolsafety.auth_gated",
      "to_code": "toolsafety.unreachable",
      "from_value": "unverified",
      "to_value": "unverified",
      "materiality": "security",
      "direction": "neutral",
      "score_delta": null,
      "detail": {},
      "occurred_on": "2026-08-30",
      "occurred_at": "2026-08-30 05:11:00.823427+00",
      "observed_since": "2026-08-29",
      "source": "scan",
      "summary": "Tool safety (Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.)",
      "link": "https://verifymcp.io/servers/sh-fettle-mcp/api#chg-chg_01a05114-0240-7c0d-a0bd-a1492308c4d6"
    }
  ],
  "days": [
    {
      "date": "2026-09-28",
      "total": 36,
      "delta": 0,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 1
    },
    {
      "date": "2026-09-25",
      "total": 36,
      "delta": 0,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 1
    },
    {
      "date": "2026-09-05",
      "total": 36,
      "delta": 0,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 9
    },
    {
      "date": "2026-09-04",
      "total": 36,
      "delta": 0,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 9
    },
    {
      "date": "2026-09-03",
      "total": 36,
      "delta": 0,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 1
    },
    {
      "date": "2026-09-02",
      "total": 36,
      "delta": 0,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 1
    },
    {
      "date": "2026-09-01",
      "total": 36,
      "delta": 0,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 1
    },
    {
      "date": "2026-08-31",
      "total": 36,
      "delta": 0,
      "tracked": true,
      "explained": true,
      "beyond_event_horizon": false,
      "attribution": null,
      "event_count": 4
    }
  ]
}