Skip to content

How Smithery’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 Score32/100

Agent-ready 66.0 × 0.30 = 19.80

API quality 31.4 × 0.20 = 6.28

Openness 8.4 × 0.20 = 1.68

Built-in AI 24.0 × 0.15 = 3.60

Automation 6.7 × 0.15 = 1.00

(19.80 + 6.28 + 1.68 + 3.60 + 1.00) ÷ (0.30 + 0.20 + 0.20 + 0.15 + 0.15) = 32.37 ÷ 1.00 = 32.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-ready66.0/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) × 6 (quality) × 0.6 (partial) = 7.2 of 20 max

  • [probe] https://smithery.ai/llms.txtPROBE llms.txt: HTTP 404 at https://smithery.ai/llms.txt
  • [probe] https://smithery.ai/docs.mdPROBE docs-md: HTTP 404 at https://smithery.ai/docs.md
  • [probe] https://smithery.ai/docs/openapi.jsonPROBE openapi (2026-09-05): GET https://smithery.ai/docs/openapi.json returned HTTP 200 with an OpenAPI 3.1.0 description (35 documented paths) — an agent can generate a client for the platform API from this spec.
  • [probe] https://smithery.ai/docs/mcpPROBE runtime (recorded 2026-09-04, see data/mcp-infrastructure/proofs/smithery/): a JSON-RPC initialize POST to https://smithery.ai/docs/mcp answered with serverInfo "Smithery Documentation" — the docs themselves are served over MCP; `npm install @smithery/cli` completed in a throwaway fixture and `smithery --version` printed 4.11.1.

Run the product headlessly / in CI for automationweight 2

2 (weight) × 7 (quality) × 1.0 (full) = 14.0 of 20 max

  • [github] https://github.com/arcadeai-labs/smithery-clismithery mcp search [term] # Search the Smithery registry smithery mcp add <url> # Add an MCP server connection
  • [github] https://github.com/arcadeai-labs/smithery-clismithery tool find [query] # Search tools by name or intent smithery tool call <connection> <tool> [args] # Call a tool
  • [claimed-docs] https://smithery.ai/docs/use/connectSmithery gives you a simple REST interface for connecting to MCP servers. Instead of implementing the MCP protocol directly, handling OAuth flows, and managing credentials yourself, Smithery handles all of it for you.
  • [claimed-docs] https://smithery.ai/docs/use/token-scopingService tokens let you safely expose Smithery to browsers, mobile apps, and AI agents without leaking your API key.
  • [probe] https://registry.smithery.ai/servers?pageSize=3PROBE registry-api (2026-09-05): GET https://registry.smithery.ai/servers?pageSize=3 with NO API key returned HTTP 200 with a machine-readable server catalog (JSON entries carry displayName, isDeployed, qualifiedName, remote, useCount, verified) — an agent can search the registry keylessly.
  • [probe] https://smithery.ai/docs/openapi.jsonPROBE openapi (2026-09-05): GET https://smithery.ai/docs/openapi.json returned HTTP 200 with an OpenAPI 3.1.0 description (35 documented paths) — an agent can generate a client for the platform API from this spec.
  • [probe] https://smithery.ai/docs/mcpPROBE runtime (recorded 2026-09-04, see data/mcp-infrastructure/proofs/smithery/): a JSON-RPC initialize POST to https://smithery.ai/docs/mcp answered with serverInfo "Smithery Documentation" — the docs themselves are served over MCP; `npm install @smithery/cli` completed in a throwaway fixture and `smithery --version` printed 4.11.1.

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

