Skip to content

MCP

Use ProductArena from your agent

Every ranking, verdict, and evidence citation across 83 arenas is queryable over the Model Context Protocol — either through the hosted remote endpoint (nothing to install) or the productarena-mcp npm package over stdio. Both expose the same eight tools on the same public data behind /openapi.json.

Remote endpoint (no install)

Streamable HTTP, keyless, rate-limited (60 requests / 5 minutes per IP). POST JSON-RPC to:

https://ultrametric.ai/productarena/mcp

Or try it with plain curl:

curl -X POST https://ultrametric.ai/productarena/mcp \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"top_products","arguments":{"metric":"agentReady","limit":5}}}'

Set it up in your client

Same hosted endpoint, each client’s own config shape (they differ — these match each tool’s current docs).

Claude Code

claude mcp add --transport http productarena https://ultrametric.ai/productarena/mcp

Cursor

~/.cursor/mcp.json (or .cursor/mcp.json per project):

{
  "mcpServers": {
    "productarena": {
      "url": "https://ultrametric.ai/productarena/mcp"
    }
  }
}

VS Code / GitHub Copilot

.vscode/mcp.json (or the user-level file via “MCP: Open User Configuration”) — note the top-level key is servers:

{
  "servers": {
    "productarena": {
      "type": "http",
      "url": "https://ultrametric.ai/productarena/mcp"
    }
  }
}

Windsurf

~/.codeium/windsurf/mcp_config.json — remote servers use serverUrl:

{
  "mcpServers": {
    "productarena": {
      "serverUrl": "https://ultrametric.ai/productarena/mcp"
    }
  }
}

OpenAI Codex CLI

~/.codex/config.toml:

[mcp_servers.productarena]
url = "https://ultrametric.ai/productarena/mcp"

Gemini CLI

~/.gemini/settings.json — streamable HTTP is httpUrl (url means SSE there):

{
  "mcpServers": {
    "productarena": {
      "httpUrl": "https://ultrametric.ai/productarena/mcp"
    }
  }
}

Anything else

Any client with an HTTP-transport MCP config:

{
  "mcpServers": {
    "productarena": {
      "type": "http",
      "url": "https://ultrametric.ai/productarena/mcp"
    }
  }
}

npm package (stdio)

Prefer a local process? productarena-mcp runs over stdio and fetches the same live data with a 5-minute cache. Claude Code:

claude mcp add productarena -- npx -y productarena-mcp

Claude Desktop (claude_desktop_config.json), Cursor, Windsurf, Gemini CLI, or any stdio client — same shape, in each client’s config file from the section above:

{
  "mcpServers": {
    "productarena": {
      "command": "npx",
      "args": ["-y", "productarena-mcp"]
    }
  }
}

OpenAI Codex CLI (~/.codex/config.toml):

[mcp_servers.productarena]
command = "npx"
args = ["-y", "productarena-mcp"]

Source and full docs live in the repo: mcp/README.md. Set PA_BASE_URL to point it at a local checkout.

CLI

Prefer a terminal to a protocol? The productarena npm package puts the same live data behind one command — rankings, cross-arena compare, pick <role> for a vendor pick with a runner-up and close-race flag, live-resolved stacks, and an agent-readiness scan:

npx productarena rankings ai-coding
npx productarena pick payroll
npx productarena top --metric agentReady --oss

Every command takes --json for scripts and agents. Source and docs: cli/README.md.

Tool catalog

ToolArgumentsReturns
list_arenasEvery arena/category: id, name, description, personas, themes.
get_rankingsarenaOne arena’s full leaderboard (coverage score, PA Score, agent-readiness, per-theme scores) plus its head-to-head battle log.
get_productarena, productOne product: metadata, leaderboard entry with rank, verdict counts, and a per-story verdict summary.
get_verdictarena, product, storyThe full judged verdict for one (product, story) cell: tier, quality, confidence, rationale, and cited evidence URLs.
search_productsqueryFind products by id/name/vendor substring across every arena.
compareproducts[]Cross-arena score comparison: rank, coverage score, PA Score, agent-readiness, Built-in AI, API quality per product.
get_stacksCurated cross-arena AI stacks with every scored slot resolved live from current leaderboards.
top_productsmetric, limit?Cross-arena top-N by one metric: score, paScore, agentReady, agenticApp, or apiQuality.

Prefer raw HTTP? The same data is plain JSON under https://ultrametric.ai/productarena/data/… (see /openapi.json), and every arena has a markdown rendering indexed from /llms.txt.

Data license

Everything these tools return is the ProductArena dataset, © Ultrametric Inc. Querying it and briefly quoting individual verdicts, scores, or evidence excerpts is welcome with attribution to “ProductArena by Ultrametric Inc (ultrametric.ai/productarena)”. Bulk copying, redistribution, or use to build or train competing products or datasets requires written permission — see DATA-LICENSE.