Skip to content

How Glama’s scores are calculated

The full audit trail, recomputed from the verdict data at build time through the same code that produced the leaderboard: verdict × quality × story weight per cell, cells sum to dimension scores, dimensions blend into the PA Score. Every number on the product page is reproducible from this page alone; for why the formula looks like this, see the methodology.

verdict factors: full ×1.0 · partial ×0.6 · disputed ×0.3 · none ×0.0 · n/a excluded from both sides · cell points = weight × quality × factor · cell max = weight × 10

PA Score25/100

Agent-ready 37.9 × 0.30 = 11.37

API quality 34.9 × 0.20 = 6.98

Openness 6.0 × 0.20 = 1.20

Built-in AI 24.0 × 0.15 = 3.60

Automation 15.0 × 0.15 = 2.25

(11.37 + 6.98 + 1.20 + 3.60 + 2.25) ÷ (0.30 + 0.20 + 0.20 + 0.15 + 0.15) = 25.40 ÷ 1.00 = 25.4

Scores are stored to 1 decimal; the product page’s pills round to whole numbers for display. Each dimension below shows the stories, verdicts, and cited evidence behind its number.

Agent-ready37.9/100×0.30 of the PA blend

Outside-in: can YOUR agent reach and drive this product — API, MCP, CLI, headless runs, agent docs.

Point an agent at llms.txt or agent-oriented docsweight 2

2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max

  • [probe] https://glama.ai/llms.txtPROBE llms.txt: HTTP 200 at https://glama.ai/llms.txt # Glama > A directory of 81,811 Model Context Protocol servers and 15,990 remote connectors, every one scanned, scored,
  • [probe] https://glama.ai/api/mcp/openapi.jsonPROBE openapi (2026-09-05): GET https://glama.ai/api/mcp/openapi.json returned HTTP 200 with an OpenAPI 3.0.3 description (9 documented paths) — an agent can generate a client for the platform API from this spec.
  • [probe] https://glama.ai/.well-known/api-catalogPROBE api-catalog (2026-09-05): GET https://glama.ai/.well-known/api-catalog returned HTTP 200 with an RFC 9727 linkset naming the platform APIs and their description documents — machine-discoverable API surface.
  • [probe] https://glama.ai/mcp.mdPROBE docs-md: HTTP 404 at https://glama.ai/mcp.md

Run the product headlessly / in CI for automationweight 2

2 (weight) × 4 (quality) × 0.3 (disputed) = 2.4 of 20 max

  • [claimed-docs] https://glama.ai/pricingAutomate workflows using schedules or webhooks.
  • [probe] https://glama.ai/api/mcp/v1/servers?first=3PROBE registry-api (2026-09-05): GET https://glama.ai/api/mcp/v1/servers?first=3 without credentials returned HTTP 401 with a JSON auth challenge ({"error":{"code":"unauthorized","message":"This endpoint requires an API key. Create one at https://glama.ai/settings/api-keys.\n\nUse of this data is governed ) — the registry API is live but requires an API key (attribution-licensed).
  • [probe] https://glama.ai/api/mcp/openapi.jsonPROBE openapi (2026-09-05): GET https://glama.ai/api/mcp/openapi.json returned HTTP 200 with an OpenAPI 3.0.3 description (9 documented paths) — an agent can generate a client for the platform API from this spec.
  • [probe] https://glama.ai/.well-known/api-catalogPROBE api-catalog (2026-09-05): GET https://glama.ai/.well-known/api-catalog returned HTTP 200 with an RFC 9727 linkset naming the platform APIs and their description documents — machine-discoverable API surface.
  • [community] https://news.ycombinator.com/item?id=49553343After uploading a new MCP version, the quality score test wouldn't rerun for 3 days despite manual resyncs and API attempts. Turned out a credit card was required for rebuild/release to work, which wasn't documented; adding a few dollars in credits fixed it and score jumped to A.
  • [community] https://news.ycombinator.com/item?id=49553343Neither I nor my AI agent could figure out over 4 days of searching documentation why the quality score retest wasn't triggering on the latest MCP version, even though the page showed updated README and release info.

Plug MCP servers into this product so it can use their toolsweight 3

3 (weight) × 7 (quality) × 1.0 (full) = 21.0 of 30 max

  • [claimed-docs] https://glama.ai/mcp/inspectorTest any MCP server from your browser. Supports every Model Context Protocol feature
  • [claimed-docs] https://glama.ai/mcp/gatewayEvery MCP call from your agents flows through Glama – so you know exactly what your AI is doing, and you decide what it's allowed to do.
  • [claimed-docs] https://glama.ai/mcp/hostingPer-tool access control – enable or disable individual tools
  • [claimed-docs] https://glama.ai/mcp/referenceSearch Glama's curated catalog of open-source servers and remote connectors, inspect their capabilities, and keep your own directory synchronized.
  • [claimed-docs] https://glama.ai/mcp/clientsMCP clients are the applications that connect to MCP servers.

