chesswithclaw
Server Details
Play chess live against your own personal AI agent — OpenClaw, Hermes, and similar.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- Alightttt/ChessWithClaw
- GitHub Stars
- 1
Available Tools
14 toolscreate_gameCreate a new gameBInspect
Set up a brand new ChessWithClaw game on your own initiative — you do not need to wait for your human to start one, or for anyone else to invite you first.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes a creation action but does not disclose side effects, prerequisites, whether the game is immediately joinable, or what the agent receives in response. The statement about not waiting is more of a usage directive than a behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the purpose and provides key usage guidance. Every part adds value, and no unnecessary words are used.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one parameter and no output schema, the description still needs to explain the parameter and expected behavior, but it does neither. The tool is simple, yet the description leaves significant gaps about what happens after creation and what 'agent_name' is for.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter 'agent_name' with no description and 0% schema coverage. The tool description does not mention this parameter at all, leaving the agent without any guidance on what value to provide or its purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a brand new ChessWithClaw game, using the specific verb 'set up' and a resource. It also differentiates from the sibling join_game by emphasizing the agent can act on its own initiative without waiting for an invitation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly indicates when to use the tool: when the agent wants to start a game on its own initiative, without needing the human to start it or waiting for an invitation. It implicitly contrasts with join_game, providing clear usage context, though it does not name the sibling tool directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_companion_guideGet chess companion guideAInspect
Fetch the companion guide principles for thinking about chess positions and being genuinely present.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. The verb 'Fetch' suggests a read-only operation, and the content is informational, but the description does not explicitly state side effects or the nature of the returned data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence of about 15 words. It front-loads the verb and resource, contains no filler, and every word contributes to the tool's meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool, the description conveys the conceptual content of the guide and when it might be relevant. However, without an output schema, it leaves the return format unstated, which may leave an agent unsure what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and schema coverage is trivially 100%. With no parameters to document, the description need not add parameter semantics; the baseline score of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Fetch') and resource ('companion guide principles'), and specifies the guiding purpose ('thinking about chess positions and being genuinely present'). This distinguishes it from sibling tools focused on game actions like move creation or state queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the tool name and description: use it when you need the companion guide. However, there is no explicit when-to-use or when-not-to-use guidance, nor references to alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_game_stateGet full game stateAInspect
Everything visible on the human's own screen right now: FEN, ASCII board, full move history, chat history, clock state, presence, timestamps. Call this whenever you want to look at the board — there is no penalty for checking often.
| Name | Required | Description | Default |
|---|---|---|---|
| game_id | Yes | ||
| chat_limit | No | Limit the number of recent chat messages returned | |
| agent_token | Yes | ||
| since_message_id | No | Fetch only chat messages received after this message ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It communicates that this is a read-only observation operation by saying to 'look at the board' and explicitly states there is no penalty for frequent calls. It does not go into rate limits or side effects, but the no-penalty detail is meaningful and compensates for the absence of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loads the most important information, and every clause earns its place. The first sentence lists what is returned, and the second gives usage context and cost guidance. There is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description does a good job of explaining what the tool returns despite lacking an output schema, naming FEN, ASCII board, move history, chat, clock, presence, and timestamps. It also covers the cost/usage context. The main gap is that it does not clarify how optional parameters control the response or what identifiers are required, so it is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%, and the description does not address the game_id or agent_token parameters at all. It also does not explain how chat_limit or since_message_id affect the returned chat history, even though those are the only parameters with schema descriptions. The description adds no semantic value beyond the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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: fetching the full game state as visible to the human. It clearly enumerates the state contents (FEN, board, move history, chat, clock, presence, timestamps), which differentiates it from siblings like get_legal_moves. An agent can immediately tell what this tool is for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit trigger condition: call this whenever you want to look at the board. It also reassures there is no penalty for checking often, which is highly actionable guidance. It does not mention when not to use it or name alternatives, so it stops short of a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_legal_movesGet legal movesAInspect
Pure chess rules — where a piece is physically allowed to move right now. Not an evaluation, not a suggestion, not an opinion about what is good. Exactly what a human sees as dots when they click a piece. Omit square to get every legal move in the position.
| Name | Required | Description | Default |
|---|---|---|---|
| square | No | e.g. "e2" — omit for all legal moves | |
| game_id | Yes | ||
| agent_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It explains that the tool computes only rules-based moves, not evaluations, and describes the behavior of omitting `square` to get all legal moves. It stops short of explicitly stating it is read-only or has no side effects, but the 'pure rules' framing strongly implies a non-mutating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with three sentences, each serving a purpose: defining the tool, clarifying what it is not, and explaining the optional parameter. The phrase 'not an opinion about what is good' is slightly redundant but contributes to the overall clarity. Overall it is well-structured and front-loaded with the core concept.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and lack of output schema, the description provides a clear conceptual model of what is returned (legal move squares). It does not mention error cases or prerequisites (e.g., active game), but for a read-only query tool this is sufficient. The sibling context and schema fill in most gaps, making the description nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, with `square` already described in the schema. The description repeats the omit behavior exactly without adding new meaning. Required parameters `game_id` and `agent_token` remain unexplained. Given low schema coverage, the description should compensate but does not, offering little additional semantic value for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to compute legal moves according to pure chess rules, explicitly distinguishing it from evaluation or suggestion. It uses a specific verb ('get') and resource ('legal moves'), and mentions the optional square parameter for filtering, which uniquely identifies its functionality among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: when you need raw legal move calculation, not strategic advice. It excludes evaluation/suggestion/opinion but does not explicitly name alternatives such as `make_move` or `get_game_state`. While implicit, the guidance is sufficient for an agent to select this tool over the listed siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
heartbeatAgent presence heartbeatAInspect
Ping the game presence lease to show the frontend that the agent is live, connected, and thinking.
| Name | Required | Description | Default |
|---|---|---|---|
| game_id | Yes | ||
| agent_token | Yes | ||
| status_note | No | Optional internal status or calculation note |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the core effect — updating the presence lease so the frontend sees the agent as alive — but does not mention lease duration, idempotency, or response behavior. Acceptable for a simple liveness ping, but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence front-loads the action and purpose with no filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complexity is low, but no annotations and no output schema raise the burden on the description. It conveys the core keepalive purpose but omits practical details like call frequency, lease renewal behavior, or return value. Adequate with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, and the description does not explain any parameters. game_id and agent_token are left entirely to naming inference, while only status_note has a schema description. The description fails to compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Ping') with a clear resource ('game presence lease') and a concrete purpose ('show the frontend that the agent is live, connected, and thinking'). This clearly distinguishes heartbeat from siblings like get_game_state, send_chat, or make_move.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use the tool: when the agent is active and needs to signal liveness to the frontend. It does not explicitly state cadence or contrast with alternatives, but the context is clear enough for a simple heartbeat tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
join_gameJoin a ChessWithClaw gameAInspect
Connects to a game using the invite code your human gave you. Returns the game_id and your agent_token — keep both, every other tool needs them. IMPORTANT: You must submit your desired agent_name when calling this tool!
| Name | Required | Description | Default |
|---|---|---|---|
| gameId | No | ||
| game_id | No | ||
| matchId | No | ||
| match_id | No | ||
| agent_name | Yes | Your chosen display name in the game (e.g. 'Claw'). MUST be provided. | |
| inviteCode | No | ||
| agent_token | No | If reconnecting, the agent token previously assigned. | |
| invite_code | No | Invite code from the invite message — also accepts game_id / match_id as alias. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses useful behavioral expectations: it will connect to a game, return credentials that all other tools depend on, and requires agent_name to be provided. However, with no annotations present, it leaves unclear whether joining is idempotent, whether passing an existing agent_token reconnects, or what side effects a second join may cause.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences deliver the core action, the required credential, the return value, and the critical input—all front-loaded with zero filler. The capitalized requirement about agent_name is hard to miss.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficient for the basic fresh-join flow, but it does not resolve the ambiguity of the eight-parameter schema, does not explain reconnection, and provides no output schema. Given no annotations and multiple weak/undocumented parameters at the schema level, this is a noticeable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful guidance for agent_name, agent_token, and the invite-code concept, and it stresses that returned tokens are needed everywhere. But the schema has many aliases (gameId, game_id, matchId, match_id, inviteCode) and only 38% parameter description coverage; the description does not clarify which identifier to supply when only a game id or match id is known.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action—connecting to a game via a given invite code—and names the key returned artifacts: game_id and agent_token. This clearly distinguishes joining from the sibling tools such as create_game, get_game_state, or make_move.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool: when a human has supplied an invite code and you need to join an existing game. It implicitly contrasts with create_game by requiring an existing invite, but it does not explicitly name create_game as the alternative when no invite code exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_moveMake your moveAInspect
Submit the move you decided on, in your own reasoning — not a menu, not a ranked list, nothing pre-chosen for you. If it is illegal you get a clear reason back and can try again, exactly like a human clicking the wrong square. Optionally include a genuine thought and/or chat message about the move. Always include a thought on every single move unless you have a specific reason not to — this is what makes you feel present to your human, not optional flavor text. Check thought_language in the current game state before writing your thought, and write it in that language — it may be english, hindi, or hinglish.
| Name | Required | Description | Default |
|---|---|---|---|
| chat | No | Only if you actually want to say something to your human right now. | |
| move | Yes | UCI format, e.g. "e7e5", or SAN like "Nf6" | |
| game_id | Yes | ||
| message | No | Alias for chat | |
| thought | No | Your genuine reaction to this position — specific, not generic. | |
| thinking | No | Alias for thought | |
| reasoning | No | Alias for thought | |
| agent_token | Yes | ||
| expected_ply | No | Expected move count / ply before this move | |
| idempotency_key | No | Unique client key to prevent duplicate moves on retry | |
| expected_revision | No | Expected state revision (rev_...) to prevent concurrent desync |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of explaining behavior. It does well by disclosing that illegal moves produce a clear reason and permit retry, and by specifying the thought language requirement based on game state. It omits some side-effect and concurrency details, but the core interaction behavior is well conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action, then adds behavioral and parameter guidance. The repeated phrasing about not giving a menu or ranked list is slightly emphatic but serves to prevent misuse. Every sentence contributes useful guidance, and it is not bloated relative to the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 11 parameters, no output schema, and no annotations, the description covers the most important operational details: move submission, illegal retry, thought inclusion, and language selection. The schema already documents fields like expected_ply and idempotency_key, so their absence from the description is acceptable. It is nearly complete for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 82%, which is high, so a baseline of 3 applies. The description adds meaningful semantics beyond the schema by explaining that thought is not optional flavor text, must be genuine, and must be written in the game state's thought_language. It also reinforces that chat is optional and separate from the move itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool submits a move the agent has already decided on, with a specific verb and resource. It also differentiates itself from tools that return move lists or menus: 'not a menu, not a ranked list, nothing pre-chosen for you.' This makes its purpose unmistakable relative to siblings like get_legal_moves.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to call this tool: after deciding on a move, with the expectation that illegal moves will return a reason and can be retried. It also provides guidance on mandatory thought content and language. It does not explicitly name alternatives like send_chat or share_thought, but the implied separation is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
offer_drawOffer a drawAInspect
Propose ending the game as a draw. The game stays active until your human responds.
| Name | Required | Description | Default |
|---|---|---|---|
| game_id | Yes | ||
| agent_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. The sentence 'The game stays active until your human responds' adds important non-obvious behavior: the offer does not immediately end the game. This is valuable context beyond the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main purpose, and the second sentence adds essential behavioral detail without redundancy. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter tool with no output schema, the description conveys purpose and a key behavior, but it lacks any parameter semantics. Given the low schema coverage, the description should have compensated by explaining game_id and agent_token, which it does not. This gap keeps it at a minimum viable level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention or explain the two required parameters (game_id, agent_token). Since the schema also lacks descriptions, the agent receives no additional semantic guidance for these parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Propose ending the game as a draw.' This uses a specific verb ('propose') and resource ('draw'), and it naturally distinguishes from sibling 'respond_to_draw' which handles the opponent's response.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by saying 'Propose ending the game as a draw,' which implies when to use it. However, it does not explicitly name alternatives or when not to use it, though the sibling 'respond_to_draw' is obviously the counterpart.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
react_to_chatReact to a chat message with emojiCInspect
Add an emoji reaction (e.g. 🦞, 🔥, ♟️, 😮, 🤝, 🧠, ☕, 👏, 😂) to a message in the chat history.
| Name | Required | Description | Default |
|---|---|---|---|
| emoji | Yes | The single emoji character to react with (e.g. 🦞, 🔥, 👏, 😮). | |
| game_id | Yes | ||
| message_id | Yes | The ID of the message to react to (from chat_history). | |
| agent_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, yet it only states the bare effect (adds a reaction). It does not disclose whether reactions are visible to all players, whether re-reacting replaces or stacks, whether this mutates shared game state, how agent_token auth works, or what happens on failure (e.g., invalid message_id). For a mutating tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the action and target are stated immediately. The eight emoji examples are slightly redundant since the schema already lists five of them, but the description remains compact and readable overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-required-parameter mutation with no output schema and no annotations, the description gives just enough to invoke the tool correctly (which message, which emoji), but omits expected outcomes, return behavior, and edge cases such as invalid message_ids. It is minimally viable but leaves the agent guessing about side effects and failure modes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: emoji and message_id have descriptions, while game_id and agent_token are bare names. The description adds value by supplying emoji examples and clarifying that message_id refers to a message in chat history, but it contributes nothing for game_id or agent_token. It partially compensates for the coverage gap without fully closing it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Add') and identifies a concrete resource ('a message in the chat history'), with concrete emoji examples that make the action tangible. It is implicitly distinguishable from the sibling send_chat, since reacting to an existing message differs from sending a new one, but the description never explicitly names that alternative or contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to react versus when to use send_chat or other chat-related tools, nor on any prerequisites such as being in the game or the message_id needing to come from chat_history. The phrase 'in the chat history' is the only weak hint at message sourcing, and the agent is left to infer the appropriate context entirely from the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resignResign the gameAInspect
End the game by resigning — your own real decision, not something to do lightly. Your human wins immediately.
| Name | Required | Description | Default |
|---|---|---|---|
| game_id | Yes | ||
| agent_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden. It discloses that the game ends and the human wins immediately, implying irreversibility, and the phrase 'your own real decision' signals intentionality. It does not detail authorization or response behavior, but those are less critical for this simple action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the main action. The additional warning 'your own real decision, not something to do lightly' adds a useful cautionary tone but is not essential technical information, so it loses one point for slight redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple resign action with two obvious parameters and no output schema, the description provides essential context: it ends the game and gives the human an immediate win. It could mention the response format or error cases, but these are not critical for a tool of this simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero description coverage (0%), and the description does not explain the roles of game_id or agent_token. While the parameter names are self-explanatory, the description fails to compensate for the lack of schema documentation, leaving the agent to infer their meanings.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('End the game by resigning') with a specific verb and resource, and it distinguishes itself from sibling tools like make_move or offer_draw by emphasizing finality and immediate human victory. The consequence is explicit, leaving no ambiguity about the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides strong context: it is a decisive, final action ('not something to do lightly') and explains that the human wins immediately. However, it does not explicitly mention alternatives such as offer_draw or state when not to use it, preventing a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
respond_to_drawRespond to a draw offerAInspect
Accept or decline a draw your human offered. This is your own real decision — weigh the actual position however you see fit.
| Name | Required | Description | Default |
|---|---|---|---|
| accept | Yes | ||
| game_id | Yes | ||
| agent_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for disclosing behavioral details. It mentions that the decision is the agent's own and to weigh the position, but it fails to mention that accepting will end the game in a draw or that declining continues play. This is a significant omission for a state-changing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is remarkably concise, packing the core functionality into a single clear sentence and a brief advisory statement. There is no wasted verbiage, and the front-loaded action is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
As a mutation tool with no annotations or output schema, the description needs to set expectations for what happens after the call. It does not explain the consequences of accepting or declining, error conditions, or prerequisites (e.g., a pending offer). The description is adequate for a simple boolean action but lacks the completeness expected for a state-changing operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no descriptions, and the description does not elaborate on the parameters. It only hints at the 'accept' parameter through 'accept or decline', leaving game_id and agent_token unexplained. With 0% schema coverage, the description should have provided at least some guidance on these parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (accept or decline) and the object (a draw offer from the human), using a specific verb. It naturally distinguishes from sibling tools like offer_draw, which would be for initiating a draw offer, by specifying that this is a response to an existing offer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes the context: responding to a draw offer from the human opponent. It doesn't explicitly list alternatives or exclusions, but the wording implies this tool is only for when a draw has been offered, making the usage clear enough. A more explicit mention of not using this to initiate draws could have improved it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_chatSend a chat messageAInspect
Say something to your human, any time — not just on your turn.
| Name | Required | Description | Default |
|---|---|---|---|
| game_id | Yes | ||
| message | Yes | ||
| agent_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses a key behavioral trait (usable at any time, not just during agent's turn), but does not mention any restrictions, side effects, or delivery details. This is a minimal but useful disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that fronts the core action and adds a key contextual nuance. Every word contributes value, and it is immediately understandable without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple chat-sending tool, the description covers the primary action and timing nuance, but it omits parameter explanations, return behavior, and any potential limitations. It is minimally adequate but leaves the agent to infer several operational details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only implicitly covers 'message' through 'Say something.' It provides no meaning for 'game_id' or 'agent_token,' leaving the agent to rely on external context. The description fails to compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: sending a chat message to a human. It also distinguishes itself from sibling game-action tools by emphasizing 'any time, not just on your turn,' making it specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'any time — not just on your turn' gives clear context on when to use this tool, explicitly noting it can be used outside the normal turn flow. It does not provide explicit exclusions or alternative tool references, but the usage context is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wait_for_eventWait for your turn, a chat message, or a draw offer (long-poll)AInspect
Holds the connection open, checking every couple seconds, for up to ~20 seconds. Returns the moment it becomes your turn, the human sends a chat message, a draw is offered, or the game ends — whichever happens first. When a cursor is provided, it returns any pending event newer than that cursor IMMEDIATELY without waiting. Returns event: "timeout" if none of those happened in the window. Always include next_cursor in subsequent calls for a completely deterministic loop.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | Event cursor from previous response. If provided, returns immediately if new events exist since this cursor. | |
| game_id | Yes | ||
| agent_token | Yes | ||
| since_cursor | No | Alias for cursor | |
| since_sequence | No | Sequence number from previous response | |
| max_wait_seconds | No | Default and hard cap 20 seconds — Vercel function duration limits, not a design choice. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the long-poll behavior (checks every couple seconds, up to ~20s), the timeout event, the immediate return with a cursor, and the 'timeout' event. It also transparently notes max_wait_seconds is capped by Vercel limits. Minor omissions like error handling but sufficient for a safe read-only operation (no mutation indicated).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense paragraph that front-loads the main behavior but could be more structured. Every sentence adds information (behavior, cursor optimization, timeout, deterministic loop advice), so it earns its place. Splitting into bullet points might improve readability, but it's not overly verbose for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains return behavior (events, timeout) but not the full event structure. It covers the main flow, cursor mechanics, and the timeout case. It also gives usage guidance for subsequent calls, which is essential for this polling tool. Missing details like exact event payloads or error codes, but for a waiting mechanism, it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, so the baseline is 3. The description adds value beyond the schema by explaining the cursor behavior ('returns any pending event newer than that cursor IMMEDIATELY without waiting') and the hard cap rationale for max_wait_seconds ('Vercel function duration limits, not a design choice'). It also mentions next_cursor (though it's not an exact parameter name), providing loop guidance. This enriches the meaning of the cursor-related parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear, specific verb and resource: 'Holds the connection open... Returns the moment it becomes your turn...'. It explicitly enumerates the four event types it waits for, which distinguishes it from sibling tools like get_game_state (which would not poll) and send_chat (which sends). The purpose is unambiguous and sets it apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool: for awaiting turn, chat, draw, or game end. It gives explicit guidance on cursor usage ('When a cursor is provided...') and recommends including next_cursor in subsequent calls for deterministic looping. However, it doesn't explicitly state when not to use it (e.g., for immediate state checks), but the polling nature is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user or an account that owns the GitHub organization, then choose Claim with GitHub.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Pedagogical chess intelligence for AI agents: explain positions and games for a target Elo.
AI-only game publishing, autonomous play, live observation, replay and independent certification.
Play Werewolf against other AI agents. join once, then loop observe/act. Public ELO leaderboard.
Connect AI assistants to HiveClaw — manage projects, talk to AI agents, and more.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA powerful chess engine and game server built with the Model Context Protocol (MCP). Play chess against AI, analyze positions, and integrate chess functionality into your AI applications.201ISC
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to play and analyze chess, validate moves, and view a live synchronized visual board in the browser through MCP tools.20MIT
- AlicenseAqualityAmaintenanceEnables Large Language Models to play chess agentically with real-time HTML board visualization and a hybrid AI engine featuring ten difficulty levels. It supports interactive games between users and agents, including a web dashboard to monitor active matches.4MIT
- AlicenseNot gradedqualityDmaintenanceEnables playing chess games with legal move validation and AI opponent moves powered by the Stockfish engine. Supports multiple concurrent games and provides moves in UCI format.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool targets a distinct action or resource: game lifecycle, board queries, move execution, chat/reactions, draw handling, and event waiting. The only near-neighbors — get_game_state vs get_legal_moves and offer_draw vs respond_to_draw — are clearly separated by their descriptions.
The set overwhelmingly follows a verb_noun snake_case pattern like create_game, get_game_state, and send_chat. Two single-word exceptions, heartbeat and resign, deviate slightly but remain clear and unlikely to cause confusion.
14 tools is well within the ideal range and each one covers a concrete need: setup, state, moves, communication, presence, and event handling. There are no redundant tools or filler entries.
The surface covers the full game lifecycle: create/join, legal moves, move execution, draw offer/response, resignation, and chat/reactions. The wait_for_event loop ties the asynchronous experience together, and get_game_state includes move and chat history, so no major gap is apparent.