What changed in MCP packages and agent skills after people started trusting them · last 30 days · by PulseFeed · MCP Observatory · State of MCP Security
Watching 26,856 servers across the entire MCP registry — metadata diffed daily. Depth audit (install scripts, ownership, provenance) runs on the audited subset.
npm i. Existing defences against that are local — a CLI diff you have to run yourself, a runtime proxy inside your own perimeter, or a changelog the vendor writes voluntarily. All of them mean the first victim is never protected.curl -s "https://pulsefeed.dev/mcp/drift.json?packages=pkg-a,pkg-b&days=7"Put it in your CI — one step, no key, fails the build when a dependency you already trust changes dangerously:
- uses: Nikolife2016/mcp-drift-action@v1github.com/Nikolife2016/mcp-drift-action
https://pulsefeed.dev/mcp/drift.rss?packages=pkg-a,pkg-bGet woken up, not notified later — a webhook fires the moment we see it, for your packages only:
curl -X POST https://pulsefeed.dev/mcp/alerts/subscribe -H 'content-type: application/json' -d '{"url":"https://your-endpoint","packages":["io.github.you/your-server","your-npm-pkg"]}'
We post a confirmation to that webhook containing a link; opening it activates the subscription. A webhook nobody confirms never receives anything — otherwise anyone could point our traffic at your endpoint. Only ownership changes, install scripts appearing, removals, lookalike names and resurrections are sent; new versions are not, because being woken for a release is how you learn to ignore the channel.[](https://pulsefeed.dev/mcp/drift)Use your registry name (
io.github.you/your-server) or your npm package name. A green badge is a claim about your package, so we only make it when the package is in the snapshot — otherwise it reads unwatched./mcp/drift.json?days=…, /mcp/drift/history), any depth for your own packages (?packages=), the badge, the webhook alerts and the CI action. No key, no payment, CORS-enabled; each day's dataset manifest is signed (Ed25519) and anchored in Bitcoin via OpenTimestamps so the series cannot be quietly rewritten: /anchors/latest.json · key /.well-known/manifest-signing-key.json.
Full feed: /mcp/drift.json · /mcp/drift.rss · single package: GET /mcp/verify?package=<name>
Events come from PulseFeed's own daily audit of the MCP package population — npm metadata, install scripts, ownership, provenance, repository, licence and liveness, re-read every night and diffed against the previous snapshot. Series started 2026-08-01. A drift event cannot be reconstructed after the fact: without yesterday's snapshot there is nothing to compare against.
Severity: high — code execution, ownership or source disappeared; medium — attack surface grew or provenance broken; low — informational, including fixes by the author. Window: 30 days · 17743 events · generated 2026-09-04T08:05:03.652Z.
MCP Observatory · All servers · State of MCP Security · Methodology