Skip to main content
Glama

Top Players

top_players
Read-onlyIdempotent

Lichess leaderboard for a single chess variant: the highest-rated Lichess accounts in one perf (bullet, blitz, rapid, classical, correspondence, chess960, crazyhouse, atomic, antichess, horde, kingOfTheHill, racingKings, threeCheck, ultraBullet), up to 200 entries. Returns each player username, title, and current rating in that variant. Answers who the top-rated blitz or bullet players on Lichess are right now.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
perfYes
limitNo1-200 (default 50)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
usersNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • removedOutput schema / properties / count
      Removed value: -{
      -  "description": "Number of items returned.",
      -  "type": "integer"
      -}
    • removedOutput schema / properties / items
      Removed value: -{
      -  "items": {
      -    "properties": {
      -      "games": {
      -        "description": "Games played",
      -        "type": "number"
      -      },
      -      "id": {
      -        "description": "User ID",
      -        "type": "string"
      -      },
      -      "prog": {
      -        "description": "Progress",
      -        "type": "number"
      -      },
      -      "rating": {
      -        "description": "Rating",
      -        "type": "number"
      -      },
      -      "rd": {
      -        "description": "Rating deviation",
      -        "type": "number"
      -      },
      -      "score": {
      -        "description": "Score",
      -        "type": "number"
      -      },
      -      "title": {
      -        "description": "Title",
      -        "type": "string"
      -      },
      -      "username": {
      -        "description": "Username",
      -        "type": "string"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • addedOutput schema / properties / users
      Added value: +{
      +  "items": {
      +    "properties": {
      +      "id": {
      +        "type": "string"
      +      },
      +      "online": {
      +        "type": "boolean"
      +      },
      +      "patron": {
      +        "type": "boolean"
      +      },
      +      "patronColor": {
      +        "type": "number"
      +      },
      +      "perfs": {
      +        "properties": {
      +          "blitz": {
      +            "properties": {
      +              "progress": {
      +                "type": "number"
      +              },
      +              "rating": {
      +                "type": "number"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "bullet": {
      +            "properties": {
      +              "progress": {
      +                "type": "number"
      +              },
      +              "rating": {
      +                "type": "number"
      +              }
      +            },
      +            "type": "object"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "title": {
      +        "type": "string"
      +      },
      +      "username": {
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / required
      Removed value: -[
      -  "items",
      -  "count"
      -]
  2. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "perf": "blitz"
      +  },
      +  {
      +    "limit": 100,
      +    "perf": "bullet"
      +  }
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "count": {
      +      "description": "Number of items returned.",
      +      "type": "integer"
      +    },
      +    "items": {
      +      "items": {
      +        "properties": {
      +          "games": {
      +            "description": "Games played",
      +            "type": "number"
      +          },
      +          "id": {
      +            "description": "User ID",
      +            "type": "string"
      +          },
      +          "prog": {
      +            "description": "Progress",
      +            "type": "number"
      +          },
      +          "rating": {
      +            "description": "Rating",
      +            "type": "number"
      +          },
      +          "rd": {
      +            "description": "Rating deviation",
      +            "type": "number"
      +          },
      +          "score": {
      +            "description": "Score",
      +            "type": "number"
      +          },
      +          "title": {
      +            "description": "Title",
      +            "type": "string"
      +          },
      +          "username": {
      +            "description": "Username",
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "items",
      +    "count"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral detail beyond that: the 200-entry cap, the single-variant scoping, and the fact that ratings are 'current'.

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

Conciseness5/5

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

Two sentences, front-loaded with the core purpose, then the return shape and use case. The long parenthetical variant list is dense but directly earns its place by defining an otherwise enum-less parameter.

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?

With an output schema covering return values and annotations covering the safety profile, the description fills the remaining gaps: what the tool scopes to, which variants are legal, and the entry ceiling. Nothing needed to invoke it correctly is missing.

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 only 50% and 'perf' is an untyped string with no enum in the schema, so the description's enumeration of all fourteen valid variants is the primary source of meaning for that parameter. 'limit' is documented in the schema (1-200, default 50), and the description reinforces the 200 ceiling.

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?

The description names a specific verb+resource (Lichess leaderboard for a single chess variant) and enumerates the exact perfs accepted, plus what each returned row contains. It is highly specific, though it does not differentiate itself from the overlapping sibling 'leaderboards' tool.

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?

Usage is only implied by the closing sentence ('Answers who the top-rated blitz or bullet players on Lichess are right now'), which frames the intent but gives no explicit when-to-use vs. when-not guidance or named alternative against siblings like leaderboards or user_performance.

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.