Registry snapshot5 Nov 2026
Entries checked55,934 active
Public sourcesOSV, NVD, GitHub API
Published15 Nov 2026 · Team TrustedMCP

MCP Registry security: headline numbers

5 Nov 2026 snapshot
Counts first, each with its base and what it doesn't mean.
What we foundCountShare of baseWhat it doesn't mean
Entries a package scanner can check 19,765 of 55,934 35.3% of all entries Coverage of the scanner, not of the registry.
Checkable entries with a flagged version 9 of 19,765 0.05% of checkable Not a safety rate. One of the 9 is a malware removal; 8 held up by hand.
Remote-only entries (no package to scan) 33,297 of 55,934 59.5% of all entries Not evidence of risk. Scanners can't see them.
Entries with no source link 19,146 of 55,934 34.2% of all entries Not proof of neglect. Many are hosted products.
Linked GitHub repos that don't resolve 3,965 of 29,540 13.4% of linked repos Not all deleted. Private and renamed repos look the same.
Reachable repos with no security policy 17,399 of 25,575 68% of reachable repos Says nothing about whether anyone answers a report.
Graded listings without full sign-in marks 150 of 207 72.5% of graded listings Our rubric (sign-in is 30 of 100 points), applied to popular servers we chose. As of 15 Nov.

Public data only, from one snapshot. Quote a figure with its base, for example "19,765 of 55,934 entries can be checked". What this doesn't measure.

Key findings: MCP vulnerabilities and the coverage gap

We looked at every active entry in the official MCP Registry on 5 November 2026, using public data only. Each finding gives the count with its base, what it means, and what to do about it.

  1. A package scanner can check 19,765 of 55,934 entries

    19,765 of 55,934 active entries (35.3%) have an npm, PyPI, NuGet or cargo package with a version that the OSV advisory database can look up. The other 36,164 (64.7%) can't be checked that way: 33,297 are remote-only, a URL someone else runs with no package to scan; 2,214 ship only as a container image or mcpb bundle; and 653 list neither a package nor a remote.

    What it means: for those entries, "no known advisories" means "unknown", not "clean". Remote-only isn't evidence of risk. Scanners just can't see it.

    What to do: treat a clean result for a remote-only server as unknown, and ask the vendor how they handle security reports. How the OSV lookup works

  2. 9 of the checkable entries list a version with a known advisory

    9 of 19,765 checkable entries (0.05%). That isn't a safety rate for the registry. 8 of the 9 held up when we read each one by hand, and one is a malware flag on a version npm has removed. For only 3 is the listed version also the package's newest release.

    What it means: the count is low, but the registry can go on listing a version that the package has already moved past.

    What to do: compare the version the registry lists with the package's newest release before you pin it. Read the hand check of all 9

  3. A third of entries have no source link, and 4,800 link to a dead repo

    19,146 of 55,934 entries (34.2%) have no source link. 3,965 of 29,540 linked GitHub repos (13.4%) don't resolve, and 4,800 registry entries link to one of those dead repos.

    What it means: often you can't read the code behind an entry. And a dead repo name is one that someone else might be able to register.

    What to do: open the source link before you install. If it's missing or dead, ask why. See where the source links go

  4. Most repos have no security policy, but few are stale

    17,399 of 25,575 reachable repos (68%) have no security policy. Only 1,957 of 25,575 (7.7%) are stale or archived.

    What it means: abandoned repos are less common than many people assume. The bigger gap is a clear way to report a flaw.

    What to do: if you maintain a server, add a security policy or turn on private vulnerability reporting. See the security policy and stale-repo figures

  5. Most CVEs that mention MCP don't land on a registry entry

    273 of 331 CVEs mentioning MCP, published 8 Jul to 5 Nov 2026, didn't match an entry by repo. In a random sample of 60, 54 were really about MCP, and 25 were in SDKs or larger products rather than standalone servers.

    What it means: many MCP flaws sit in the code around servers: SDKs, gateways and apps. It isn't a coverage figure for the registry.

    What to do: watch advisories for your MCP SDK and your client too, not only for the server. See what the CVE sample found

  6. 150 of 207 graded listings lack full sign-in marks

    150 of our 207 graded listings (72.5%) don't get full marks for sign-in (15 Nov). Sign-in is worth 30 of our rubric's 100 points, the most of the four checks: maintenance and known CVEs are worth 25 each, transport safety 20. Only 57 of 207 have scoped, revocable sign-in on by default, and none of the 35 with no sign-in grades above C.

    What it means: even among popular and vendor-backed servers, sign-in is the weakest check.

    What to do: prefer servers with scoped, revocable sign-in turned on by default, such as OAuth or scoped tokens. See how our graded listings score on each check

  7. 10 days on, the gaps held while the registry grew

    A full re-run on 11 Nov found 39,372 of 60,597 (65%) can't be checked, and the same 9 entries list an affected version. By 15 Nov the registry had 62,678 active entries, a net 6,744 more than at the snapshot.

    What it means: these gaps are part of how the registry is built, not a one-day blip.

    What to do: re-check the servers you rely on every month, not just on the day you install them. See the net change since the snapshot