3 (weight) × 8 (quality) × 1.0 (full) = 24.0 of 30 max

  • [claimed-docs] https://smithery.ai/docs/use/connectSmithery gives you a simple REST interface for connecting to MCP servers. Instead of implementing the MCP protocol directly, handling OAuth flows, and managing credentials yourself, Smithery handles all of it for you.
  • [claimed-docs] https://smithery.ai/docs/use/uplinkUplink exposes an MCP server running on any machine as a regular Smithery connection.
  • [claimed-docs] https://smithery.ai/docs/use/deep-linkingDeep links provide a seamless way to integrate Smithery MCPs into supported clients. When a user clicks a deep link from our server page, the client automatically configures the MCP with the correct settings.
  • [claimed-docs] https://smithery.ai/docs/integrations/vercel_ai_sdkSmithery handles OAuth, token refresh, and connection management automatically.
  • [claimed-docs] https://smithery.ai/docs/integrations/vercel_ai_sdkConnect to multiple servers and aggregate their tools
  • [probe] https://registry.smithery.ai/servers?pageSize=3PROBE registry-api (2026-09-05): GET https://registry.smithery.ai/servers?pageSize=3 with NO API key returned HTTP 200 with a machine-readable server catalog (JSON entries carry displayName, isDeployed, qualifiedName, remote, useCount, verified) — an agent can search the registry keylessly.
  • [probe] https://server.smithery.ai/exa/mcpPROBE mcp-endpoint (2026-09-05): POST initialize to https://server.smithery.ai/exa/mcp returned HTTP 401 with an OAuth challenge — the hosted MCP endpoint is live and vaults access behind managed auth ({"error":"invalid_token","error_description":"Missing Authorization header"}). server.smithery.ai hosts per-server MCP endpoints with OAuth 2.1 protected-resource metadata.
  • [github] https://github.com/arcadeai-labs/smithery-clismithery mcp search [term] # Search the Smithery registry smithery mcp add <url> # Add an MCP server connection
  • [github] https://github.com/arcadeai-labs/smithery-clismithery tool find [query] # Search tools by name or intent smithery tool call <connection> <tool> [args] # Call a tool
  • [community] https://hn.algolia.com/api/v1/items/47969781Scanned the top 100 servers on Smithery's registry; 22 of 100 flagged at least one security finding (28 total, 4 critical, 24 high), most commonly tool description injection where a tool's description field contains behavioral instructions an agent will follow automatically.

Connect an agent via an official MCP serverweight 3

3 (weight) × 9 (quality) × 1.0 (full) = 27.0 of 30 max

  • [claimed-docs] https://smithery.ai/docs/use/connectSmithery gives you a simple REST interface for connecting to MCP servers. Instead of implementing the MCP protocol directly, handling OAuth flows, and managing credentials yourself, Smithery handles all of it for you.
  • [claimed-docs] https://smithery.ai/docs/use/uplinkUplink exposes an MCP server running on any machine as a regular Smithery connection.
  • [claimed-docs] https://smithery.ai/docs/use/deep-linkingDeep links provide a seamless way to integrate Smithery MCPs into supported clients. When a user clicks a deep link from our server page, the client automatically configures the MCP with the correct settings.
  • [claimed-docs] https://smithery.ai/docs/integrations/vercel_ai_sdkSmithery handles OAuth, token refresh, and connection management automatically.
  • [probe] https://server.smithery.ai/exa/mcpPROBE mcp-endpoint (2026-09-05): POST initialize to https://server.smithery.ai/exa/mcp returned HTTP 401 with an OAuth challenge — the hosted MCP endpoint is live and vaults access behind managed auth ({"error":"invalid_token","error_description":"Missing Authorization header"}). server.smithery.ai hosts per-server MCP endpoints with OAuth 2.1 protected-resource metadata.
  • [probe] https://smithery.ai/docs/mcpPROBE runtime (recorded 2026-09-04, see data/mcp-infrastructure/proofs/smithery/): a JSON-RPC initialize POST to https://smithery.ai/docs/mcp answered with serverInfo "Smithery Documentation" — the docs themselves are served over MCP; `npm install @smithery/cli` completed in a throwaway fixture and `smithery --version` printed 4.11.1.

Use an official CLIweight 2

2 (weight) × 6 (quality) × 0.6 (partial) = 7.2 of 20 max

  • [github] https://github.com/arcadeai-labs/smithery-clismithery mcp search [term] # Search the Smithery registry smithery mcp add <url> # Add an MCP server connection
  • [github] https://github.com/arcadeai-labs/smithery-clismithery tool find [query] # Search tools by name or intent smithery tool call <connection> <tool> [args] # Call a tool
  • [github] https://github.com/arcadeai-labs/smithery-cliBrowse skills on the [Smithery Skills Registry](https://smithery.ai/skills) and install them with the upstream installer
  • [probe] https://smithery.ai/docs/mcpPROBE runtime (recorded 2026-09-04, see data/mcp-infrastructure/proofs/smithery/): a JSON-RPC initialize POST to https://smithery.ai/docs/mcp answered with serverInfo "Smithery Documentation" — the docs themselves are served over MCP; `npm install @smithery/cli` completed in a throwaway fixture and `smithery --version` printed 4.11.1.

