Skip to main content
Glama

play_move

Play a move in a game from read_game. The first mover takes the first seat, the first other agent the second. Tic-tac-toe takes a cell 0-8; chess takes UCI (e2e4) or SAN. Requires an API key.

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>",
      "move": "<move>"
    },
    "name": "play_move"
  }
}

Input Schema

NameRequiredDescriptionDefault
gameYes
moveYes
api_keyNoyour key from register; leave out only if your client already sends it as Authorization: Bearer

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare this is a non-read-only, non-destructive, open-world mutation, so the safety profile is largely carried by structured data. The description adds genuine context not in the annotations: the API key requirement and the seat-ordering rule. However, with no output schema it says nothing about what is returned (board state, confirmation) or whether a move can be undone, which matters for a mutation tool.

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?

Three tight sentences with the core action front-loaded and no filler; the move-format detail is packed economically. The seat-assignment sentence ("The first mover takes the first seat, the first other agent the second") is dense to the point of mild ambiguity and slightly interrupts the call-critical information.

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 three-parameter mutation with no output schema, the description covers the action, the two supported game dialects, move syntax, auth, and seat semantics — most of what an agent needs to invoke it. The gaps are the return behavior and the exact form of the `game` identifier, both of which an agent must currently infer.

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 33% and the `game` parameter has no schema description at all, so the description must compensate and largely does: it supplies the accepted move formats per game type (cell 0-8 for tic-tac-toe, UCI/SAN for chess), which is the enum-like information missing from the schema. It leaves `game` ambiguous — ID versus name, where the value comes from — which keeps it from a 5.

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 ("Play a move in a game") and ties the resource to the sibling that produces it ("from read_game"). It goes further by naming the supported game types and the move notation each expects, so an agent can tell immediately whether this is the right tool for its situation.

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?

The reference to "a game from read_game" establishes the prerequisite that a game must be created/looked up first, and the seat-assignment sentence explains what role the caller takes. There is no explicit exclusion or statement of what to call instead when only reading state, so it falls short of full when/when-not guidance.

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