MCP server advisory coverage: what a scanner can check

How the 55,934 active entries split: what the OSV advisory database can look up, and why the rest can't be checked.
  • Can be checked: npm, PyPI, NuGet or cargo package with a version 19,765 35.3%
  • Remote endpoint only: no package to look up 33,297 59.5%
  • Container image or bundle (oci, mcpb), with no npm, PyPI, NuGet or cargo package 2,214 4%
  • No package type or remote listed 653 1.2%
Can a registry entry be checked for known advisories? Of 55,934 active entries in the official MCP Registry on 5 November 2026, 19,765 (35.3%) can be checked and 36,164 (64.7%) can't. Of those that can't: 33,297 are remote endpoints only, 2,214 are container images or mcpb bundles only, 653 list no package type or remote. Of the 19,765 that can be checked, 9 list a version with a known advisory, and 8 of those held up in a hand check. 5 entries that pin a tag such as latest are left out of both groups. Can a registry entry be checked? Active entries in the official MCP Registry, 5 Nov 2026 55,934 active registry entries one per server record 19,765 35.3% can be checked npm, PyPI, NuGet or cargo package with a version 36,164 64.7% can't be checked no package the OSV database can look up Why they can't be checked 33,297 remote endpoint only, no package 2,214 container image or mcpb bundle only 653 no package type or remote listed In the 19,765 we can check 9 list a version with a known advisory. 8 held up when we read each one by hand. 5 more entries pin a tag such as "latest" and sit in neither group. TrustedMCP · State of MCP server security, Nov 2026 · CC BY 4.0
The same split as a flow, down to the 9 flagged entries. Download as SVG

19,765 of 55,934 active entries (35.3%) can be checked for known advisories. OSV tracks advisories by package and version, for ecosystems such as npm and PyPI. The other 36,164 (64.7%) can't be checked that way. They aren't shown to be safe or unsafe. We just can't say.

The 36,164 that can't be checked break down like this:

  • 33,297 are remote endpoints only. You connect to a URL that someone else runs, and there's no package for anyone to look up.
  • 2,214 ship only as a container image or an mcpb bundle. OSV doesn't track these by version.
  • 653 list no package type and no remote at all.

A further 5 entries pin a tag such as latest instead of a version, so OSV can't check those either. We left them out of the checkable base.

For 18,188 entries there's nothing to match on at all: no OSV-covered package and no GitHub repo. The rest of the 36,164 have a GitHub repo, which can only link them to a CVE that cites that repo.

What this means: most of the registry is hosted services and images, not packages. The advisory databases were built for packages. Until a remote server publishes its security record somewhere checkable, a clean scan tells you very little about it.

MCP vulnerabilities in the checkable entries

