How OpsMCP scores MCP server safety

OpsMCP scores each MCP server from 0 to 100 across four factors: tool capability 35, access 25, maintenance 20, and publisher 20. An input that could not be measured earns no points, and the grade is marked Provisional and cannot be an A.

Rubric version 2026-10-16.3.

How the score works

Every server gets a score from 0 to 100. It is the sum of four factors:

FactorPoints
Tool capability 35
Access required 25
Maintenance 20
Publisher 20

A script builds the score from public data: the official MCP Registry, GitHub, and npm or PyPI when a package is named. Nobody types the numbers in by hand.

Tool capability (35 points)

This factor asks what the tools can do to your systems.

Each tool is classified by the verb in its name, or in its description if the name has none.

If a tool matches more than one class, the most severe one wins. A server where every tool only reads gets the full ratio. A server where every tool is destructive gets none. Write tools count halfway.

A documented read-only mode earns back half of the points lost to write and destructive tools.

Tools that match no listed verb are marked unknown. They are not guessed into a class. Instead, they lower the points this factor can earn. If a server reports more than 150 tools and nobody has checked that count by hand, this factor stays partial and cannot earn its full points.

Access required (25 points)

This factor asks how much trust the server needs.

A variable counts as a secret when its name contains TOKEN, SECRET, PASSWORD, API_KEY, APIKEY, or CREDENTIAL.

Maintenance (20 points)

This factor asks whether anyone is still looking after the code.

An archived repository scores 0 for the whole factor. The raw dates and counts are still shown.

Publisher (20 points)

This factor asks who stands behind the server.

The vendor allowlist is printed on this page. Being on GitHub as an organization does not make a publisher the official vendor.

Grades

The letter comes straight from the score.

GradeScore
A 85 to 100
B 70 to 84
C 55 to 69
D under 55

Provisional grades

A grade is complete only when all four factors are fully scored. If any part of any factor could not be measured, the grade is provisional, and the grade pill says so.

The rules keep a gap from helping a server:

A grade stops being provisional when every input for all four factors is measured. That happens in one of two ways. A later data run measures the missing inputs, or the OpsMCP editor adds recorded evidence for the missing factor. That evidence is shown on the server's page.

How scores get updated

Data is refreshed when the ingest script runs; each page shows its fetch date. Manual reviews are planned; none have been done yet. Nobody can pay to change a score.

Reporting a wrong listing

If a listing looks wrong, use the Report a listing link in the footer. It opens an issue in the public opsmcp-listings repository on GitHub. You can also suggest a server that is not listed yet.

A report does not change a score by itself. The score changes only after the reported fact is verified, and the change is tracked in the public opsmcp-listings GitHub issue for that report.

Hands-on testing

Hands-on testing is a separate record with a date, notes, and what the write tools actually did. It does not change the score. A server shows a Hands-on tested badge only when that record exists. No server has been hands-on tested yet.

What we leave out

SCADA, OT, and industrial-control servers are filtered out. Offensive-security projects, such as exploit and red-team tools, are also left out. The directory is for running IT systems, not attacking them.

What a score does not mean

A score is not a security audit. Nobody has read the code line by line, and nobody has checked what each tool does in practice unless a Hands-on tested badge says so.

A high score is not a guarantee that a server is safe to connect. A low score does not mean a server is malicious. The score reflects public signals on the date the data was fetched, run through the rules on this page. Check the tools, the permissions, and the code yourself before you grant access.

Official-vendor allowlist

Rubric version 2026-10-16.3.