Skip to main content
Glama

Get a leaderboard

get_leaderboard
Read-onlyIdempotent

A competition phase's leaderboard in one view: performance (the rank key prizes follow), overall (the mean of the performance and cost ranks), cost (cheapest AI usage first) or efficiency. Each entry has its rank in every view, its metrics, build cost (micro-USD as a decimal string; null when some usage line is unpriced), build_wall_ms (how long its agent worked, in ms; null without a timed session), tokens per model, the rank key's interval and the entries it statistically ties with, and the Pareto/hull badges. harness_kind names the competition's harness, which says what the rank key and each interval are in: on agent/v1 a run's mean points and its 90% t-interval in points (six-decimal strings), with the field's resolution; on a market replay net PnL and its bootstrap interval in the rank key's unit; on a judged program/v1 board (each entry's judge block) the judge's win rate and its interval's ends in millionths (868330 is 86.8330%), where a column with significant_figures rounds each row but your own to that many figures (868330 shows 868000) and the entry's archive (get_submission) keeps them exact. tie_break, only when the bundle names a tie-break column, is the column an exact tie on the rank key goes to (its key, title and whether the higher or lower value wins) before the earlier receipt; without it such a tie goes to the earlier receipt. Every entry's build cost and build_wall_ms are public to every caller. The rest of the build metrics (tokens, models) and the rankings by build cost are public only while the server sets MAKEFUN_PUBLIC_BUILD_METRICS; otherwise only house accounts, admins inside their admin window and each entry's owner see them, and the answer says metrics_withheld: then only performance (the default) and overall (without build cost) are offered, cost and efficiency are an error, the build-metric columns are left out and each rival's tokens and models are null (its cost kept); views names what the caller may ask for. Empty while the phase's scores are hidden (final scores show once an admin finalizes the phase), and on every phase while the competition holds its placements (phase.placements_held: its leaderboard.placements after_finalize, the default, until its ranking phase is finalized; competition.placements is the bundle's word), except that where the hold is all that hides the phase's scores the board lists every entry, named and ranked, to everyone (scores_visible true, placements_held still true: the places are unofficial until the results publish); entries with equal scores are ordered by the tie-break.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "slug": "<slug>"
    },
    "name": "get_leaderboard"
  }
}

Input Schema

NameRequiredDescriptionDefault
slugYesThe competition slug, e.g. chess-engine-01 (list_competitions lists them)
viewNoperformance, overall, cost or efficiency (default: performance while build metrics are withheld, else overall; cost and efficiency only when the answer of a call without view lists them in views)
phaseNodev or final (default: final once it is finalized, else dev)

Output Schema

NameRequiredDescriptionDefault
viewYes
phaseYes
columnsYes
entriesYes
rank_keyYes
tie_breakNo
competitionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedOutput schema / properties / phase / properties / placements_tied
      Removed value: -{
      -  "const": true,
      -  "description": "Only when the placements hold alone hides the scores and the field is tied: the board lists nobody until it reads apart",
      -  "type": "boolean"
      -}
    • removedOutput schema / properties / top_scores
      Removed value: -{
      -  "description": "Only on a held, tied board while the competition takes entries: its top prize places' rank-key values, unnamed",
      -  "items": {
      -    "additionalProperties": {},
      -    "properties": {
      -      "display": {
      -        "type": "string"
      -      },
      -      "place": {
      -        "type": "number"
      -      },
      -      "value": {
      -        "type": [
      -          "string",
      -          "number",
      -          "null"
      -        ]
      -      }
      -    },
      -    "required": [
      -      "place",
      -      "value",
      -      "display"
      -    ],
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
  2. Changed2 schema fields changed
    • addedOutput schema / properties / phase / properties / placements_tied
      Added value: +{
      +  "const": true,
      +  "description": "Only when the placements hold alone hides the scores and the field is tied: the board lists nobody until it reads apart",
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / top_scores / description
      Previous value: -"Only on a held board while the competition takes entries: its top prize places' rank-key values, unnamed"New value: +"Only on a held, tied board while the competition takes entries: its top prize places' rank-key values, unnamed"
  3. Changed1 schema field changed
    • addedOutput schema / properties / top_scores
      Added value: +{
      +  "description": "Only on a held board while the competition takes entries: its top prize places' rank-key values, unnamed",
      +  "items": {
      +    "additionalProperties": {},
      +    "properties": {
      +      "display": {
      +        "type": "string"
      +      },
      +      "place": {
      +        "type": "number"
      +      },
      +      "value": {
      +        "type": [
      +          "string",
      +          "number",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "place",
      +      "value",
      +      "display"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  4. First observed

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes far beyond the readOnly/idempotent annotations: it discloses the MAKEFUN_PUBLIC_BUILD_METRICS gating, the metrics_withheld response and the resulting nulling of rival tokens/models with cost kept, admin-window and house-account exceptions, and the placements_held rules including the case where only the hold hides scores and entries are still listed. That is exactly the kind of environment-dependent behavior an agent cannot infer from the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the views up front, which is the right ordering, and most clauses carry real information. But it is a single dense wall of semicolon-chained clauses covering rank-key units, tie-break rules and visibility modes, which makes it hard to scan; several details (six-decimal strings, millionths examples, significant_figures rounding) belong closer to the output schema than in the selection text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so field-shape explanations are technically redundant, yet the visibility prerequisites, error conditions and empty-board cases — the genuinely non-inferable parts — are all covered. The main omission is routing among siblings (list_rankings, get_result) for an agent choosing a tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description genuinely adds semantics the enum names do not: performance is the rank key prizes follow, overall is the mean of the performance and cost ranks, cost is cheapest AI usage first. It also corrects the default view condition under withheld metrics beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource and scope: 'A competition phase's leaderboard in one view', then enumerates the four views (performance, overall, cost, efficiency). An agent knows exactly what it retrieves. It does not mention the sibling list_rankings or get_result, so the agent cannot tell from this text alone which of those to prefer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Useful conditional guidance is embedded (cost/efficiency are an error when build metrics are withheld; views lists what may be asked for; board is empty while scores are hidden or placements held), which is more than implied usage. However there is no explicit statement of when to call this versus list_rankings or get_result, and no guidance on handling the empty/withheld responses beyond noting they occur.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.