Registry-listed version has a known advisory: 9 of 19,765 entries (0.05%). That's low partly because only the checkable entries are in the base, and partly because OSV covers the package itself, not its dependencies.

"Registry-listed" matters. For only 3 of the 9 is the listed version also the package's newest release. In the others, the package has moved on while the registry still lists the affected version. One of the 9 is a malware flag rather than a flaw: that version was removed from npm, and the registry record still lists it. We can't tell why it was flagged or who was behind it.

We read all 9 by hand against the advisory text, and 8 hold as written. In the other one, the advisory covers the package version pinned in the registry record, not the server version the record shows. We ran no exploits, so this doesn't prove each flaw can be exploited. We didn't check the other 19,756 entries one by one, so 9 may not be complete.

What the hand check confirmed We read the flagged results by hand. 9 entries flagged with an affected version: 8 hold as written, 1 is about the pinned package version rather than the server version, and 1 of the 9 is a malware flag rather than a flaw. For 3 of the 9 the listed version is also the package's newest release; for 6 the package has moved on. 50 dead GitHub repos retested while logged out: all 50 still return 404. 60 unmatched CVEs that mention MCP, read one by one: 54 are about MCP, 1 is borderline, 5 only mention it. What the hand check confirmed Each flagged result read by a person, against the source 9 entries flagged with an affected version 8 hold as written. 1 is about the pinned package, not the server version. 1 of the 9 is a malware flag. Is the listed version the newest release? 3 yes. 6 no: the package has moved on, and the registry still lists the affected version. 50 dead repos retested, logged out 50 of 50 still return 404. Deleted, private and renamed repos look the same from outside. 60 unmatched CVEs that mention MCP 54 are about MCP, 1 is borderline, 5 only mention it. TrustedMCP · State of MCP server security, Nov 2026 · CC BY 4.0
What the hand check confirmed. We ran no exploits: this checks the advisory text, not whether a flaw can be exploited. Download as SVG
What the hand check found
What we checkedResult
Entries whose registry-listed version has a known advisory9 read by hand, 8 hold as written
Listed version is also the package's newest release3 of 9
Malware flags rather than flaws1 of 9
Random sample of GitHub repos that didn't resolve50 of 50 still returned 404
Random sample of unmatched CVEs that mention MCP54 of 60 really about MCP

We don't name the 9 entries or any publisher here. This report is about the registry, not about individual maintainers.

What this means: the registry record and the package can drift apart. A client that installs the version the registry lists can get an older, affected release even when a fixed one exists.

What each of the 55,934 active entries links to as its source.
  • Links to a GitHub repo that resolves 31,899 57%
  • No source link 19,146 34.2%
  • Links to a GitHub repo that doesn't resolve 4,800 8.6%
  • Links somewhere other than GitHub 89 0.16%

19,146 of 55,934 entries (34.2%) have no source link. 17,915 of those are remote-only, and some are hosted products that were never going to publish source. So this is a limit on checking, not proof of neglect.

3,965 of 29,540 linked GitHub repos (13.4%) don't resolve, and 4,800 registry entries link to one of them. A deleted repo, a private repo and a renamed repo whose redirect has gone all return the same 404, so we can't tell you which is which. We retested a random 50 without logging in, and 50 of them still returned 404. We don't list these repos, because a list of dead names could help someone take over a name.

Entries aren't projects. The 4 largest publishers account for 6,476 entries (11.6%), and one repo backs 2,356 entries on its own. That's why we count repos once each in the next section.

What this means: for 23,946 of 55,934 entries (42.8%) you can't read the code behind them, because there's no link or the link is dead. A dead link is also a risk on its own: if the old name can be registered again, the link could one day point at someone else's code.

Security policies and stale repos behind MCP servers

