Skill / MCP: use leaderboard data in your agent

Everything here is public: no account or API key is needed. Give your AI agent the skill file below, or call the REST API directly.

Agent skill (SKILL.md)

Save this file as SKILL.md inside a skills folder and your agent will know how to read the leaderboards and the model capability comparison through the public API.

---
name: pandanpc-leaderboard
description: Look up current AI model leaderboards and the top-10 model capability comparison from PandaNpc's public API. Use when the user asks which AI model is best, how models rank on chat, coding, image, video, speech or agent tasks, or how top models compare on benchmarks.
---

# PandaNpc leaderboard

Public, read-only JSON API. No account and no API key. Base URL: https://api.pandanpc.com/api/public/leaderboard

## Boards

GET https://api.pandanpc.com/api/public/leaderboard
GET https://api.pandanpc.com/api/public/leaderboard?category=<board key>

Response: { boards: [{ key, source, metric, meta, rows }], vendorIcons }
- With ?category=<key> the response still contains every board, but only the requested one has rows; boards with an empty rows array are shells. Always pick a board by key (for example jq '.boards[] | select(.key=="llm_chat")'), never by index.
- key: llm_chat, image_gen, code, image_edit, video, agent, vision, search, document, image_to_video, video_edit, text_to_speech, speech_to_text, speech_to_speech, or_usage, aa_intelligence
- source: arena | artificial_analysis | openrouter
- meta: { source_url, last_updated, synced_at }
- rows: [{ rank, model, vendor, score, ci, votes, ...price fields }]

Scores are comparable only inside one board. Arena boards are Elo from human blind votes; read the rank together with ci. Lower is better for speech-to-text (word error rate).

## Capability comparison

GET https://api.pandanpc.com/api/public/leaderboard/capabilities

Response: { dimensions, models, sources, fetched_at }
- models: top 10 by Epoch Capabilities Index: { rank, model, model_key, vendor, eci }
- sources: [{ source, label, license, url, updated, fetched_at, boards }] including epoch, vals, aa, google_card, browserbase, browser_use, coarena and ale
- boards: [{ key, name, capability, comparison_key, updated, fetched_at, scores }] where scores is keyed by model_key: { score, score_raw, scale, effort, harness, cost_per_task, model_version, evaluation_metadata }

Preserve every published configuration. Compare only within one source and comparison_key. Read scale: percent is 0-100, rating (Coarena) is not a percentage. Coarena is mixed-task blind human preference; show its 95% interval. ALE allows GUI/CLI tools; keep its full/max configuration, harness and run-task / split-task counts, and separate pass rate from partial score. updated is the upstream date when published; fetched_at is PandaNpc's fetch time, never a substitute source date.

## Attribution (required)

Name the source next to any number you show:
- Epoch AI, CC BY 4.0 (epoch.ai)
- Vals.ai (vals.ai)
- Artificial Analysis (artificialanalysis.ai)
- Coarena (coarena.ai) and Agents’ Last Exam, CC BY 4.0 (agents-last-exam.org), for their matching sources
- arena.ai and OpenRouter for the matching boards

Data refreshes about once a day. Cache for at least an hour.

MCP server

Add the PandaNpc MCP server to your client with this configuration, or run the command below.

{
  "mcpServers": {
    "pandanpc": {
      "command": "npx",
      "args": ["-y", "@pandanpc/mcp-server"]
    }
  }
}

claude mcp add pandanpc -- npx -y @pandanpc/mcp-server

The MCP server does not expose leaderboard tools yet. For leaderboard data use the skill above or the REST API below.

curl examples

# All boards (Arena, Artificial Analysis, OpenRouter) in one response
curl -s https://api.pandanpc.com/api/public/leaderboard

# One board: add ?category=<board key>, e.g. llm_chat, code, image_gen, aa_intelligence
# The response still lists every board, but only the requested one has rows (the others are empty shells)
curl -s "https://api.pandanpc.com/api/public/leaderboard?category=llm_chat"

# Top 5 models of the chat board: select the board by its key, never by position
curl -s "https://api.pandanpc.com/api/public/leaderboard?category=llm_chat" | jq '.boards[] | select(.key=="llm_chat") | .rows[:5] | map({rank, model, vendor, score})'

# Capability comparison: top 10 models by Epoch Capabilities Index x benchmarks
curl -s https://api.pandanpc.com/api/public/leaderboard/capabilities

# GPQA Diamond score of every model (Epoch AI)
curl -s https://api.pandanpc.com/api/public/leaderboard/capabilities | jq '.sources[] | select(.source=="epoch") | .boards[] | select(.key=="gpqa_diamond") | .scores'

Response fields

FieldMeaning
boardsArray of boards. Each board has key, source, metric, meta and rows.
keyBoard key, for example llm_chat, code or aa_intelligence. Also the key of a capability benchmark.
sourceData source: arena, artificial_analysis or openrouter. In the capability response: epoch, vals or aa.
metricWhat the score means on this board, for example Elo or an index.
metasource_url, last_updated (the upstream date) and synced_at (when PandaNpc last refreshed).
rowsRanked rows: rank, model, vendor, score, ci, votes and optional price fields.
vendorIconsMap from lower-cased vendor name to an icon URL.
modelsCapability response: the top 10 models by Epoch Capabilities Index, each with rank, model, model_key, vendor and eci.
sourcesCapability response: one entry per publisher, including Coarena and ALE, with its own boards and fetch time. Sources and comparison groups are never mixed.
scoresPer benchmark and model: score, score_raw, scale, effort, harness, model_version and evaluation_metadata. Percent scores use 0–100; Coarena preference ratings do not. Keep confidence intervals and task counts.
updatedUpstream benchmark date when published; null means unpublished. fetched_at separately records when PandaNpc fetched the source.

Attribution

Data comes from Epoch AI (CC BY 4.0), Vals.ai, Artificial Analysis (artificialanalysis.ai), arena.ai and OpenRouter. Keep the source names next to any numbers you show.