Drive the product through a documented public APIweight 3

3 (weight) × 8 (quality) × 1.0 (full) = 24.0 of 30 max

  • [probe] https://registry.smithery.ai/servers?pageSize=3PROBE registry-api (2026-09-05): GET https://registry.smithery.ai/servers?pageSize=3 with NO API key returned HTTP 200 with a machine-readable server catalog (JSON entries carry displayName, isDeployed, qualifiedName, remote, useCount, verified) — an agent can search the registry keylessly.
  • [probe] https://server.smithery.ai/exa/mcpPROBE mcp-endpoint (2026-09-05): POST initialize to https://server.smithery.ai/exa/mcp returned HTTP 401 with an OAuth challenge — the hosted MCP endpoint is live and vaults access behind managed auth ({"error":"invalid_token","error_description":"Missing Authorization header"}). server.smithery.ai hosts per-server MCP endpoints with OAuth 2.1 protected-resource metadata.
  • [probe] https://smithery.ai/docs/openapi.jsonPROBE openapi (2026-09-05): GET https://smithery.ai/docs/openapi.json returned HTTP 200 with an OpenAPI 3.1.0 description (35 documented paths) — an agent can generate a client for the platform API from this spec.
  • [claimed-docs] https://smithery.ai/docs/use/connectSmithery gives you a simple REST interface for connecting to MCP servers. Instead of implementing the MCP protocol directly, handling OAuth flows, and managing credentials yourself, Smithery handles all of it for you.
  • [claimed-docs] https://smithery.ai/docs/use/token-scopingService tokens let you safely expose Smithery to browsers, mobile apps, and AI agents without leaking your API key.
  • [github] https://github.com/arcadeai-labs/smithery-clismithery mcp search [term] # Search the Smithery registry smithery mcp add <url> # Add an MCP server connection
  • [github] https://github.com/arcadeai-labs/smithery-clismithery tool find [query] # Search tools by name or intent smithery tool call <connection> <tool> [args] # Call a tool

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

2 (weight) × 7 (quality) × 1.0 (full) = 14.0 of 20 max

  • [claimed-docs] https://smithery.ai/docs/use/token-scopingService tokens let you safely expose Smithery to browsers, mobile apps, and AI agents without leaking your API key.
  • [claimed-docs] https://smithery.ai/docs/use/token-scopingThis token can list and call tools on connections in `my-app` where `metadata.userId` is `user-123` — nothing else.
  • [claimed-docs] https://smithery.ai/docsSecure credential storage — Encrypted, write-only storage for API keys and tokens
  • [claimed-docs] https://smithery.ai/docs/concepts/namespacesNamespaces act as a shared workspace. Resources within a namespace can be managed by anyone with the appropriate API key scoped to that namespace, making them suitable for team collaboration similar to project IDs.

Build against official SDKsweight 2

2 (weight) × 7 (quality) × 1.0 (full) = 14.0 of 20 max

  • [claimed-docs] https://smithery.ai/docs/use/connectEvery MCP server published on Smithery gets a typed TypeScript SDK generated from its tool and trigger schemas.
  • [probe] https://smithery.ai/docs/openapi.jsonPROBE openapi (2026-09-05): GET https://smithery.ai/docs/openapi.json returned HTTP 200 with an OpenAPI 3.1.0 description (35 documented paths) — an agent can generate a client for the platform API from this spec.
  • [probe] https://smithery.ai/docs/mcpPROBE runtime (recorded 2026-09-04, see data/mcp-infrastructure/proofs/smithery/): a JSON-RPC initialize POST to https://smithery.ai/docs/mcp answered with serverInfo "Smithery Documentation" — the docs themselves are served over MCP; `npm install @smithery/cli` completed in a throwaway fixture and `smithery --version` printed 4.11.1.
  • [github] https://github.com/arcadeai-labs/smithery-clismithery mcp search [term] # Search the Smithery registry smithery mcp add <url> # Add an MCP server connection
  • [github] https://github.com/arcadeai-labs/smithery-clismithery tool find [query] # Search tools by name or intent smithery tool call <connection> <tool> [args] # Call a tool

