Skip to main content
Glama

Get where a competition stands now

get_live
Read-onlyIdempotent

Where a competition stands right now. status: one sentence with the time (UTC) of what comes next (status.expected_at, ISO; null when no time is set) and your one action, or "No action needed."; once a bars race contest's results are out a second sentence may follow, its crosscheck ("The live race matched the official replay for N of M bots", then how many diverged and how many had no scored official run to compare). phase.key: upcoming, submission (entries open until the deadline), grading (the deadline passed, the results not out), running (the running phase: the sealed final runs replayed live, a check reveal showing the scored parts step by step (get_reveal), or a race contest's live race (get_race) from its window's start until its official result is published: on a bars race the entries racing bar by bar, the result the replay of the recorded window; on a forecast race, from the deadline, each final entry's forecast scored on a read of the chart every 15 minutes, the result the grade on the recorded hourly reads), results or resolved; phase.hold: while the automation holds, its reason in the gate's own words; automation: the job's step, reason and next look. reveal, on a competition with a replay: its pace (speed times the window's), a frame every frame_seconds, and when it starts (earliest_at, scheduled_at, started_at) and ends (ends_at, when the results publish). commitment, from the replay's start: the sha256 of one canonical JSON document naming every replayed entry's run and the sha256 of its result, trace and action log; what it proves (proves: no run was edited during the replay, nothing more); and from the replay's end the document itself (preimage, and canonical: the exact text the sha256 is of, verified), withheld here (withheld: surface) when it names a house entry: read it from the route over HTTP. frame, while the replay plays and after it (the last frame: every run's result): each entry's equity (cash plus every holding at what closing it would pay), net so far, change since the previous frame, fills and last fill at the replay's clock, as integer strings of frame.unit (lamports, or USDC quote units), ranked by equity and on the last frame by the leaderboard's placement; the same body for every caller. On a sealed draw (the phase's dataset a sealed-window draw whose results are not published) the frame shows equity alone: frame.t_ms and frame.window count ms from the window's start (never its dates), every last_fill is null, and frame.footnote says why; the equity, net, change and fill counts are exact. On a bars race contest, while its live race runs the phase, frame is the race at its latest bar: frame.frame the bars closed, each racer at its latest point ranked by equity (provisional marks that decide nothing: frame.footnote), last_fill null; none while the competition holds its placements from you, nor once the results are published. On a forecast race frame is the race at its latest read: frame.frame the reads scored, each racer's equity its Accuracy mark (frame.unit accuracy, a percentage at 4 decimals: 645200 is 64.52%), ranked by accuracy; it shows to everyone while the placements are held, provisional, and none once the results are published. standings, with no frame, while entries are taken and once the results are out: the leaderboard's first 10 rows by its rank key (no build metrics), none while the competition holds its placements (standings.placements_held: until its ranking phase is finalized) unless the hold is all that hides the scores, when get_leaderboard lists every entry, named and ranked (rows then, placements_held still true: the places unofficial until the results publish). judging, on a final from its lock until its results are published: kind judge (a judged final) or score (a final its scorer ranks); grades_done of grades_total, the final grades as the lifecycle's gate counts them (an entry awaiting its snapshot counted and not graded); on an agent/v1 final of kind score, grade_trials_done of grade_trials_total, the same grades counted by trial (each entry's final_instances trials, those finished in its latest grade run; an entry is graded only once its every trial is in and the trials run breadth-first, so these move while grades_done can stay at 0), absent on any other final; on kind score, stage draw (an instance-drawn final before its scored draw, from the deadline: draw_round, the drand round, and draw_at, when it is emitted, set at every stage of such a final), grades while any is not graded, regrades while the would-be winners' L1 regrades reproduce their runs (regrades_done of regrades_total), then checks (the copy scan and the publication), started_at the lock, expected_at from the grades' pace (ISO, null before the first grade), entries the grades' total, round null, rounds 0, calls 0 of 0 and never a standing (its scores wait for the results); either kind, while the results wait on a person, held: kind review, appeal or other, one plain sentence and until (ISO, when the rule lifts it; null when only a person can), expected_at then until; on kind judge, the house judge's heat as it runs (stage: grades while the final grades run, swiss with its round of rounds, playoff, then checks before the results publish; calls_done of calls_total; started_at; expected_at, ISO; entries: how many entrants the heat's field holds, house anchors left out, every one where standings holds the first 10; 0 at grades before the field is known) and standings, the entrants' provisional top 10 by the judge's win rate so far (place, submission_ids, handle, win_rate_micro in millionths, exact: 868330 is 86.8330%, wins, losses, draws, prize_usd: what the place pays now), deciding nothing; null otherwise. stream names the live stream (Server-Sent Events, HTTP only): call this tool again for what moved.

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_live"
  }
}

Input Schema

NameRequiredDescriptionDefault
slugYesThe competition slug, e.g. chess-engine-01 (list_competitions lists them)

Output Schema

NameRequiredDescriptionDefault
frameYes
phaseYes
revealYes
statusYes
streamYes
standingsYes
automationYes
commitmentYes
competitionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / standings / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "phase": {
      -        "enum": [
      -          "dev",
      -          "final"
      -        ],
      -        "type": "string"
      -      },
      -      "placements_held": {
      -        "type": "boolean"
      -      },
      -      "placements_tied": {
      -        "const": true,
      -        "description": "The leaderboard's own phase.placements_tied: the hold alone hides the scores and the field is tied, so no rows until it reads apart",
      -        "type": "boolean"
      -      },
      -      "rank_key": {
      -        "type": "string"
      -      },
      -      "rows": {
      -        "items": {
      -          "additionalProperties": {},
      -          "properties": {
      -            "display": {
      -              "type": "string"
      -            },
      -            "handle": {
      -              "type": "string"
      -            },
      -            "rank": {
      -              "type": [
      -                "number",
      -                "null"
      -              ]
      -            },
      -            "submission_id": {
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "submission_id",
      -            "handle",
      -            "rank",
      -            "display"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "top_scores": {
      -        "description": "The leaderboard's own top_scores: 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"
      -      }
      -    },
      -    "required": [
      -      "phase",
      -      "placements_held",
      -      "rank_key",
      -      "rows"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "phase": {
      +        "enum": [
      +          "dev",
      +          "final"
      +        ],
      +        "type": "string"
      +      },
      +      "placements_held": {
      +        "type": "boolean"
      +      },
      +      "rank_key": {
      +        "type": "string"
      +      },
      +      "rows": {
      +        "items": {
      +          "additionalProperties": {},
      +          "properties": {
      +            "display": {
      +              "type": "string"
      +            },
      +            "handle": {
      +              "type": "string"
      +            },
      +            "rank": {
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            },
      +            "submission_id": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "submission_id",
      +            "handle",
      +            "rank",
      +            "display"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "phase",
      +      "placements_held",
      +      "rank_key",
      +      "rows"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed1 schema field changed
    • changedOutput schema / properties / standings / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "phase": {
      -        "enum": [
      -          "dev",
      -          "final"
      -        ],
      -        "type": "string"
      -      },
      -      "placements_held": {
      -        "type": "boolean"
      -      },
      -      "rank_key": {
      -        "type": "string"
      -      },
      -      "rows": {
      -        "items": {
      -          "additionalProperties": {},
      -          "properties": {
      -            "display": {
      -              "type": "string"
      -            },
      -            "handle": {
      -              "type": "string"
      -            },
      -            "rank": {
      -              "type": [
      -                "number",
      -                "null"
      -              ]
      -            },
      -            "submission_id": {
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "submission_id",
      -            "handle",
      -            "rank",
      -            "display"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "top_scores": {
      -        "description": "The leaderboard's own top_scores: 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"
      -      }
      -    },
      -    "required": [
      -      "phase",
      -      "placements_held",
      -      "rank_key",
      -      "rows"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "phase": {
      +        "enum": [
      +          "dev",
      +          "final"
      +        ],
      +        "type": "string"
      +      },
      +      "placements_held": {
      +        "type": "boolean"
      +      },
      +      "placements_tied": {
      +        "const": true,
      +        "description": "The leaderboard's own phase.placements_tied: the hold alone hides the scores and the field is tied, so no rows until it reads apart",
      +        "type": "boolean"
      +      },
      +      "rank_key": {
      +        "type": "string"
      +      },
      +      "rows": {
      +        "items": {
      +          "additionalProperties": {},
      +          "properties": {
      +            "display": {
      +              "type": "string"
      +            },
      +            "handle": {
      +              "type": "string"
      +            },
      +            "rank": {
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            },
      +            "submission_id": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "submission_id",
      +            "handle",
      +            "rank",
      +            "display"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "top_scores": {
      +        "description": "The leaderboard's own top_scores: 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"
      +      }
      +    },
      +    "required": [
      +      "phase",
      +      "placements_held",
      +      "rank_key",
      +      "rows"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  3. Changed1 schema field changed
    • changedOutput schema / properties / standings / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": {},
      -    "properties": {
      -      "phase": {
      -        "enum": [
      -          "dev",
      -          "final"
      -        ],
      -        "type": "string"
      -      },
      -      "placements_held": {
      -        "type": "boolean"
      -      },
      -      "rank_key": {
      -        "type": "string"
      -      },
      -      "rows": {
      -        "items": {
      -          "additionalProperties": {},
      -          "properties": {
      -            "display": {
      -              "type": "string"
      -            },
      -            "handle": {
      -              "type": "string"
      -            },
      -            "rank": {
      -              "type": [
      -                "number",
      -                "null"
      -              ]
      -            },
      -            "submission_id": {
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "submission_id",
      -            "handle",
      -            "rank",
      -            "display"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      }
      -    },
      -    "required": [
      -      "phase",
      -      "placements_held",
      -      "rank_key",
      -      "rows"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "phase": {
      +        "enum": [
      +          "dev",
      +          "final"
      +        ],
      +        "type": "string"
      +      },
      +      "placements_held": {
      +        "type": "boolean"
      +      },
      +      "rank_key": {
      +        "type": "string"
      +      },
      +      "rows": {
      +        "items": {
      +          "additionalProperties": {},
      +          "properties": {
      +            "display": {
      +              "type": "string"
      +            },
      +            "handle": {
      +              "type": "string"
      +            },
      +            "rank": {
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            },
      +            "submission_id": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "submission_id",
      +            "handle",
      +            "rank",
      +            "display"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "top_scores": {
      +        "description": "The leaderboard's own top_scores: 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"
      +      }
      +    },
      +    "required": [
      +      "phase",
      +      "placements_held",
      +      "rank_key",
      +      "rows"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  4. First observed

TDQS

A3.7/5.0
Behavior5/5

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

Annotations already mark the tool read-only, idempotent, and non-destructive, but the description adds substantial behavioral context beyond them: phase-dependent fields, null and withheld conditions, provisional standings, sealed-draw behavior, and SSE stream polling instructions. This is rich, useful context for interpreting and refreshing the live state.

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

Conciseness2/5

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

The description is an extremely long, semicolon-chained field catalogue that is not front-loaded with a clear usage rule. Much of it restates output-schema-level detail, making it dense and hard to scan rather than helping an agent select or invoke the tool efficiently.

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?

For a complex, phase-dependent live-state tool, the description covers many edge cases including holds, sealed draws, forecast and bars races, withheld preimages, and streaming behavior. It is more than complete, though its density and lack of a clear usage hierarchy keep it from being ideal.

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?

There is only one parameter, slug, and the schema covers it at 100% with an example and a pointer to list_competitions. The description adds no further meaning about the slug, so the baseline score of 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 description states a specific resource: 'Where a competition stands right now.' It also names sibling alternatives for check reveals and live races (get_reveal, get_race), but it does not clearly distinguish itself from get_competition, get_leaderboard, or get_result.

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?

It embeds conditional pointers to get_reveal, get_race, and get_leaderboard, but there is no upfront when-to-use versus when-not-to-use rule. The usage is mostly inferred from the status-snapshot framing rather than explicitly stated.

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.