Tools: War
The War tools your agent sees through Elixir MCP: what each one answers, what it takes, and which capability it needs.
War
4 of the 47 tools in the registry. Generated from what tools/list returns, so this is exactly what your agent sees.
Current war war_current
The current (latest recorded) river race for a clan, yours by default: standings across the five clans with banked fame and current-day period_points, per-member points and decks used this race week, and the war day. decks_today names who is untouched, partial and finished on every race-week day, day_kind training or war (only war decks score). verbosity compact keeps standings, the period, the counts and the nudge lists and drops participants. live: true asks for a read of ANY clan, recorded or not: served if in hand, otherwise queued while the record answers with live_status pending.
Read-only ·
requires cr:read · reaches the live Clash Royale API, outside the record
| Argument | Type | Required | Notes |
|---|---|---|---|
clan_tag |
string | no | Clan tag like #J2RGCRVG. Omit to mean your recorded clan. |
verbosity |
string | no | compact: drops the participants array; keeps standings, period, counts, members_not_in_race and the decks_today lists. (full · compact) |
live |
boolean | no | Ask for a read of this clan's race no older than two minutes; works for a clan nobody records. Served if in hand, otherwise queued while the record answers with live_status pending. A race still matchmaking after a season roll answers live_status matchmaking: no race yet. |
What comes back (declared outputSchema; fields marked required are always present):
| Field | Type | Required | Notes |
|---|---|---|---|
live_status |
object | no | With live: true: whether a fresh read was served or is pending (retry_after_s says when to call again), or state matchmaking: the read found the clan's new race not yet matched after a season roll, so there is no race yet (fetched_at, retry_after_s). |
clan_tag |
string | yes | Clash Royale tag, e.g. #20JJJ2CCRU. |
season_id |
integer | yes | |
section_index |
integer | yes | |
is_colosseum |
boolean | no | |
day_kind |
string | null | yes | |
war_day |
integer | null | yes | |
next_war_day_opens_at |
string | null | no | |
applied |
object | no | |
standings |
array | yes | |
participants |
array | no | |
participants_count |
integer | yes | |
member_count |
integer | yes | |
members_not_in_race |
array | yes | |
period |
object | no | |
days_closed |
array | no | Full verbosity: the race's own day-by-day (periodLogs), one entry per closed war day (3.15.0). |
race_finished_at |
string | null | no | |
finish_war_day |
integer | null | no | The war day whose close carried this clan's boat over the line (6.11.0); null while it has not finished or when the day-by-day log does not say. Decks used after it earn nothing, so on a finished week participants[].decks_used is not the denominator of a points-per-deck rate. |
decks_today |
object | null | yes | The day still being played, from the game's own decksUsedToday counter as the last race poll recorded it (9.1.2: no longer raised to war battles placed on the policy day). |
decks_today_reason |
string | no | (period_unknown · war_day_over · training_day) |
notes |
array | yes | One-sentence caveats to repeat when quoting the numbers. |
docs |
string | yes | page or page#section for elixir_docs / elixir://docs. |
meta |
object | yes | The envelope (docs: responses). |
Game clock game_clock
What time it is in Clash Royale, for nobody in particular: current season, week within the season, whether today is a training day or war day, when this day ends, and the next boundaries of each kind (war_day_closes_at, next_war_day_opens_at, next_training_starts_at, week_ends_at, season_ends_at) so a routine can schedule itself. Needs no player and no clan. Use it to decide WHEN to look before deciding who to look at; war_current is the tool for what a specific clan is doing inside this day.
Read-only ·
requires cr:read
| Argument | Type | Required | Notes |
|---|---|---|---|
at |
string | no | ISO 8601 instant to describe instead of now, e.g. to learn what day a recorded battle fell on. A date alone (YYYY-MM-DD) means that GAME day: its start, 10:00Z on that date, as every daily series keys it. |
verbosity |
string | no | This tool has one size: compact is accepted and changes nothing (the response says so in a note). (full · compact) |
What comes back (declared outputSchema; fields marked required are always present):
| Field | Type | Required | Notes |
|---|---|---|---|
applied |
object | yes | |
as_of |
string | null | yes | |
day_ends_at |
string | null | yes | |
day_kind |
string | null | yes | |
day_started_at |
string | null | yes | |
docs |
string | yes | page or page#section for elixir_docs / elixir://docs. |
meta |
object | yes | The envelope (docs: responses). |
next_training_starts_at |
string | null | yes | |
next_war_day_opens_at |
string | null | yes | |
notes |
array | yes | One-sentence caveats to repeat when quoting the numbers. |
period_index |
number | null | yes | |
season_ends_at |
string | null | yes | |
season_id |
number | null | yes | |
season_month |
string | null | yes | |
season_started_at |
string | null | yes | |
section_index |
number | null | yes | |
war_day |
yes | ||
war_day_closes_at |
yes | ||
weeks_in_season |
number | null | no | |
is_colosseum |
boolean | null | no | |
colosseum_starts_at |
string | null | no | |
week |
number | null | yes | |
week_ends_at |
string | null | yes |
Scouting Report war_rivals
The Scouting Report: observed war history for rival clans. Every recorded river race captures all five bracket clans, so rivals accumulate fingerprints across every race they shared with a recorded clan. Defaults to your clan's current bracket. Pure aggregation of stored observations: races seen, fame record, zero-fame races, seasons spanned.
Read-only ·
requires cr:read
| Argument | Type | Required | Notes |
|---|---|---|---|
clan_tag |
string | no | Your clan (the anchor whose bracket is meant). Omit for your recorded clan. |
rival_tags |
array | no | Specific rival clans; omit for the current bracket. |
verbosity |
string | no | This tool has one size: compact is accepted and changes nothing (the response says so in a note). (full · compact) |
What comes back (declared outputSchema; fields marked required are always present):
| Field | Type | Required | Notes |
|---|---|---|---|
applied |
object | yes | |
clan_tag |
string | null | yes | |
docs |
string | yes | page or page#section for elixir_docs / elixir://docs. |
meta |
object | yes | The envelope (docs: responses). |
notes |
array | yes | One-sentence caveats to repeat when quoting the numbers. |
rivals |
array | yes |
War history war_history
Recorded war weeks for a clan, yours by default: final ranks and boat fame. With player_tag (or on_behalf_of), returns one member's per-week points and decks used (weekly totals; nothing is split by war day). With season_id and section_index together, returns that exact week plus every recorded participant in member_weeks. seasons says how far back otherwise; from/to are not needed here.
Read-only ·
requires cr:read
| Argument | Type | Required | Notes |
|---|---|---|---|
clan_tag |
string | no | Clan tag like #J2RGCRVG. Omit to mean your recorded clan. |
player_tag |
string | no | Focus one member's participation (member_weeks). |
on_behalf_of |
string | no | Agent connections: the end user's id on your surface (e.g. discord:1234), mapped once with elixir_identify. Ignored on a personal connection. |
display_name |
string | no | Agent connections, beside on_behalf_of: the asker's display name on your surface. When on_behalf_of is not mapped yet, no_subject carries candidates[]: the clan members whose whole name matches it (case and spacing ignored), so one elixir_identify call follows; nothing is guessed from a partial match. |
seasons |
integer | no | How many seasons back. |
season_id |
integer | no | Exact season to read; supply section_index too. Returns every recorded participant for that week unless player_tag focuses one. |
section_index |
integer | no | Exact section (week) within season_id; supply season_id too. |
verbosity |
string | no | This tool has one size: compact is accepted and changes nothing (the response says so in a note). (full · compact) |
What comes back (declared outputSchema; fields marked required are always present):
| Field | Type | Required | Notes |
|---|---|---|---|
clan_tag |
string | yes | Clash Royale tag, e.g. #20JJJ2CCRU. |
name |
string | null | no | Last-observed name; null when the record has none. |
applied |
object | yes | |
weeks |
array | yes | Newest first. |
history_starts_at |
object | no | The recording horizon, on both paths (6.15.0; the exact-week path used to drop it): the oldest week the record holds for the clan. |
member |
string | no | Clash Royale tag, e.g. #20JJJ2CCRU. |
member_weeks |
array | null | no | |
standings |
array | no | |
days |
array | no | The exact week's day-by-day (periodLogs), the same rows as war_current.days_closed: progress_end is the API's capped value on a finishing day and progress_end_banked the banked one (6.15.0). |
notes |
array | yes | One-sentence caveats to repeat when quoting the numbers. |
docs |
string | yes | page or page#section for elixir_docs / elixir://docs. |
meta |
object | yes | The envelope (docs: responses). |