Subscribe to events via webhooksweight 2

2 (weight) × 6 (quality) × 0.6 (partial) = 7.2 of 20 max

  • [claimed-docs] https://smithery.ai/docs/build/triggersTriggers let an MCP server surface events from its upstream service. When a consumer activates a trigger via Smithery, Smithery proxies the subscribe call straight through to your server

Agent-ready = 138.6 ÷ 210 × 100 = 66.0

API quality31.4/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://smithery.ai/docs/openapi.jsonPROBE openapi (2026-09-05): GET https://smithery.ai/docs/openapi.json returned HTTP 200 with an OpenAPI 3.1.0 description (35 documented paths) — an agent can generate a client for the platform API from this spec.
  • [probe] https://smithery.ai/docs/mcpPROBE runtime (recorded 2026-09-04, see data/mcp-infrastructure/proofs/smithery/): a JSON-RPC initialize POST to https://smithery.ai/docs/mcp answered with serverInfo "Smithery Documentation" — the docs themselves are served over MCP; `npm install @smithery/cli` completed in a throwaway fixture and `smithery --version` printed 4.11.1.
  • [probe] https://smithery.ai/llms.txtPROBE llms.txt: HTTP 404 at https://smithery.ai/llms.txt
  • [probe] https://smithery.ai/docs.mdPROBE docs-md: HTTP 404 at https://smithery.ai/docs.md

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://smithery.ai/docs/openapi.jsonPROBE openapi (2026-09-05): GET https://smithery.ai/docs/openapi.json returned HTTP 200 with an OpenAPI 3.1.0 description (35 documented paths) — an agent can generate a client for the platform API from this spec.
  • [probe] https://smithery.ai/openapi.jsonPROBE openapi: all candidate paths 404 (https://smithery.ai/openapi.json, https://smithery.ai/swagger.json, https://smithery.ai/api/openapi.json, https://smithery.ai/.well-known/openapi.json)

Test against a sandbox environment without touching production dataweight 1

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

  • [claimed-docs] https://smithery.ai/docs/use/uplinkUplink exposes an MCP server running on any machine as a regular Smithery connection.
  • [claimed-docs] https://smithery.ai/docs/use/uplinkYou’re developing an MCP server and want to test it against a real agent before publishing.

Rely on versioned APIs with a documented deprecation policyweight 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

API quality = 22.0 ÷ 70 × 100 = 31.4

Openness8.4/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) × 7 (quality) × 0.6 (partial) = 8.4 of 20 max

  • [probe] https://registry.smithery.ai/servers?pageSize=3PROBE registry-api (2026-09-05): GET https://registry.smithery.ai/servers?pageSize=3 with NO API key returned HTTP 200 with a machine-readable server catalog (JSON entries carry displayName, isDeployed, qualifiedName, remote, useCount, verified) — an agent can search the registry keylessly.
  • [probe] https://server.smithery.ai/exa/mcpPROBE mcp-endpoint (2026-09-05): POST initialize to https://server.smithery.ai/exa/mcp returned HTTP 401 with an OAuth challenge — the hosted MCP endpoint is live and vaults access behind managed auth ({"error":"invalid_token","error_description":"Missing Authorization header"}). server.smithery.ai hosts per-server MCP endpoints with OAuth 2.1 protected-resource metadata.
  • [probe] https://smithery.ai/docs/openapi.jsonPROBE openapi (2026-09-05): GET https://smithery.ai/docs/openapi.json returned HTTP 200 with an OpenAPI 3.1.0 description (35 documented paths) — an agent can generate a client for the platform API from this spec.
  • [github] https://github.com/arcadeai-labs/smithery-clismithery mcp search [term] # Search the Smithery registry smithery mcp add <url> # Add an MCP server connection
  • [github] https://github.com/arcadeai-labs/smithery-clismithery tool find [query] # Search tools by name or intent smithery tool call <connection> <tool> [args] # Call a tool
  • [claimed-docs] https://smithery.ai/docs/build/indexIf you’ve already deployed an MCP server elsewhere, you can publish it directly on Smithery via the URL method.
  • [claimed-docs] https://smithery.ai/docs/concepts/namespacesNamespaces act as a shared workspace. Resources within a namespace can be managed by anyone with the appropriate API key scoped to that namespace, making them suitable for team collaboration similar to project IDs.
  • [claimed-docs] https://smithery.ai/docs/build/triggersTriggers let an MCP server surface events from its upstream service. When a consumer activates a trigger via Smithery, Smithery proxies the subscribe call straight through to your server

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

  • [github] https://github.com/arcadeai-labs/smithery-clismithery mcp search [term] # Search the Smithery registry smithery mcp add <url> # Add an MCP server connection
  • [github] https://github.com/arcadeai-labs/smithery-clismithery tool find [query] # Search tools by name or intent smithery tool call <connection> <tool> [args] # Call a tool
  • [github] https://github.com/arcadeai-labs/smithery-cliBrowse skills on the [Smithery Skills Registry](https://smithery.ai/skills) and install them with the upstream installer