Everything we measured, including what looks fine. The bases differ, so read the count beside each bar.
  • Repos with no security policy 17,399 of 25,575 repos · 68%
  • Entries with no source link 19,146 of 55,934 entries · 34.2%
  • Linked GitHub repos that don't resolve 3,965 of 29,540 repos · 13.4%
  • Repos stale or archived 1,957 of 25,575 repos · 7.7%
  • Registry-listed version has a known advisory 9 of 19,765 entries · 0.05%
  • Remote endpoints on plain http 0 of 37,722 entries · 0%
  • Security policy: 17,399 of 25,575 reachable repos (68%) have none, and 22,720 entries link to those repos. This shows that a policy exists, not that anyone answers it. Organisation-level policies count.
  • Stale repos: 1,957 of 25,575 (7.7%). That's lower than many people assume. Stale means no push for 180 days, or archived (228 are archived). A push to any branch counts.
  • Plain http: 0 of 37,722 listed remote endpoints use plain http on a public host. We read the URLs as published and didn't connect to them.

What this means: the basics of hosting look fine: remotes use https, and most repos are still alive. What's missing is process. Two in three repos publish no security policy, so someone who finds a flaw may not know how to report it privately.

MCP CVEs that don't match a registry entry

CVEs mentioning MCP not matched to a registry entry by repo: 273 of 331, published 8 Jul 2026 to 5 Nov 2026.

This is not a coverage number. It doesn't mean that this share of MCP flaws sits outside the registry. Many are in SDKs and apps rather than listed servers, and some listed servers have no repo link to match on. CVEs also cluster: 10 of the sample below are one product, so a share of CVEs isn't a share of products.

We sampled 60 at random and read each one. 54 are really about MCP, 1 is borderline, and 5 only mention it. The sample came from our rebuild of the list from public NVD data, which found 271 unmatched where our scan found 273.

What the affected product is, in the sample of 60.
  • Standalone MCP server or gateway 35 58.3%
  • SDK or framework 6 10%
  • Larger product (app or platform) 19 31.7%

What this means: a server can be fine on its own and still inherit a flaw from the SDK it's built on or the app that hosts it. Those advisories never show up against a registry entry.

MCP server authentication: where our graded listings fall short

Besides the registry-wide checks, we grade selected servers by hand on four checks worth 100 points: authentication (30), maintenance (25), known CVEs (25) and transport safety (20). The grade is the total: A is 85 or more, B 70 to 84, C 50 to 69, D under 50. It's our editorial opinion from public signals. We picked these servers ourselves, mostly popular and vendor-backed ones, so they're not a sample of the registry. Our own MCP server is left out of every count here.

What a TrustedMCP grade is made of Each server we list is checked on four things from public signals. Authentication counts the most, 30 of 100 points: full marks for scoped, revocable sign-in on by default. Maintenance and known CVEs come next, 25 points each: full marks for activity in the last 60 days with more than one maintainer, and for no CVEs or each patched within 30 days. Transport safety counts a little less, 20 points: full marks when the transport fits its exposure, uses TLS and has no risky shell-out. The combined result gives a grade: A, strong on all four with at most one gap; B, solid with gaps in one or two checks; C, a real weakness to work around first; D, serious problems, look for an alternative. A grade is our opinion from public signals, not an audit. What a grade is made of Four checks, 100 points. Bar length shows the points. Authentication 30 of 100 points Full marks: scoped, revocable sign-in on by default Maintenance 25 points Full marks: active in 60 days, more than one maintainer Known CVEs 25 points Full marks: none, or each patched within 30 days Transport safety 20 points Full marks: fits its exposure, TLS, no risky shell-out A Strong on all four, at most one gap B Solid, with gaps in one or two checks C A real weakness: work around it first D Serious problems: look for an alternative Our opinion from public signals, not an audit.
What a grade is made of: authentication 30 points, maintenance 25, known CVEs 25, transport safety 20. A grade is our opinion from public signals, not an audit. Download as SVG
Listings with full marks on each check, out of 207 (15 Nov), with the points each check is worth.
  • Authentication (30 points): scoped, revocable sign-in on by default 57 of 207 listings · 27.5%
  • Maintenance (25 points): active in the last 60 days, more than one maintainer 67 of 207 listings · 32.4%
  • Known CVEs (25 points): none, or each patched within 30 days 196 of 207 listings · 94.7%
  • Transport safety (20 points): transport fits the exposure, no risky shell-out 134 of 207 listings · 64.7%
