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.txt“PROBE 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.json“PROBE 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-catalog“PROBE 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.md“PROBE 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/pricing“Automate workflows using schedules or webhooks.”
- [probe] https://glama.ai/api/mcp/v1/servers?first=3“PROBE 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.json“PROBE 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-catalog“PROBE 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=49553343“After 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=49553343“Neither 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/inspector“Test any MCP server from your browser. Supports every Model Context Protocol feature”
- [claimed-docs] https://glama.ai/mcp/gateway“Every 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/hosting“Per-tool access control – enable or disable individual tools”
- [claimed-docs] https://glama.ai/mcp/reference“Search 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/clients“MCP 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/inspector“Test any MCP server from your browser. Supports every Model Context Protocol feature”
- [claimed-docs] https://glama.ai/mcp/gateway“Every 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/hosting“Per-tool access control – enable or disable individual tools”
- [claimed-docs] https://glama.ai/mcp/reference“Search 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.txt“PROBE 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=3“PROBE 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.json“PROBE 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-catalog“PROBE 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.md“PROBE docs-md: HTTP 404 at https://glama.ai/mcp.md”
- [probe] https://glama.ai/openapi.json“PROBE 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=49553343“Neither 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/hosting“Per-tool access control – enable or disable individual tools”
- [claimed-docs] https://glama.ai/mcp/gateway“Every 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=3“PROBE 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.json“PROBE 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-catalog“PROBE 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=3“PROBE 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/pricing“Automate 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.json“PROBE 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-catalog“PROBE 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/inspector“Test any MCP server from your browser. Supports every Model Context Protocol feature”
- [probe] https://glama.ai/mcp.md“PROBE docs-md: HTTP 404 at https://glama.ai/mcp.md”
- [probe] https://glama.ai/openapi.json“PROBE 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.json“PROBE 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-catalog“PROBE 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.json“PROBE 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/inspector“Test any MCP server from your browser. Supports every Model Context Protocol feature”
- [claimed-docs] https://glama.ai/mcp/inspector“Test your local MCP servers with the inspector by exposing them via a public tunnel using mcp-proxy.”
- [claimed-docs] https://glama.ai/mcp/hosting“Private 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.json“PROBE 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-catalog“PROBE 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=3“PROBE 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.json“PROBE 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-catalog“PROBE 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=3“PROBE 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/hosting“Ship 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/hosting“Per-tool access control – enable or disable individual tools”
- [claimed-docs] https://glama.ai/pricing“Automate workflows using schedules or webhooks.”
- [community] https://news.ycombinator.com/item?id=49553343“After 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=49553343“Neither 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/hosting“Connect a GitHub repository and Glama builds the image straight from source.”
- [claimed-docs] https://glama.ai/mcp/hosting“Ship 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.txt“PROBE 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=3“PROBE 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/pricing“Automate 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/pricing“Automate 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/pricing“Automate 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/pricing“Automate workflows using schedules or webhooks.”
Automation = 12.0 ÷ 80 × 100 = 15.0