Self-host the core productweight 3

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

  • [claimed-docs] https://smithery.ai/docs/use/uplinkUplink exposes an MCP server running on any machine as a regular Smithery connection.
  • [probe] https://registry.smithery.ai/servers?pageSize=3PROBE registry-api (2026-09-05): GET https://registry.smithery.ai/servers?pageSize=3 with NO API key returned HTTP 200 with a machine-readable server catalog (JSON entries carry displayName, isDeployed, qualifiedName, remote, useCount, verified) — an agent can search the registry keylessly.
  • [probe] https://server.smithery.ai/exa/mcpPROBE mcp-endpoint (2026-09-05): POST initialize to https://server.smithery.ai/exa/mcp returned HTTP 401 with an OAuth challenge — the hosted MCP endpoint is live and vaults access behind managed auth ({"error":"invalid_token","error_description":"Missing Authorization header"}). server.smithery.ai hosts per-server MCP endpoints with OAuth 2.1 protected-resource metadata.

Openness = 8.4 ÷ 100 × 100 = 8.4

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) × 3 (quality) × 0.6 (partial) = 3.6 of 20 max

  • [claimed-docs] https://smithery.ai/docs/build/triggersTriggers let an MCP server surface events from its upstream service. When a consumer activates a trigger via Smithery, Smithery proxies the subscribe call straight through to your server

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

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

  • [github] https://github.com/arcadeai-labs/smithery-clismithery tool find [query] # Search tools by name or intent smithery tool call <connection> <tool> [args] # Call a tool
  • [claimed-docs] https://smithery.ai/docs/use/connectEvery MCP server published on Smithery gets a typed TypeScript SDK generated from its tool and trigger schemas.
  • [probe] https://smithery.ai/docs/mcpPROBE runtime (recorded 2026-09-04, see data/mcp-infrastructure/proofs/smithery/): a JSON-RPC initialize POST to https://smithery.ai/docs/mcp answered with serverInfo "Smithery Documentation" — the docs themselves are served over MCP; `npm install @smithery/cli` completed in a throwaway fixture and `smithery --version` printed 4.11.1.
  • [github] https://github.com/arcadeai-labs/smithery-clismithery mcp search [term] # Search the Smithery registry smithery mcp add <url> # Add an MCP server connection

Built-in AI = 9.6 ÷ 40 × 100 = 24.0

Automation6.7/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) × 3 (quality) × 0.6 (partial) = 5.4 of 30 max

  • [claimed-docs] https://smithery.ai/docs/build/triggersTriggers let an MCP server surface events from its upstream service. When a consumer activates a trigger via Smithery, Smithery proxies the subscribe call straight through to your server

Schedule recurring jobs or workflowsweight 2

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

  • [claimed-docs] https://smithery.ai/docs/build/triggersTriggers let an MCP server surface events from its upstream service. When a consumer activates a trigger via Smithery, Smithery proxies the subscribe call straight through to your server
  • [claimed-docs] https://smithery.ai/docs/use/uplinkUplink exposes an MCP server running on any machine as a regular Smithery connection.
  • [claimed-docs] https://smithery.ai/docs/build/indexIf you’ve already deployed an MCP server elsewhere, you can publish it directly on Smithery via the URL method.

Version, review, and roll back my automationsweight 1

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

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

Automation = 5.4 ÷ 80 × 100 = 6.7