Grades of our 82 graded listings on the snapshot date (5 Nov).
  • A 31 37.8%
  • B 27 32.9%
  • C 19 23.2%
  • D 5 6.1%
Grades of our 207 graded listings on 15 Nov. We added listings after the snapshot, so the two charts aren't the same servers.
  • A 72 34.8%
  • B 70 33.8%
  • C 56 27.1%
  • D 9 4.3%
  • Snapshot (5 Nov): 31 A, 27 B, 19 C and 5 D, of 82. Sign-in on by default for 55, optional for 12, none for 15. 3 had a known CVE on record.
  • Sign-in (30 points): 150 of 207 listings (72.5%) lack full sign-in marks. Only 57 have scoped, revocable sign-in on by default. All 72 A grades have some sign-in, and none of the 35 listings with no sign-in grades above C (27 C, 8 D).
  • Maintenance (25 points): the next weakest check, with 67 of 207 at full marks. 90 of 207 are active but rest on a single maintainer, which costs part of the marks.
  • Known CVEs (25 points): the strongest check, with 196 of 207 at full marks. 7 have a known CVE on record: 2 B, 2 C, 3 D, no A. A CVE costs most when it stays open with no fix or mitigation.
  • Transport safety (20 points): 134 of 207 at full marks.

What this means: the servers people pick first are mostly active (169 of 207), and few carry CVEs. Where they fall short is how you sign in: many rely on one broad API key, on sign-in that's off by default, or on no sign-in at all. Whoever holds a broad key gets everything it can reach.

Each listing's page explains its grade and its biggest gap. Browse them in the MCP server directory, or read how we grade MCP servers.

Since the snapshot, net change (5 to 15 Nov 2026)

The headline numbers come from the 5 November snapshot, because that's the run we checked by hand. To see whether they still hold, we read two newer sources. Here is exactly what was re-run:

  • Re-run in full on 11 November: every registry check in the table below, with the same code as the snapshot.
  • Read from our live registry mirror on 15 November: entry counts, the can't-be-checked split and source links only.
  • Not repeated: the hand check. The newer figures haven't been read by a person.
The same checks on three dates. Net change is the newest figure minus the snapshot: entries added less entries removed.
Check5 Nov snapshot11 Nov full re-run15 Nov live mirror (counts only)Net change
Active registry entries55,93460,59762,678+6,744 entries
Can't be checked for known advisories36,164 (64.7%)39,372 (65%)40,964 (65.4%)+4,800 uncheckable
Registry-listed version has a known advisory9 of 19,7659 of 21,220 (the same 9)Not re-readNo change
No source link19,146 (34.2%)21,289 (35.1%)22,362 (35.7%)+3,216 entries
Linked GitHub repos that don't resolve3,965 of 29,540 (13.4%)3,995 of 30,762 (13%)Not re-read+30 repos
Repos stale or archived1,957 of 25,575 (7.7%)2,071 of 26,767 (7.7%)Not re-read+114 repos
Repos with no security policy17,399 of 25,575 (68%)18,142 of 26,767 (67.8%)Not re-read+743 repos
Remote endpoints on plain http0 of 37,7220 of 40,963Not re-readNo change
CVEs mentioning MCP not matched by repo (previous 120 days)273 of 331275 of 340Not re-readNot comparable: the 120-day window moved

The registry grew by a net 6,744 active entries in 10 days, about 674 a day, from 55,934 to 62,678. The number of entries that can't be checked rose by a net 4,800, to 40,964: 37,930 remote-only, 2,358 images or bundles, and 676 that list neither. That net rise is a different figure from the 4,800 entries that link to a dead repo; the two happen to match.

