Skip to main content
Glama

Get Sport Leaderboard

get_sport_leaderboard
Read-onlyIdempotent

Get one sport's skill leaderboard, or with league one league's: the board the site's sport pages show. Wallets need min_resolved resolved markets in the sport or league. sort edge (the default) ranks edge_skill, the edge over the price paid pulled toward the board's edge_average by how much of the record is noise; a wallet without a ranked edge sorts after the ranked ones. sort pnl ranks realized P&L and win_rate the Wilson lower bound of the win rate. Boards are ranked to 100 wallets.

A sport outside sports and esports is not_found on sport; a league the sport has no board for is not_found on league (get_leaderboard_leagues lists them).

Args:

  • sport (string, required): Sport slug, e.g. soccer, basketball, football, esports; an alias such as nba reads its sport's board

  • league (string, optional): League slug of the sport, e.g. premier-league

  • sort (string, optional): edge (default), pnl or win_rate

  • limit (number, 1-100, default 20): Rows from the top of the board

Returns: sport, category, league, sort, min_resolved, limit, total_traders, edge_average, volume_scope, as_of and rows[] (rank, id, address, username, platform, grade, n_resolved, wins, losses, win_rate, win_rate_wilson_lb, price_edge, edge_hold, edge_skill, pnl, volume, cost, roi, last_category_trade_at).

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": {
      "sport": "<sport>"
    },
    "name": "get_sport_leaderboard"
  }
}

Input Schema

NameRequiredDescriptionDefault
sortNoRanking axis: edge over the price paid (default), realized P&L, or win rateedge
limitNoRows from the top of the board (1-100, default 20)
sportYesSport slug, e.g. soccer, basketball, football or esports; an alias such as nba reads its sport's board
leagueNoLeague slug of the sport from get_leaderboard_leagues, e.g. premier-league; omit for the sport board

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / $defs / ResponseMeta / properties / continued_from_generation
      Added value: +{
      +  "type": "integer"
      +}
  2. Changed1 schema field changed
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "allOf": [
      -      {
      -        "$ref": "#/$defs/SportLeaderboard"
      -      },
      -      {
      -        "properties": {
      -          "meta": {
      -            "$ref": "#/$defs/ResponseMeta"
      -          }
      -        },
      -        "required": [
      -          "meta"
      -        ],
      -        "type": "object"
      -      }
      -    ]
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "error": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "code": {
      -            "type": "string"
      -          },
      -          "doc_url": {
      -            "type": "string"
      -          },
      -          "param": {
      -            "type": "string"
      -          },
      -          "reason": {
      -            "type": "string"
      -          },
      -          "request_id": {
      -            "type": "string"
      -          },
      -          "retry_after_seconds": {
      -            "minimum": 0,
      -            "type": "integer"
      -          },
      -          "retry_at": {
      -            "type": "string"
      -          },
      -          "status": {
      -            "minimum": 0,
      -            "type": "integer"
      -          }
      -        },
      -        "required": [
      -          "code"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "error"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "allOf": [
      +      {
      +        "$ref": "#/$defs/SportLeaderboard"
      +      },
      +      {
      +        "properties": {
      +          "meta": {
      +            "$ref": "#/$defs/ResponseMeta"
      +          }
      +        },
      +        "required": [
      +          "meta"
      +        ],
      +        "type": "object"
      +      }
      +    ]
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "error": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "billing_url": {
      +            "type": "string"
      +          },
      +          "code": {
      +            "type": "string"
      +          },
      +          "doc_url": {
      +            "type": "string"
      +          },
      +          "param": {
      +            "type": "string"
      +          },
      +          "reason": {
      +            "type": "string"
      +          },
      +          "request_id": {
      +            "type": "string"
      +          },
      +          "retry_after_seconds": {
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "retry_at": {
      +            "type": "string"
      +          },
      +          "status": {
      +            "minimum": 0,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "code"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "error"
      +    ],
      +    "type": "object"
      +  }
      +]
  3. Added

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, the description adds substantial behavior: min_resolved eligibility, how edge/pnl/win_rate sorts rank wallets, shrinkage toward edge_average, placement of wallets without a ranked edge, a 100-wallet board cap, and not_found conditions. This gives the agent rich operational context that annotations alone do not.

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

Conciseness4/5

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

The description front-loads purpose and eligibility, then groups error behavior, Args, and Returns clearly. Some schema content is duplicated in the Args section and the full Returns list is unnecessary given the existing output schema, which slightly reduces conciseness.

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

Completeness5/5

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

For a leaderboard tool with an output schema, it covers everything an agent needs: scope, eligibility threshold, sort semantics, error behavior, sport aliases, and parameter roles. Return fields are summarized even though the output schema already documents them.

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 adds meaning beyond the schema: sport aliases such as nba resolve to the sport board, omitting league selects the sport board, and each sort mode is explained with its underlying ranking algorithm. Limit mostly repeats the schema rather than adding new semantics.

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

Purpose5/5

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

States a specific verb and resource, 'Get one sport's skill leaderboard, or with league one league's,' and scopes it to 'the board the site's sport pages show.' It distinguishes sport-level from league-level boards, so an agent can tell it apart from generic or category leaderboards without opening the schema.

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

Usage Guidelines4/5

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

Explains the sport/league selection rule and points to get_leaderboard_leagues for valid league slugs, plus not_found behavior for invalid sport or league. It does not explicitly route against sibling tools such as get_leaderboard or get_category_leaderboard, so alternatives are only partly addressed.

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.