modelcontextprotocol / modelcontextprotocol/registry
387 active servers declare neither remotes nor packages and cannot be reached
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 7.3k
- Forks
- 994
- Avg merge
- 4d 12h
- Merged PRs (30d)
- 19
Description
Describe the bug
387 servers with status: active declare neither remotes nor packages. They are published and discoverable, but their record contains no way for any client to reach or install them.
I found this while taking a census of the registry, not while trying to publish, so this is a data-quality observation rather than a publish-flow bug.
Numbers
Retrieved every record from GET /v0/servers by cursor pagination (August 2026): 82,994 version records, resolving to 25,125 distinct servers after filtering on _meta[...].isLatest.
| Finding | Count | Share of distinct servers |
|---|---|---|
No remotes and no packages |
393 | 1.56% |
...of which status: active |
387 | 1.54% |
| Still carrying the unedited description template | 8 | — |
status: deprecated but still listed |
262 | 1.04% |
Examples (all status: active, no transport declared)
ai.complyme.mcp/mcpv1.0.0ai.megastructure/arcv1.9.1app.qwady.thorns/thornguardv0.1.0bid.scope/healthcarev0.0.0capital.hove/read-only-mysql-mcp-serverv0.1.0
The 8 servers whose description is still the template string [describe what your server does]:
co.contraption/mcp, io.github.TranThienTrong/asset-auto-picker, io.github.arun250492/Personal-MCP, io.github.atarkowska/fastmcp-pdftools, io.github.augee99/mcp-weather, io.github.manoharanRajesh/python-version, io.github.preedew17/mcp-bookmark, io.github.shafarenkacfi/mcp-server-registration
Expected behavior
Publication could reject a server that declares neither remotes nor packages, since such a record cannot be acted on by any client. The template-description case is a one-line string check.
This is adjacent to #1193 and #1004 but distinct: #1193 concerns skipping deprecated servers during remote-URL validation at publish time, and this is about records that declare no transport to validate in the first place.
To Reproduce
python fetch_mcp_registry.py --out mcp-registry.jsonl
python -c "
import json
rows=[json.loads(l) for l in open('mcp-latest.jsonl',encoding='utf-8')]
none=[r for r in rows if not r.get('remotes') and not r.get('packages')]
print(len(none), 'of', len(rows), 'have no transport')
print(sum(1 for r in none if r.get('_status')=='active'), 'of those are active')
"
Retrieval script: https://github.com/ashishsinha1602/dataset-integrity-audit/blob/main/fetch_mcp_registry.py
Additional context
Counts are a snapshot from August 2026 and will drift. One caveat on methodology, in case it is useful to anyone repeating this: the endpoint returns one record per version, so measuring without filtering to isLatest inflates duplicate-description rates roughly 20x (74.5% vs 3.6%). The mean is 3.30 versions per server, with a maximum of 1,175.
Happy to open a PR adding the transport check if that would be welcome.
Filed from an organisation account. Author: Ashish Sinha (@ashishsinha1602), who is replying on this thread under that handle. Data and code: https://github.com/ashishsinha1602/dataset-integrity-audit
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the publication-validation path; the issue does not name a registry implementation file or test. Read fetch_mcp_registry.py to understand the observed records and reproduce the no-transport count. Done means publication rejects records with neither remotes nor packages, with coverage for the template-description check if that remains in scope.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, python
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 62/100