Skip to main content
Glama

turnale

Update players

update_player

Rename a player or set their gender/level/note. Updates MANY in one call: pass updates with one object per player and never loop one-by-one — setting levels for a whole roster used to be one call per player, which on a phone meant approving each one and left the roster half-updated when some were mis-tapped. The whole batch applies or none of it does.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteNoFree note shown on the tournament page. Pass an empty string to clear it.
levelNoAny consistent numeric level/rating — used only for seeding and balancing
genderNo
updatesNoBulk edit — e.g. levels for a whole roster in one call
new_nameNo
request_idNoOptional idempotency id — retrying a call with the same id never applies it twice
player_nameNoSingle update; or use `updates` for several
tournament_keyYesThe tournament's organiser key (starts with tk_)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
playerNo
playersYes
previewNoTrue when this is a preview — nothing was changed
summaryYesWhat happened, in one line

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedOutput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
  2. Changed6 schema fields changed
    • addedInput schema / properties / note
      Added value: +{
      +  "description": "Free note shown on the tournament page. Pass an empty string to clear it.",
      +  "maxLength": 500,
      +  "type": "string"
      +}
    • addedInput schema / properties / player_name / description
      Added value: +"Single update; or use `updates` for several"
    • addedInput schema / properties / updates
      Added value: +{
      +  "description": "Bulk edit — e.g. levels for a whole roster in one call",
      +  "items": {
      +    "properties": {
      +      "gender": {
      +        "enum": [
      +          "m",
      +          "f",
      +          "x"
      +        ],
      +        "type": "string"
      +      },
      +      "level": {
      +        "description": "Any consistent numeric level/rating — used only for seeding and balancing",
      +        "maximum": 10000,
      +        "minimum": -10000,
      +        "type": "number"
      +      },
      +      "new_name": {
      +        "maxLength": 120,
      +        "type": "string"
      +      },
      +      "note": {
      +        "description": "Free note shown on the tournament page. Pass an empty string to clear it.",
      +        "maxLength": 500,
      +        "type": "string"
      +      },
      +      "player_name": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "player_name"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 128,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "tournament_key",
      -  "player_name"
      -]New value: +[
      +  "tournament_key"
      +]
    • addedOutput schema / properties / players
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "player",
      -  "summary"
      -]New value: +[
      +  "players",
      +  "summary"
      +]
  3. Changed3 schema fields changed
    • addedInput schema / properties / level / description
      Added value: +"Any consistent numeric level/rating — used only for seeding and balancing"
    • addedInput schema / properties / level / maximum
      Added value: +10000
    • addedInput schema / properties / level / minimum
      Added value: +-10000
  4. First observed

TDQS

A4.1/5.0
Behavior4/5

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

The description discloses atomicity: "The whole batch applies or none of it does," a critical behavioral trait not captured in the annotations. It also explains the historical pain point of partial updates, adding valuable context beyond the readOnly/destructive hints.

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 is four sentences and front-loaded with purpose. The anecdote about phone approvals is slightly verbose but serves as a memorable justification for the batch design. Overall, it is concise and each sentence adds value.

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?

Given the tool's complexity (8 params, nested array objects), the description covers the key behavioral aspects: batch usage, atomicity, and the single-vs-multiple dichotomy. It does not address potential edge cases like mixing top-level and array updates, but the output schema and detailed parameter schema fill some gaps.

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 coverage is 75%, so the baseline is 3. The description adds some value by explaining the `updates` array pattern, but it does not clarify the relationship between top-level fields and the updates array, or explain the `new_name` parameter. The schema already covers most parameter meaning.

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?

The description opens with a specific verb and resource: "Rename a player or set their gender/level/note." It clearly distinguishes itself from sibling tools like add_players or remove_player by focusing on updating existing players, and the batch capability further clarifies its unique role.

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?

It provides direct usage guidance: "never loop one-by-one" and "pass `updates` with one object per player," which is a clear directive for batch use. While it doesn't explicitly name alternatives, it implicitly advises against an inefficient pattern and sets expectations for the batch workflow.

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.