Methodology
How a score is made
AgentScore publishes a score out of 100 for AI agents, MCP servers, and x402 paid agent APIs. The score is a sum of public checks. It is a record of that evidence, and it is not a recommendation to use or avoid an entry.
Principles
- Public information only. Every check needs a public link. A field with no link scores 0 and is marked insufficient data.
- No payments. An x402 endpoint is checked with one unpaid request. A 402 response that states the payment requirement counts as reachable.
- No accounts, and no contact with the maker. A free test is tried only when it does not need either.
- Insufficient data stands in place of a guess. The missing check stays missing.
The evidence window is the 90 days ending on the scoring date. For this file, that is 5 August 2026 through 3 November 2026 (2026-08-05 through 2026-11-03).
Weights
The total is Reliability 30 + Transparency 20 + Maintenance 20 + Honesty 20 + Incidents 10.
| Reliability | Transparency | Maintenance | Honesty | Incidents | Total |
|---|---|---|---|---|---|
| 30 | 20 | 20 | 20 | 10 | 100 |
Who is ranked
Five gaps are tracked: no free test was possible, there is no public repository, issue counts are missing, the price cannot be checked, and the claim cannot be checked. An entry with two or more of those gaps is labelled INSUFFICIENT DATA in its reason.
This site uses that label as written. It does not re-score the row. Labelled entries keep the total from the file and are left off the leaderboard. On this publication, 70 entries are ranked and 70 are listed under Insufficient data.
Ranked entries are sorted by total, high to low. Tied totals share a rank, and the next rank skips, so two entries tied at rank 2 leave the following entry at rank 4. Within a tie, rows are listed by agent id so the order stays stable.
Unranked entries are listed by agent id. The scoring notes call that list thin evidence. A lower total there is a thinner file, and it is published separately from the leaderboard.
The checks
Each entry gets six checks: reachable, documented, maintained, honest pricing, claims versus reality, and incidents. The points below are the fixed rules. Machine-readable listings count as documentation: a Bazaar input and output schema and amount, a Smithery tool list, or an MCP initialize response that includes serverInfo.
Reliability, 30
- Reachable, 15. A normal success scores 15, and so does the response the protocol expects: 401 when auth is required, 402 for x402, or 405 for an MCP GET. A 404, a server error, a timeout, or a template URL that cannot be called scores 0.
- Docs reachable, 5. The docs URL returns a success response.
- Test, 5. One free, no-account check returned a sensible result. For an MCP server, that is an initialize response whose serverInfo names the listed product. An Agentverse directory record shows that the agent is registered. It counts for reachability only, not for these test points. If a test would need auth or a payment, the score is 0 and the row says “test not possible (auth/pay)”. A row can also say the live test was skipped, with the reason written after “skipped:”. That status is shown as written. It is separate from an insufficient-data label, and the entry stays on the leaderboard unless the reason also says INSUFFICIENT DATA.
- Latency, 5, on the main request. Under 1 second scores 5. From 1 to 3 seconds scores 3. Over 3 seconds scores 1. No response scores 0.
Transparency, 20
- Capabilities, 8. Docs or a README of at least 1,000 characters describe the tools or endpoints, or there is a machine-readable tool or schema list: 8. Only a one-line listing description: 3. Nothing: 0.
- Pricing, 6. An explicit price is public: a dollar amount, a free plan, an open-source license for self-hosting, or an x402 amount. None found: 0.
- Limits, 6. Rate limits, quotas, credits, or maximum sizes are stated. None: 0.
Maintenance, 20
- Recency, 12. Last commit within 30 days: 12. Within 90 days: 8. Within 180 days: 4. Older: 0. An archived or deprecated repository scores 0 for the whole Maintenance category.
- Issue health, 8. Closed issues as a share of open plus closed: 80% or more scores 8, 60% or more scores 6, 40% or more scores 4, under 40% scores 2. Issues disabled, or no counts: 0. Counts come from the public issues search page. If only one of open or closed is missing, the missing one is treated as 0. If both are missing, issue health is insufficient data.
- No public repository (hosted-only, x402, or Agentverse): maintenance is insufficient data. A labelled stand-in is used instead. A platform record updated within 30 days — a Bazaar last-updated time, or an Agentverse record that is active and unexpired — scores 8. Otherwise 0. Issue health stays 0.
Honesty, 20
- Pricing, 10. The listing matches the docs or the live 402 exactly: 10. x402 amounts have to match exactly. A difference that is disclosed in both places: 5. An undisclosed mismatch: 0. Not checkable: 0. Open source with a license and no paid claim: 10.
- Claims, 10. The docs or a live response back the listing’s claim: 10. Partly backed, or an x402 endpoint exists but the output cannot be checked without paying: 5. Listed as active while the repository is archived or deprecated, or platform metrics contradict the listing: 0. No evidence: 0.
Incidents, 10
The incidents score starts at 10 and has a floor of 0.
- A confirmed advisory — a GHSA, a CVE, or a vendor bulletin — for this exact product, published inside the window: critical or high is −5, medium is −3, low is −1. One bulletin that covers several CVEs counts once, at its highest severity.
- A confirmed outage, data leak, or overcharge, from a vendor status page, a postmortem, or a maintainer acknowledgement: −5.
- An unconfirmed report, such as a single post or a third-party claim without a primary source, is not deducted. Only deductions written on the score row are shown here.
- It has to be the same product. The scoring notes record one boundary: CVE-2026-81421 is in the community project ddfourtwo/sentry-selfhosted-mcp, so it is not counted against Sentry’s official server.
- The date used is the earliest public disclosure. An advisory published before the window is outside it, even if a later CVE record falls inside. The notes’ example is the GitHub MCP advisory GHSA-w4q6, published 20 July 2026, which was already outside the first scoring window.
- A same-day batch from one vendor, fixed in one release, counts as one event at the highest severity. Different dates count separately. A suite or monorepo listed as one entry carries every advisory on that repository.
- Incident deductions are capped at 10. When the lines add up to more than that, the row says the uncapped total and that it was capped.
Scripted Reddit search returned HTTP 403 during collection and is not used as evidence.
Where the registry comes from
The registry is the set of rows in the registry file. It is a reviewed public sample, not a complete catalog of every agent or every paid endpoint.
The collection notes for 26 October 2026 describe the sources. The first 20 entries used the public GitHub API for stars and last-commit dates, and the CDP Bazaar discovery API for x402 prices. USDC amounts there use 6 decimals, so 10000 means $0.01. The next 80 entries came from the official MCP registry (26 rows), public pages that link to the same GitHub repository on the awesome-mcp-servers list, Glama, and mcp.so (13 rows), the Smithery registry (15 rows), the Fetch.ai Agentverse public search (6 hosted agents), and the CDP x402 Bazaar (20 rows). The Bazaar pull covered the first 10,000 of 78,127 listings, and each included host is that host’s top endpoint by 30-day calls. Five further entries were added on 27 October 2026.
Glama and mcp.so pages were used only when the page links to the same GitHub repository. Auth is recorded as “key” when a listing or README declares a key, token, or Authorization header. Otherwise the registry says the auth evidence was insufficient. Nothing in that pass was paid for, no account was created, and nobody was contacted.
This publication
Scoring rules v1, fixed 26 October 2026. The daily refresh uses those rules unchanged.
- Scores file
- scores_2026-11-03.csv
- Registry file
- registry.csv
- Scored at
- 2026-11-03 06:20 ET
- Entries
- 140 in both files
- Leaderboard
- 70 ranked · 70 insufficient data
Every deduction on a score row is listed with its link. Those lines account for 100 minus the total, after the incident cap. The one-sentence reason is assembled from the component scores: insufficient-data flags, incidents, an archived, deprecated, or stale repository, maintenance, a live test, thin docs, and pricing or claims.
Loading this site does not call GitHub, a registry, or any other service. To publish a new day, replace the CSVs in data/ and rebuild. The leaderboard reads whatever file is current.