Praetorium
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Public Warhammer 40K rules, datasheets, points and missions; sign in to manage rosters and battles.
| Author | io.github.richardsolomou |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 1743 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Praetorium": {
"url": "https://praetorium.gg/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (15)
list_my_rostersread-onlyLists the rosters saved to the signed-in Praetorium account. Requires mcp:read.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_my_rosterread-onlyReturns the saved choices for one roster owned by the signed-in player. Requires mcp:read.
Parameters:
id(required) — string
Hints: read-only yes · destructive no · idempotent yes · open-world no
list_my_battlesread-onlyLists up to 25 battles with a cursor for the next page. Requires mcp:read.
Parameters:
before
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_my_battleread-onlyReturns the current seated view of a battle for the signed-in player. Requires mcp:read.
Parameters:
token(required) — string
Hints: read-only yes · destructive no · idempotent yes · open-world no
save_rosterdestructiveSaves a complete roster. Pass its id to edit an owned roster; omit id to create one. limit is the battle size (1000, 2000 or 3000 points, or 600 for King of the Colosseum), which sets detachment points, enhancement and unit limits. pointsBudget optionally replaces only its points total (500 to 10000, not King of the Colosseum); omit it to keep a saved budget, or send null for the standard total. Requires mcp:write.
Parameters:
name(required) — stringcatalogueId(required) — stringdetachmentIds(required) — arraydisposition(required)limit(required) — integerpicks(required) — arrayprep(required)id— stringsource— stringvisibility— stringwaivedRules— arraypointsBudgetoptionalRules— arrayborrowedDetachmentId
Hints: read-only no · destructive yes · idempotent no · open-world yes
set_roster_visibilitydestructiveChanges the visibility of an owned roster. Requires mcp:write.
Parameters:
id(required) — stringvisibility(required) — string
Hints: read-only no · destructive yes · idempotent no · open-world yes
create_battledestructiveCreates a battle with named player seats, using the same rules as the site. Requires mcp:write.
Parameters:
limitallyId— stringcasual— booleanmanual— booleanguestNames— arrayopponentId— stringopponentIds— arraymissionPackId
Hints: read-only no · destructive yes · idempotent no · open-world yes
submit_battle_actiondestructiveAppends a legal battle command only when expectedSeq matches the current log. Requires mcp:write.
Parameters:
token(required) — stringexpectedSeq(required) — integercommand(required)
Hints: read-only no · destructive yes · idempotent no · open-world yes
search_referenceread-onlySearches Praetorium’s missions, rules, detachments, and datasheets by name, number, keyword, and value. Returns bounded excerpts with canonical URLs, source revisions, and attribution. Rules text is not included; records point to it upstream.
Parameters:
query(required) — string — A name, a printed rule number, an ability, a weapon, or a keyword.pack— stringkinds— arraylimit— integercursor— stringfaction— stringdocument— string
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_referenceread-onlyReads the complete bounded document returned by search_reference, with its revisions and attribution. A section that withholds rules text lists textSources: the pinned upstream file and record id to fetch if you need the wording.
Parameters:
id(required) — string — The stable result id returned by search_reference.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_reference_recordread-onlyReturns the structured record behind a search result, including mission cards, deployments, terrain geometry, detachments, and datasheets. Records that withhold rules text carry textSources pointing at the pinned upstream file and record id.
Parameters:
id(required) — string — The stable id returned by search_reference or list_reference.
Hints: read-only yes · destructive no · idempotent yes · open-world no
list_factionsread-onlyLists the factions that can be used to narrow reference searches.
Hints: read-only yes · destructive no · idempotent yes · open-world no
list_referenceread-onlyDiscovers available factions, mission packs, rule documents, reference kinds, and active source revisions.
Hints: read-only yes · destructive no · idempotent yes · open-world no
list_unitsread-onlyReturns every pickable unit in one bounded response with unit-size costs, composition, attachment relationships, roster limits, roles, keywords, and links. Include a detachment to receive its rules, enhancements, upgrades, and stratagems by name, cost, and timing without opening every unit page. Their rules text is at each record’s textSources.
Parameters:
faction(required) — string — Faction id, URL slug, or display name from list_reference.battleSize— integer — Battle size in points for size-dependent limits.detachment— string — Detachment id, slug, or display name.
Hints: read-only yes · destructive no · idempotent yes · open-world no
simulate_combatread-onlyRuns Praetorium's exact combat simulator for one attacking unit, with any attached leaders, against one defending unit at full strength: shooting, melee, and shooting followed by melee. Returns expected models destroyed, expected wounds lost, the chance to destroy the unit, cumulative odds, weapons used, the rule and weapon-mode choices each side can change, datasheet citations, and a simulator link. Passive datasheet rules apply by default; stratagems and conditional rules stay off until chosen. Rules the simulator cannot calculate are never approximated: a phase it cannot estimate has status refused with its reasons, and recognised rules it leaves out are listed under notCalculated, so explain those gaps rather than retrying. Errors are reserved for unknown factions or units, illegal unit sizes or attachments, and unavailable reference data. Like the standalone simulator page, it uses default loadouts and no detachment; unit sizes and attachments must be legal.
Parameters:
attacker(required) — objectdefender(required) — objectmodifiers— object — Situational modifiers the simulator page offers, such as { "all": { "cover": true, "hitModifier": -1 } }, { "melee": { "charged": true } }, or { "target": { "invulnerable": 4 } }.weaponModes— object — Weapon mode choices by key from a previous result, such as a frag or krak profile.
Hints: read-only yes · destructive no · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.