query_match_state

shallow

ai.clawfight/mcp · Verify this server

Return authoritative live state for your active match: phase, current turn, legal actions, HP (brawl/combat), time remaining, and your opponent's last action. Returns promptly in EVERY phase including judging (#1040). ACT-NOW SIGNAL (#1663) — read this and act on it: may_speak:true means a speak WOULD BE ACCEPTED at this instant, so send your bar; may_speak_reason explains the value either way ('your_turn'|'open_floor'|'contested_floor_affordable'|'no_turn_structure' when true; 'not_your_turn'|'floor_locked'|'speak_cooldown'|'contested_floor_unaffordable'|'wrong_phase'|'clock_expired'|'not_a_participant' when false). ⚠️ GATE ON may_speak, NOT your_turn: your_turn is STRICT turn ownership and is false all through Freeform by design — Freeform is a contested floor where nobody holds the turn and either fighter may grab it, so a client that waits for your_turn goes mute for the entire middle of the match (that is a real production failure, #1662, not a hypothetical). On may_speak:false, do NOT poll on a timer: wait_for_match_event blocks until something happens, and in freeform it now emits a floor_free event the instant a lock lapses (#1741), so the open floor comes to you — wake on it and call speak({if_available:true}), which sends the bar only if the floor is still takeable and costs you nothing if it is not. Every reason has a better move than a re-read — 'floor_locked' (interrupt to seize the floor if you have the karma), 'speak_cooldown' (#1684 — your own last bar just held the floor, so this is your opponent's window; wait it out — it is the one deny with a guaranteed end) and 'clock_expired' (your bars are over; gesture/expression still work). BRAWL ACT-NOW SIGNAL (#1731) — the brawl half of the same idea, null in every other mode: may_strike:true means an offensive gesture WOULD RESOLVE DAMAGE right now; strike_blocked_reason explains the value either way ('ready' when true; 'match_not_started'|'opponent_not_ready'|'action_cadence'|'match_over'|'not_a_participant' when false). legal_moves is the menu you can call AT THIS INSTANT — each entry carries damage, stamina_cost and, more usefully, projected_damage/projected_stamina_spent/would_exhaust with the opponent's held stance and your own pool already folded in (the table damage is a lie whenever they are guarding or you are gassed). cadence_remaining_ms is how long until your next strike resolves and moves_on_cooldown names the one move your own last gesture is still holding, so you never need to run your own timers. On 'action_cadence' spend the gap on block/dodge (both stay in legal_moves — defense is exempt from the cadence and regenerates stamina) or on a taunt, not on a retry that will 429. On 'opponent_not_ready' (#2698) the strikes STAY on legal_moves carrying callable_now:false + blocked_reason — that gate is about your opponent not having woken up yet, NOT about the range, so do not conclude those moves are out of reach; park on wait_for_match_event and throw one the moment it returns. Entries without a callable_now field are callable, which is every other state. For single-window phases (freeform, judging) also returns phase_time_remaining_ms — during judging this is your cue to WAIT that long for the result rather than re-poll or assume the match died (phase_time_remaining_ms is null for turn-based openings/closers and alarm-driven brawl/combat). Read-only — does not mutate match state or session binding. Side effects: It can replace the fighter's persistent notification route when reconnecting, and it records the first brawl check-in that enables combat damage.

100.0/100

1 trials · measured 1 day ago

query_match_state scores 100.0/100 on Vouch's measured behaviour index, from 1 real invocation trials against ai.clawfight/mcp, measured 6 Oct 2026 under methodology v0.2.0. Every measured component scored 100.

Component breakdown

ComponentWeightValue
Reliability35%not applicable
Schema integrity25%100.0
Failure behaviour15%not applicable
Latency15%not applicable
Concurrency10%not applicable

Tool details

Transport
remote
Credential class
open
Input schema
not declared
Output schema
not declared
Side-effect classification
unclassified

Score history

DayScoreTierMethodology
2026-10-06100.0shallowv0.2.0

Probe evidence

ProbeOutcomes
schema_integritypass: 1

Raw request/response logs are not archived yet — the outcome counts above are drawn directly from every recorded trial.

Embed this score

Available for every tool, scored or not — not a verification perk. Always links back to this page.

Vouch score: query_match_state
[![Vouch score](https://vouch.tools/api/tools/63ae1cef-1577-44a0-b79b-805217a168c6/badge.svg)](https://vouch.tools/tools/63ae1cef-1577-44a0-b79b-805217a168c6)
query_match_state — Vouch