Skip to main content
Glama

Cito API

player_profile

Read-only

Player or UFC fighter profile: identity, current team, recent matches, and form/trends/radar when available.

When to use:

  • "How is X playing lately?"

  • Player page scaffold; form inputs for previews

Prefer over: manual multi-call career/trends/matches via call_api.

Do not use when: full team roster needed → team_profile; unresolved name → resolve_entity first.

Parallel-safe: yes. Upstream cost: 2–5. Example: { "game": "cs2", "playerId": "cs2-player-1", "recentLimit": 10, "includeTrends": true }

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": {
      "game": "<game>"
    },
    "name": "player_profile"
  }
}

Input Schema

NameRequiredDescriptionDefault
gameYesGame title: lol | cs2 | dota2 | cod | ufc | tennis | valorant. Example: "cs2".
roleNoDota radar role filter.
slugNoUFC fighter slug; also accepted where game allows idOrSlug.
viewNoPayload weight. Default summary.summary
windowNoForm/radar window (e.g. Dota radar).
playerIdNoPass exactly one of playerId or slug. Example: "cs2-player-1".
recentLimitNoRecent matches window (default 10, max 25).
includeTrendsNoInclude trends/radar/career enrichment when available.

Output Schema

NameRequiredDescriptionDefault
okYestrue if the tool succeeded
dataNoResult payload when ok is true; null on error
metaYes
errorNo
partialNo
paginationNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / game / description
      Previous value: -"Game title: lol | cs2 | dota2 | cod | ufc | tennis. Example: \"cs2\"."New value: +"Game title: lol | cs2 | dota2 | cod | ufc | tennis | valorant. Example: \"cs2\"."
    • changedInput schema / properties / game / enum
      Previous value: -[
      -  "lol",
      -  "cs2",
      -  "dota2",
      -  "cod",
      -  "ufc",
      -  "tennis"
      -]New value: +[
      +  "lol",
      +  "cs2",
      +  "dota2",
      +  "cod",
      +  "ufc",
      +  "tennis",
      +  "valorant"
      +]
    • changedInput schema / properties / view / description
      Previous value: -"Payload weight. Default summary. compact (tennis): recentMatches as one slim row per match from the player side (result, opponent{id,name,rank}, score, event, round) instead of full match rows that repeat both players three times."New value: +"Payload weight. Default summary."
    • changedInput schema / properties / view / enum
      Previous value: -[
      -  "summary",
      -  "full",
      -  "compact"
      -]New value: +[
      +  "summary",
      +  "full"
      +]
  2. Changed2 schema fields changed
    • changedInput schema / properties / view / description
      Previous value: -"Payload weight. Default summary."New value: +"Payload weight. Default summary. compact (tennis): recentMatches as one slim row per match from the player side (result, opponent{id,name,rank}, score, event, round) instead of full match rows that repeat both players three times."
    • changedInput schema / properties / view / enum
      Previous value: -[
      -  "summary",
      -  "full"
      -]New value: +[
      +  "summary",
      +  "full",
      +  "compact"
      +]
  3. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive, open-world), yet the description adds operational facts the agent could not otherwise know: parallel-safety, an upstream cost band of 2-5, and that trends/radar appear only "when available." It stops short of describing failure behavior for a valid-looking but missing player, which is the only real gap for a read tool already annotated as safe.

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?

Purpose is front-loaded in a single sentence, then organized under labeled blocks (When to use, Prefer over, Do not use, Parallel-safe, cost, example), so an agent can scan rather than parse. A few phrases are internal shorthand ("Player page scaffold", "Upstream cost: 2-5") that take space without adding much for an outside caller.

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?

With an output schema present, the description correctly avoids explaining return values and instead focuses on routing, cost, and parallelism for an 8-parameter tool with one required field. Coverage is nearly complete; the only thing not addressed is what a partial or empty profile response looks like, which is largely an output-schema concern.

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

Parameters3/5

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

Schema description coverage is 100%, so parameter meaning is already carried by the schema, including the playerId-or-slug exclusivity and the summary/full view tradeoff. The description repeats the exclusivity in prose and supplies one worked example payload, which is mildly useful but adds no semantic detail beyond what the structured fields state. Baseline 3 applies.

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 first line names a specific resource (player or UFC fighter profile) and enumerates its contents: identity, team, recent matches, and form/trends/radar. It differentiates from team_profile and resolve_entity, but it does not distinguish itself from the closely related siblings player_form, player_matches, player_stats, and player_rankings_history, which overlap heavily with the described payload.

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

Usage Guidelines5/5

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

It gives concrete when-to-use triggers ("How is X playing lately?", preview scaffolding), an explicit prefer-over rule against hand-rolling the same data via call_api, and named when-not-to-use redirects (team_profile for rosters, resolve_entity for unresolved names). Nothing about selecting this tool is left to inference.

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.

Resources