New advisories: our nightly scan, to 14 November, found 32 advisory records published since 5 November (31 distinct once aliases are merged): 30 from NVD and 2 from OSV. 14 matched 3 registry entries by package or repo. 18 matched no entry. None hit a server we grade. Neither OSV advisory affects the version the registry lists. NVD gives no reliable version for registry entries, so we can't say that for the NVD matches.

Severity of the 32 advisory records published since 5 Nov, to our 14 Nov scan, as each source rated them.
  • Critical 1 3.1%
  • High 11 34.4%
  • Medium 18 56.3%
  • Low 2 6.3%

What this means: 10 days is short, but nothing moved the main figures. If anything, the gap is widening: about 7 in 10 of the net new entries (71.2%) can't be checked, more than the 64.7% at the snapshot. Most of them are remote-only.

How to verify an MCP server before you install it

Before you install an MCP server: a six-point check Six checks before you install an MCP server. 1. Open the source link: Missing or dead? Ask the vendor why. 2. Compare versions: Listed version vs the package's newest release. 3. Look up advisories: OSV for packages; the vendor for remote servers. 4. Check how you sign in: Scoped, revocable, and on by default. 5. Look for a security policy: And commits in the last few months. 6. Pin what you checked: Then re-check every month. Before you install an MCP server Six checks from public data. A few minutes each. Open the source link Missing or dead? Ask the vendor why. Compare versions Listed version vs the package’s newest release. Look up advisories OSV for packages; the vendor for remote servers. Check how you sign in Scoped, revocable, and on by default. Look for a security policy And commits in the last few months. Pin what you checked Then re-check every month. TrustedMCP · State of MCP server security, Nov 2026 · CC BY 4.0
Before you install an MCP server: six checks from public data. Download as SVG

If your team is adopting MCP servers

  • For a remote-only server, read "no known advisories" as "unknown", unless you have other evidence. Ask the vendor who to contact about security, and how they sign you in.
  • Open the source link before you install. If it's missing or dead, ask why.
  • Compare the version a registry lists with the package's newest release. They can differ, and pin the one you checked.
  • Prefer scoped, revocable sign-in over one broad API key. It's the check our graded listings fail most.
  • Watch advisories for your MCP SDK and client as well as the server, and re-check every month.
  • Our MCP server security checklist covers the rest, how to check an MCP Registry entry walks through one, and the MCP Registry watch list shows what our scan finds for each entry.

If you maintain an MCP server

  • Add a security policy, or turn on private vulnerability reporting on GitHub, so people can tell you about a flaw privately.
  • Publish a new registry version when you release, so the registry doesn't keep listing an old, affected version.
  • Link your source repo in the registry record, and update the link if you rename or move the repo.
  • If you run a remote-only server, say publicly where security fixes are announced. Nobody can look you up in OSV.

If you build a registry or an MCP client

  • Show "can't be checked" as its own state. Don't show it as a clean result.
  • Flag entries whose listed version trails the package's newest release, and entries whose source link no longer resolves.
  • Surface known advisories at install time, from OSV for packages and from the publisher for remote servers.

Methodology: how we checked the MCP Registry

