A client only needs to know when one file, file:///project/config.json, changes on a server that advertises resource subscriptions. It does not care when resources are added to or removed from the server's resource list. Which approach fits this need?
Select an answer to reveal the explanation.
Short Explanation
It's the difference between watching one mailbox and watching the whole street for new houses. You want resourceSubscriptions with that one URI, which gives you resources/updated. The trap is list_changed — it fires when the list changes, not when a file's contents do.
Full Explanation
Since 2026-07-28, change notifications are opt-in through subscriptions/listen, whose notifications filter separates two ideas. resourcesListChanged asks for notifications/resources/list_changed, which signals that the set of available resources changed. resourceSubscriptions takes an array of URIs and asks for notifications/resources/updated whenever one of those specific resources changes. A client that cares about one file's contents lists that URI and handles the updated notification, then reads the resource again. Subscribing to list changes misses the point, because editing an existing file does not alter the resource list, so the client could wait forever. resources/subscribe and the HTTP GET stream are legacy mechanisms replaced in this revision by the single subscriptions/listen stream. Polling on ttlMs treats a freshness hint as a timer; the caching rules say clients should not use TTL as a polling interval, and any client that does poll must apply jitter and backoff. Exam caveat: the server must support the subscribe feature of the resources capability, and its acknowledgment reflects which subscriptions it agreed to honor. Operational check: confirm notifications/subscriptions/acknowledged echoes the config URI under resourceSubscriptions before relying on updates.