Connect an agent via an official MCP serverweight 3

3 (weight) × 7 (quality) × 1.0 (full) = 21.0 of 30 max

  • [claimed-docs] https://glama.ai/mcp/inspectorTest any MCP server from your browser. Supports every Model Context Protocol feature
  • [claimed-docs] https://glama.ai/mcp/gatewayEvery MCP call from your agents flows through Glama – so you know exactly what your AI is doing, and you decide what it's allowed to do.
  • [claimed-docs] https://glama.ai/mcp/hostingPer-tool access control – enable or disable individual tools
  • [claimed-docs] https://glama.ai/mcp/referenceSearch Glama's curated catalog of open-source servers and remote connectors, inspect their capabilities, and keep your own directory synchronized.
  • [probe] https://glama.ai/llms.txtPROBE llms.txt: HTTP 200 at https://glama.ai/llms.txt # Glama > A directory of 81,811 Model Context Protocol servers and 15,990 remote connectors, every one scanned, scored,

Use an official CLIweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Drive the product through a documented public APIweight 3

3 (weight) × 6 (quality) × 0.6 (partial) = 10.8 of 30 max

  • [probe] https://glama.ai/api/mcp/v1/servers?first=3PROBE registry-api (2026-09-05): GET https://glama.ai/api/mcp/v1/servers?first=3 without credentials returned HTTP 401 with a JSON auth challenge ({"error":{"code":"unauthorized","message":"This endpoint requires an API key. Create one at https://glama.ai/settings/api-keys.\n\nUse of this data is governed ) — the registry API is live but requires an API key (attribution-licensed).
  • [probe] https://glama.ai/api/mcp/openapi.jsonPROBE openapi (2026-09-05): GET https://glama.ai/api/mcp/openapi.json returned HTTP 200 with an OpenAPI 3.0.3 description (9 documented paths) — an agent can generate a client for the platform API from this spec.
  • [probe] https://glama.ai/.well-known/api-catalogPROBE api-catalog (2026-09-05): GET https://glama.ai/.well-known/api-catalog returned HTTP 200 with an RFC 9727 linkset naming the platform APIs and their description documents — machine-discoverable API surface.
  • [probe] https://glama.ai/mcp.mdPROBE docs-md: HTTP 404 at https://glama.ai/mcp.md
  • [probe] https://glama.ai/openapi.jsonPROBE openapi: all candidate paths 404 (https://glama.ai/openapi.json, https://glama.ai/swagger.json, https://glama.ai/api/openapi.json, https://glama.ai/.well-known/openapi.json)
  • [community] https://news.ycombinator.com/item?id=49553343Neither I nor my AI agent could figure out over 4 days of searching documentation why the quality score retest wasn't triggering on the latest MCP version, even though the page showed updated README and release info.

Issue scoped/least-privilege API credentials for an agentweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

  • [claimed-docs] https://glama.ai/mcp/hostingPer-tool access control – enable or disable individual tools
  • [claimed-docs] https://glama.ai/mcp/gatewayEvery MCP call from your agents flows through Glama – so you know exactly what your AI is doing, and you decide what it's allowed to do.
  • [probe] https://glama.ai/api/mcp/v1/servers?first=3PROBE registry-api (2026-09-05): GET https://glama.ai/api/mcp/v1/servers?first=3 without credentials returned HTTP 401 with a JSON auth challenge ({"error":{"code":"unauthorized","message":"This endpoint requires an API key. Create one at https://glama.ai/settings/api-keys.\n\nUse of this data is governed ) — the registry API is live but requires an API key (attribution-licensed).

Build against official SDKsweight 2

2 (weight) × 3 (quality) × 0.6 (partial) = 3.6 of 20 max

  • [probe] https://glama.ai/api/mcp/openapi.jsonPROBE openapi (2026-09-05): GET https://glama.ai/api/mcp/openapi.json returned HTTP 200 with an OpenAPI 3.0.3 description (9 documented paths) — an agent can generate a client for the platform API from this spec.
  • [probe] https://glama.ai/.well-known/api-catalogPROBE api-catalog (2026-09-05): GET https://glama.ai/.well-known/api-catalog returned HTTP 200 with an RFC 9727 linkset naming the platform APIs and their description documents — machine-discoverable API surface.
  • [probe] https://glama.ai/api/mcp/v1/servers?first=3PROBE registry-api (2026-09-05): GET https://glama.ai/api/mcp/v1/servers?first=3 without credentials returned HTTP 401 with a JSON auth challenge ({"error":{"code":"unauthorized","message":"This endpoint requires an API key. Create one at https://glama.ai/settings/api-keys.\n\nUse of this data is governed ) — the registry API is live but requires an API key (attribution-licensed).

