You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Feature request: surface target changes between server versions (listing swaps) #1706
Problem. A user approves an MCP server by its registry name, but a client installs whatever that name resolves to today. Nothing tells the user when the target behind the name changes: a new remote domain, or a package now published by a different owner.
Data. We compared the current version of every server in the official registry with the first version published under the same name (10 Oct 2026 dump: 142,002 versions of 41,351 servers). 1,075 servers now reach a different remote domain or package owner than their first version; 698 of those kept the same title and description. Most are probably legitimate (rebrands, hosting moves, handovers), but a takeover looks identical. Aggregate method and reproduction script: https://github.com/bl014h/atpp/tree/main/research/listing-swap (no server is named).
Proposal. Two small, opt-in signals:
Registry: expose, per version, whether its remote domains or package owners differ from the previous version (or from the first), so clients don't each have to diff history.
Clients: when an installed server's target changes on update, ask again — the way a phone asks again when an app requests a new permission — instead of silently following the name.
Related: pinning by digest helps (@sha256: for OCI, exact versions for npm/PyPI), and npm/PyPI Sigstore build provenance lets a client check the package was built from the repository the listing declares.
For transparency: we (Redthread) run a daily signed scan of the registry that flags this as a target-stable check, and the verifier is open source. Happy to share the dataset or help with a reference implementation if the registry or client maintainers are interested.
The 698-of-1,075 figure (same title and description, different target) is the striking one, since that's exactly what a takeover would look like. The client-side half of the proposal seems most valuable: treating a changed remote domain or package owner like a new permission request. One addition: the same "ask again" logic arguably applies when a server's tool definitions change materially (new write-capable tools, changed annotations), not just its target, since that changes what the user originally approved.
Activity
kaspermuutra-dotcom commentedon Oct 20, 2026
The 698-of-1,075 figure (same title and description, different target) is the striking one, since that's exactly what a takeover would look like. The client-side half of the proposal seems most valuable: treating a changed remote domain or package owner like a new permission request. One addition: the same "ask again" logic arguably applies when a server's tool definitions change materially (new write-capable tools, changed annotations), not just its target, since that changes what the user originally approved.
Kasper