modelcontextprotocol / modelcontextprotocol/servers

Four archived reference servers still pull ~214k installs/week, and their npm deprecation message points at npm support rather than a replacement

Open
#4,785 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
90.5k
Forks
11.7k
Avg merge
2d 2h
Merged PRs (30d)
5

Description

Measured today (2026-09-09), live from api.npmjs.org:

Package Downloads/week Version Published
@modelcontextprotocol/server-postgres 95,430 0.6.2 2026-07-03
@modelcontextprotocol/server-github 84,416 2025.4.8 2026-07-03
@modelcontextprotocol/server-puppeteer 21,273 2025.5.12 2026-07-03
@modelcontextprotocol/server-brave-search 13,250 0.6.2 2026-06-04
Total 214,369

All four are deprecated on npm and live in modelcontextprotocol/servers-archived, archived with its last push on 2025-05-28. That README states plainly:

NO SECURITY GUARANTEES ARE PROVIDED FOR THESE ARCHIVED SERVERS.

That decision is clear and I am not questioning it. The gap is that the decision is not reaching the people still installing these — 214k times a week.

Why the deprecation notice isn't carrying the message

Every one of the four carries npm's generic default text:

npm warn deprecated @modelcontextprotocol/server-postgres@0.6.2:
Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

npm prints this on every single install, which makes it the one channel that already reaches all 214k. But it currently sends people to npm's support desk, which cannot help with an MCP question, and it names no replacement and no security status.

Someone installing server-postgres today sees a generic "no longer supported" line, has no reason to think it means unmaintained, archived, and explicitly outside any security guarantee, and carries on — with a server holding database credentials.

Two things that don't line up

1. There is no replacement to migrate to for any of the four. modelcontextprotocol/servers/src currently holds everything, fetch, filesystem, git, memory, sequentialthinking, time. Postgres, GitHub, Puppeteer and Brave Search have no successor there. So a user who correctly reads the warning and goes looking for guidance finds none, which is a plausible reason the install numbers haven't moved.

2. There is no route to report anything about them. modelcontextprotocol/servers/SECURITY.md says this repository is not eligible for vulnerability reporting and to use the relevant SDK repo — but these are servers, not SDKs, and their own repo is archived and read-only. If someone finds a problem in server-postgres tomorrow, there is nowhere for it to go. This matters more for these four than for the rest of the archive: postgres and github are the two that hold credentials.

Suggested fix

Rewriting the npm deprecation string is a single command per package, needs no release, and lands on every future install immediately:

npm deprecate @modelcontextprotocol/server-postgres@"*" \
  "Archived and unmaintained; no security guarantees. See https://github.com/modelcontextprotocol/servers-archived"

Even that much would turn "contact npm support" into something a user can act on. If a recommended alternative exists for any of the four, naming it there would do more than anything else available.

A line in the main README pointing at the archive, and a sentence in SECURITY.md stating where (or that) reports on archived servers are accepted, would close the rest.


Happy to open a PR for the README and SECURITY.md wording if that's useful — the npm side needs publish rights, so that one can only come from a maintainer.

For context on why I was measuring this: I maintain a scanner for MCP server configurations, and unpinned or unmaintained server packages are one of the things it flags. These four kept coming up with install counts that didn't match their archived status, which seemed worth reporting rather than just detecting.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the archived repository README and the main repository's SECURITY.md, then review how the four npm packages are currently deprecated. Update the documented archive and reporting guidance, and confirm the final wording for npm deprecation notices with a maintainer who has publish rights. Done means users receive actionable archive, security, and replacement guidance where available.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
documentation, security
Issue type
Documentation
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.