Subscribe to events via webhooksweight 2

2 (weight) × 4 (quality) × 0.6 (partial) = 4.8 of 20 max

  • [claimed-docs] https://glama.ai/pricingAutomate workflows using schedules or webhooks.

Agent-ready = 79.6 ÷ 210 × 100 = 37.9

API quality34.9/100×0.20 of the PA blend

The programmable surface once an agent is there — machine-readable spec, interactive docs, sandbox, versioning discipline.

Explore an interactive API reference with runnable examplesweight 2

2 (weight) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max

  • [probe] https://glama.ai/api/mcp/openapi.jsonPROBE openapi (2026-09-05): GET https://glama.ai/api/mcp/openapi.json returned HTTP 200 with an OpenAPI 3.0.3 description (9 documented paths) — an agent can generate a client for the platform API from this spec.
  • [probe] https://glama.ai/.well-known/api-catalogPROBE api-catalog (2026-09-05): GET https://glama.ai/.well-known/api-catalog returned HTTP 200 with an RFC 9727 linkset naming the platform APIs and their description documents — machine-discoverable API surface.
  • [claimed-docs] https://glama.ai/mcp/inspectorTest any MCP server from your browser. Supports every Model Context Protocol feature
  • [probe] https://glama.ai/mcp.mdPROBE docs-md: HTTP 404 at https://glama.ai/mcp.md
  • [probe] https://glama.ai/openapi.jsonPROBE openapi: all candidate paths 404 (https://glama.ai/openapi.json, https://glama.ai/swagger.json, https://glama.ai/api/openapi.json, https://glama.ai/.well-known/openapi.json)

Download a machine-readable API spec (OpenAPI or equivalent)weight 2

2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max

  • [probe] https://glama.ai/api/mcp/openapi.jsonPROBE openapi (2026-09-05): GET https://glama.ai/api/mcp/openapi.json returned HTTP 200 with an OpenAPI 3.0.3 description (9 documented paths) — an agent can generate a client for the platform API from this spec.
  • [probe] https://glama.ai/.well-known/api-catalogPROBE api-catalog (2026-09-05): GET https://glama.ai/.well-known/api-catalog returned HTTP 200 with an RFC 9727 linkset naming the platform APIs and their description documents — machine-discoverable API surface.
  • [probe] https://glama.ai/openapi.jsonPROBE openapi: all candidate paths 404 (https://glama.ai/openapi.json, https://glama.ai/swagger.json, https://glama.ai/api/openapi.json, https://glama.ai/.well-known/openapi.json)

Test against a sandbox environment without touching production dataweight 1

1 (weight) × 4 (quality) × 0.6 (partial) = 2.4 of 10 max

  • [claimed-docs] https://glama.ai/mcp/inspectorTest any MCP server from your browser. Supports every Model Context Protocol feature
  • [claimed-docs] https://glama.ai/mcp/inspectorTest your local MCP servers with the inspector by exposing them via a public tunnel using mcp-proxy.
  • [claimed-docs] https://glama.ai/mcp/hostingPrivate by default – flip to public listing when ready.

Rely on versioned APIs with a documented deprecation policyweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

  • [probe] https://glama.ai/api/mcp/openapi.jsonPROBE openapi (2026-09-05): GET https://glama.ai/api/mcp/openapi.json returned HTTP 200 with an OpenAPI 3.0.3 description (9 documented paths) — an agent can generate a client for the platform API from this spec.
  • [probe] https://glama.ai/.well-known/api-catalogPROBE api-catalog (2026-09-05): GET https://glama.ai/.well-known/api-catalog returned HTTP 200 with an RFC 9727 linkset naming the platform APIs and their description documents — machine-discoverable API surface.
  • [probe] https://glama.ai/api/mcp/v1/servers?first=3PROBE registry-api (2026-09-05): GET https://glama.ai/api/mcp/v1/servers?first=3 without credentials returned HTTP 401 with a JSON auth challenge ({"error":{"code":"unauthorized","message":"This endpoint requires an API key. Create one at https://glama.ai/settings/api-keys.\n\nUse of this data is governed ) — the registry API is live but requires an API key (attribution-licensed).

API quality = 24.4 ÷ 70 × 100 = 34.9

Openness6.0/100×0.20 of the PA blend

Can you leave, inspect, or self-host — data export, open source, portability.

Do everything through the API that I can do in the UIweight 2