How we check one registry entry Five steps, public data only. 1: read the registry entry: package type and version, remote URL, source link. 2: if it has an npm, PyPI, NuGet or cargo package with a version, ask OSV for advisories on that exact version; 19,765 entries can be checked this way and 36,164 can't. 3: if it links a GitHub repo that resolves, ask GitHub for last push, archived status and security policy, and NVD for CVEs that cite the repo; 19,146 entries have no source link and 4,800 link to a repo that doesn't resolve. 4: if it lists a remote URL, read it for plain http without connecting; 0 of 37,722 use plain http on a public host. 5: read the flagged results by hand: 9 version flags, 50 dead repos and 60 CVEs. How we check one registry entry Public data only. Nothing installed, run or called. 1 Read the registry entry Package and version, remote URL, source link. 2 Package with a version? Ask OSV Yes, 19,765: advisories for that version. No, 36,164: can't be checked. 3 GitHub repo? Ask GitHub and NVD Yes: last push, archived, security policy, and CVEs that cite the repo. No: 19,146 have no link; 4,800 a dead one. 4 Remote URL? Read it, don't call it Plain http on a public host: 0 of 37,722. 5 Read the flags by hand 9 version flags, 50 dead repos, 60 CVEs.
How we check one registry entry, from public data only. Download as SVG
  • Official MCP Registry: 55,934 active entries, as mirrored on the snapshot date. Deleted and deprecated entries are left out.
  • OSV (which includes GitHub Security Advisories): advisories for each npm, PyPI, NuGet or cargo package, at the version the registry record pins.
  • NVD: CVEs that mention MCP, over 120 days, matched to an entry only when a CVE reference cites the entry's GitHub repo.
  • GitHub API: last push, archived status and security policy for each of 29,540 distinct repos. Monorepos back many entries, so each repo counts once.
  • Hand check: we read every entry flagged with an affected version against the advisory text, retested a random 50 dead repos without logging in, and read a random 60 of the unmatched CVEs.
  • Our grades: four checks, authentication (30 points), maintenance (25), known CVEs (25) and transport safety (20), scored from each server's public repo, docs and advisories, and re-scored when something changes. The grade is our opinion, from public signals.
  • Since the snapshot: the 11 Nov re-run is the same command on newer data. The 15 Nov figures are read-only counts from our registry mirror, our nightly advisory scan and our listings, with the queries listed in the data download.

Everything comes from public data. We didn't install or run any server, and we didn't connect to any endpoint.

What this doesn't measure

  • This isn't an audit. It's a signal from public data, from one snapshot.
  • Dependencies: OSV was asked about each package itself, not what it depends on.
  • Anything outside the official registry: other directories, and servers listed nowhere.
  • Authentication across the registry: stdio servers can't be observed, and probing remote ones would be active scanning.
  • Unpinned versions: pinning is set in each client's config, and we don't have that data.
  • Broad permissions: we have no tool or scope data.
  • Injection and path-traversal rates: these need code analysis. We don't present other people's figures as our findings.
  • CVE matching by repo: a CVE that doesn't cite a repo can't be tied to an entry, so some matches are missed.
  • Our graded listings: we chose them, so they don't stand for the registry as a whole.

Glossary of MCP security terms

Registry entry
One server record in the official MCP Registry. One project can publish many entries.
Remote-only
An entry that lists only a URL to connect to. Someone else runs the code.
OCI image, mcpb bundle
Ways to ship a server as a container image or a packaged bundle, rather than as an npm or PyPI package.
OSV
An open database of security advisories, keyed by package and version. It includes GitHub Security Advisories.
NVD and CVE
A CVE is a public ID for one security flaw. The NVD is the US government's catalogue of CVEs.
Advisory
A published notice of a flaw: which versions it affects and how to fix it.
Registry-listed version
The package version that the entry's newest registry record points to. It can be older than the package's newest release.
Security policy
A file or setting that tells people how to report a flaw privately, usually SECURITY.md on GitHub.
Stale repo
No push to any branch for 180 days, or archived.
Net change
The newest figure minus the snapshot figure: entries added less entries removed.
Grade
Our editorial A to D rating of a server we list, from four checks worth 100 points, on public signals. It isn't a community rating.

MCP server security FAQ

How many MCP servers are there?

The official MCP Registry had 55,934 active entries on 5 November 2026 and 62,678 on 15 November 2026. That's a count of entries, not separate projects: the 4 largest publishers account for 6,476, and one repo backs 2,356 on its own. Servers listed only in other directories, or nowhere, aren't in it.

