Reliability policy

What every listing has to pass before it appears, how we score it, and what happens when a server stops being reliable.

Why this exists

A Model Context Protocol server sits between an AI agent and a real system — your database, your codebase, your billing provider. A broken MCP is a production incident in a chat tab. We vet every listing so buyers can trust the directory to filter out the ones that will embarrass them in front of their users.

Hard gates

Every listing must pass all six hard gates before it goes LIVE. Failure of any gate blocks the listing from public search and category pages.

repo_reachable
Repo reachable

The repository URL must respond with HTTP 200 (or a 301/302 redirect that resolves). Unreachable repos fail immediately.

license_ok
Permissive license

SPDX-detected license must be MIT, Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, 0BSD, or Unlicense. Missing license is a hard fail; other licenses trigger manual review.

readme_ok
README present

README must exist and be at least 500 characters. Anything shorter is treated as an empty scaffold and blocked.

has_releases
At least one release or tag

The repo must have published at least one release or git tag. Soft-warned if absent — acceptable for very new projects, but weighted against the score.

install_parses
Parseable install command

Install command must start with a recognized package manager: npx, pnpm, yarn, pip, uvx, uv, docker, go, cargo, bun, or deno.

recent_activity
Recent activity (≤180 days)

Last push must be within the last 180 days. Quiet repos are flagged — we assume abandonment until proven otherwise.

Soft signals

After the hard gates, we compute a 0–100 reliability score from public signals. The score appears on every listing and is used to rank within categories.

SignalWeightHow it’s measured
GitHub starsup to 20 ptsLog-scaled so a repo with 10k stars doesn't drown out one with 500. Prevents popularity from dominating the score.
Push recencyup to 20 ptsLinear decay over the last 365 days. A repo pushed yesterday gets full credit; one pushed 6 months ago gets roughly half.
Forksup to 10 ptsLog-scaled community signal. A proxy for how many people have bothered to run this locally.
Release signal10 ptsFlat bonus for a PASS on the has_releases gate — distinguishes 'shipped' from 'experimental'.
Base score40 ptsEvery listing that clears the hard gates starts at 40. Soft signals stack on top, capped at 100.

Scoring bands

0–35Flagged

Hard fail or regression. Hidden from public search and category pages. Vendor is notified with a 7-day grace period.

40–59Basic

Gates passed, but weak community signal. Usable, but we recommend checking the repo yourself before shipping it to production.

60–79Strong

Active development, permissive license, shipped releases. Safe default for most integrations.

80–100Exceptional

Consistent activity, real community, clean licensing, and shipped cadence. The servers we'd wire into our own stack.

Cadence and flagging

  • Daily re-check. Every LIVE listing is re-checked every 24 hours by a scheduled job. Each run updates the score and the lastCheckedAt timestamp that’s visible on the listing page.
  • Auto-flag at score 40. Listings that fall below 40 or fail any hard gate are set to FLAGGED and removed from search and category pages. The listing URL still resolves so existing backlinks don’t 404, but a banner warns visitors.
  • 7-day grace period. Vendors get an email the moment a check regresses. If the listing passes again within 7 days, it returns to LIVE with no status history penalty. After 7 days without a fix, it stays flagged until re-submitted.
  • Paid tiers don’t override. Featured placement, verified badge, and premium profile all disappear while a listing is flagged. We refund the prorated portion on request.

Frequently asked

Why do some MCP servers not appear in search?

Listings with a reliability score below 40, or that fail a hard gate (unreachable repo, missing license, broken README), are flagged and hidden from public search and category pages until the issue is resolved. Vendors are notified first with a 7-day grace period.

How often are MCPs re-checked?

A scheduled reliability check runs every 24 hours against every LIVE listing. If a repo goes down, loses its license, or stops receiving commits for more than 180 days, the score falls and the listing may be flagged.

Does paying for a listing affect the reliability score?

No. Paid tiers buy visibility — featured placement, verified badge, editorial. They never raise or protect a reliability score. A flagged listing is hidden from search regardless of tier.

What licenses are considered permissive?

MIT, Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, 0BSD, and Unlicense. Other detected licenses trigger a soft warning and are flagged for manual review rather than auto-approved.

What if the repo isn't on GitHub?

The repo-reachable check still runs (plain HTTP). GitHub-specific checks — license detection, README size, release history, push recency — are marked SKIPPED rather than failed. These listings receive extra human review before going LIVE.

Can I appeal a flag?

Yes. Vendors receive an email with the specific check that failed and a 7-day grace period. Push a fix, re-run the check from the dashboard, and the listing returns to LIVE automatically once the gates pass.

Think a listing is wrong?

Report a stale, broken, or miscategorized MCP and we’ll re-check within 24 hours.