2 (weight) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max

  • [probe] https://glama.ai/api/mcp/openapi.jsonPROBE openapi (2026-09-05): GET https://glama.ai/api/mcp/openapi.json returned HTTP 200 with an OpenAPI 3.0.3 description (9 documented paths) — an agent can generate a client for the platform API from this spec.
  • [probe] https://glama.ai/.well-known/api-catalogPROBE api-catalog (2026-09-05): GET https://glama.ai/.well-known/api-catalog returned HTTP 200 with an RFC 9727 linkset naming the platform APIs and their description documents — machine-discoverable API surface.
  • [probe] https://glama.ai/api/mcp/v1/servers?first=3PROBE registry-api (2026-09-05): GET https://glama.ai/api/mcp/v1/servers?first=3 without credentials returned HTTP 401 with a JSON auth challenge ({"error":{"code":"unauthorized","message":"This endpoint requires an API key. Create one at https://glama.ai/settings/api-keys.\n\nUse of this data is governed ) — the registry API is live but requires an API key (attribution-licensed).
  • [claimed-docs] https://glama.ai/mcp/hostingShip a Dockerfile, an npm package, or a PyPI module. Configure Node or Python versions, build steps, and CMD arguments – or let Glama infer them.
  • [claimed-docs] https://glama.ai/mcp/hostingPer-tool access control – enable or disable individual tools
  • [claimed-docs] https://glama.ai/pricingAutomate workflows using schedules or webhooks.
  • [community] https://news.ycombinator.com/item?id=49553343After uploading a new MCP version, the quality score test wouldn't rerun for 3 days despite manual resyncs and API attempts. Turned out a credit card was required for rebuild/release to work, which wasn't documented; adding a few dollars in credits fixed it and score jumped to A.
  • [community] https://news.ycombinator.com/item?id=49553343Neither I nor my AI agent could figure out over 4 days of searching documentation why the quality score retest wasn't triggering on the latest MCP version, even though the page showed updated README and release info.

Export all of my data in open formats and leaveweight 3

3 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 30 max

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Read the product's source under an open licenseweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Self-host the core productweight 3

3 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 30 max

  • [claimed-docs] https://glama.ai/mcp/hostingConnect a GitHub repository and Glama builds the image straight from source.
  • [claimed-docs] https://glama.ai/mcp/hostingShip a Dockerfile, an npm package, or a PyPI module. Configure Node or Python versions, build steps, and CMD arguments – or let Glama infer them.
  • [probe] https://glama.ai/llms.txtPROBE llms.txt: HTTP 200 at https://glama.ai/llms.txt # Glama > A directory of 81,811 Model Context Protocol servers and 15,990 remote connectors, every one scanned, scored,
  • [probe] https://glama.ai/api/mcp/v1/servers?first=3PROBE registry-api (2026-09-05): GET https://glama.ai/api/mcp/v1/servers?first=3 without credentials returned HTTP 401 with a JSON auth challenge ({"error":{"code":"unauthorized","message":"This endpoint requires an API key. Create one at https://glama.ai/settings/api-keys.\n\nUse of this data is governed ) — the registry API is live but requires an API key (attribution-licensed).

Openness = 6.0 ÷ 100 × 100 = 6.0

Built-in AI24.0/100×0.15 of the PA blend

Inside-out: how agentic the product itself is for its users — built-in assistants, autonomous features.

Get AI-generated insights and suggestions from my data inside the productweight 2

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Set up automations that run autonomously in the backgroundweight 2

2 (weight) × 4 (quality) × 0.6 (partial) = 4.8 of 20 max

  • [claimed-docs] https://glama.ai/pricingAutomate workflows using schedules or webhooks.

Delegate tasks to a built-in AI assistant inside the productweight 3

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Operate the product with natural-language commandsweight 2

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Built-in AI = 4.8 ÷ 20 × 100 = 24.0

Automation15.0/100×0.15 of the PA blend

Depth of automation primitives — rules, scheduling, bulk operations, webhooks.

Perform bulk operations across many items at onceweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Define rules that trigger actions automatically on eventsweight 3

3 (weight) × 4 (quality) × 0.6 (partial) = 7.2 of 30 max

  • [claimed-docs] https://glama.ai/pricingAutomate workflows using schedules or webhooks.

Schedule recurring jobs or workflowsweight 2

2 (weight) × 4 (quality) × 0.6 (partial) = 4.8 of 20 max

  • [claimed-docs] https://glama.ai/pricingAutomate workflows using schedules or webhooks.

Version, review, and roll back my automationsweight 1

1 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 10 max

  • [claimed-docs] https://glama.ai/pricingAutomate workflows using schedules or webhooks.

Automation = 12.0 ÷ 80 × 100 = 15.0