Does "no known advisories" mean an MCP server has no flaws?

No. Only 19,765 of 55,934 registry entries have a package an advisory database can look up. For the other 36,164, including 33,297 remote-only servers, "no known advisories" means nobody can tell. Even for packages, the check covers the package itself, not its dependencies.

How do I verify an MCP server before I install it?

No public check can prove a server is safe, but six checks from public data take a few minutes: open the source link; compare the version the registry lists with the package's newest release; look up advisories (OSV for packages, the vendor for remote servers); check that sign-in is scoped, revocable and on by default; look for a security policy and recent commits; then pin the version you checked and re-check every month. Start with our server check, then follow how to check a registry entry.

What kinds of MCP vulnerabilities does this report cover?

Known, published ones: advisories in OSV for the package a registry entry lists, and CVEs in the NVD that mention MCP. It doesn't rate flaw types such as injection or path traversal, which need code analysis. It does show where published flaws sit: of 60 CVEs mentioning MCP that we read, 35 were in standalone servers or gateways, 6 in SDKs and 19 in larger products. Our guide to MCP vulnerabilities covers the common types.

Why don't you name the affected entries or the dead repos?

This report is about the registry, not about individual maintainers. A list of dead repo names could also help someone take over a name and serve their own code under it. Each entry's own record is on our registry watch list.

How is this report different from your server grades?

This report checks the whole registry automatically, with a few signals per entry. Our grades cover a smaller set of servers that we read by hand, on four checks worth 100 points. Both are assessments from public signals, not audits. See how we grade servers.

Can I use this data?

Yes. The data is under CC BY 4.0: use it, chart it or republish it, and credit TrustedMCP. Quote each figure with its base, for example "19,765 of 55,934 entries can be checked". The files are in the download section.

Download the MCP Registry security data

The data behind the November 2026 report, as CSV and JSON, under CC BY 4.0. Start with README.md. No file names a registry entry, a publisher or a dead repo; editorial.csv names only the servers we grade, which are public on their own pages.

Files, sizes and what each one holds
FileSizeWhat it holds
state-of-mcp-security-2026-11.zip115 KBEverything below in one file.
README.md7.2 KBStart here: the results, every file and column, and the limits.
METHOD.md11.3 KBSources, definitions and exclusions for each check, and the hand check.
entries.csv1.2 MBOne row per active registry entry with the result of each check. No names.
repos.csv525 KBOne row per reachable GitHub repo: last push, archived, security policy. No names.
unreachable-repos-by-size.csv83 bytesThe GitHub repos that didn't resolve, as totals by how many entries link to each. No names.
editorial.csv10.4 KBOur hand-graded listings on the snapshot date, by name: grade, sign-in, transport, activity, CVEs.
summary.json13.5 KBEvery check exactly as the report run wrote it, with its base and exclusions.
report-page.json1.0 KBThe other snapshot figures on this page: the coverage split, the hand check, the CVE sample.
since-snapshot.json3.6 KBThe "since the snapshot" figures read on the publish date, with the queries behind them.
LICENSE18.2 KBThe licence, CC BY 4.0: use the data freely and credit TrustedMCP.

Cite or correct this report

How to cite this report

TrustedMCP. "State of MCP server security, November 2026." Registry snapshot 5 November 2026, published 15 November 2026. https://trustedmcp.io/reports/2026-11. Data under CC BY 4.0.

Quote a figure with its base, for example "19,765 of 55,934 entries can be checked" or "36,164 of 55,934 can't, 33,297 of them remote-only", and link back to this page so readers can see the method and limits. The newest edition is always at trustedmcp.io/mcp-security-report.

Found a mistake?

Tell us and we'll correct it. That goes for maintainers who dispute anything here, too: contact us. We'll note every correction on this page. To hear about the next report, sign up below. Every month's report stays online at State of MCP server security reports.

We build MCP servers for clients. If you want one built, or your own server reviewed against these checks, get in touch.