← WebMCP Directory

Tool tree

praetorium.gg

Media & PersonalTools verified
Website
Chapter Approved 2026-2027 Force Disposition matchups, primary missions, and scoring.
Explore capabilities

    page: Every page

    search_referenceAnswer

    Searches 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.

    View tool JSON
    {
      "name": "search_reference",
      "kind": "answer",
      "impl": "imperative",
      "description": "Searches 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.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 2,
            "maxLength": 120,
            "description": "A name, a printed rule number, an ability, a weapon, or a keyword."
          },
          "kinds": {
            "maxItems": 6,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "datasheet",
                "deployment",
                "detachment",
                "mission",
                "rule",
                "terrain"
              ]
            }
          },
          "faction": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "pack": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "document": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "limit": {
            "default": 10,
            "type": "integer",
            "minimum": 1,
            "maximum": 25
          },
          "cursor": {
            "type": "string"
          }
        },
        "required": [
          "query"
        ]
      },
      "page": "/missions/chapter-approved-2026-2027"
    }
    get_referenceAnswer

    Reads 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.

    View tool JSON
    {
      "name": "get_reference",
      "kind": "answer",
      "impl": "imperative",
      "description": "Reads 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.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 400,
            "description": "The stable result id returned by search_reference."
          }
        },
        "required": [
          "id"
        ]
      },
      "page": "/missions/chapter-approved-2026-2027"
    }
    get_reference_recordAnswer

    Returns 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.

    View tool JSON
    {
      "name": "get_reference_record",
      "kind": "answer",
      "impl": "imperative",
      "description": "Returns 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.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 400,
            "description": "The stable id returned by search_reference or list_reference."
          }
        },
        "required": [
          "id"
        ]
      },
      "page": "/missions/chapter-approved-2026-2027"
    }
    list_factionsAnswer

    Lists the factions that can be used to narrow reference searches.

    View tool JSON
    {
      "name": "list_factions",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lists the factions that can be used to narrow reference searches.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {}
      },
      "page": "/missions/chapter-approved-2026-2027"
    }
    list_referenceAnswer

    Discovers available factions, mission packs, rule documents, reference kinds, and active source revisions.

    View tool JSON
    {
      "name": "list_reference",
      "kind": "answer",
      "impl": "imperative",
      "description": "Discovers available factions, mission packs, rule documents, reference kinds, and active source revisions.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {}
      },
      "page": "/missions/chapter-approved-2026-2027"
    }
    list_unitsAnswer

    Returns every pickable unit in one bounded response with unit-size costs, composition, attachment relationships, roster limits, roles, keywords, and links. Include a detachment, including one a chapter takes from its codex, to list only the units it allows and 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.

    View tool JSON
    {
      "name": "list_units",
      "kind": "answer",
      "impl": "imperative",
      "description": "Returns every pickable unit in one bounded response with unit-size costs, composition, attachment relationships, roster limits, roles, keywords, and links. Include a detachment, including one a chapter takes from its codex, to list only the units it allows and 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.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "faction": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "Faction id, URL slug, or display name from list_reference."
          },
          "battleSize": {
            "description": "Battle size in points for size-dependent limits.",
            "type": "integer",
            "minimum": 1,
            "maximum": 10000
          },
          "detachment": {
            "description": "Detachment id, slug, or display name.",
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          }
        },
        "required": [
          "faction"
        ]
      },
      "page": "/missions/chapter-approved-2026-2027"
    }
    simulate_combatAction

    Runs 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.

    View tool JSON
    {
      "name": "simulate_combat",
      "kind": "act",
      "impl": "imperative",
      "description": "Runs 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.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "attacker": {
            "type": "object",
            "properties": {
              "faction": {
                "type": "string",
                "minLength": 1,
                "maxLength": 160,
                "description": "Faction id, URL slug, or display name from list_reference or list_units."
              },
              "unit": {
                "type": "string",
                "minLength": 1,
                "maxLength": 400,
                "description": "Unit id, slug, name, or referenceId from list_units."
              },
              "models": {
                "description": "Model count; must be a legal unit size. Defaults to the minimum size.",
                "type": "integer",
                "minimum": 1,
                "maximum": 60
              },
              "attached": {
                "description": "Leaders or support units joined to the unit, from its canBeLedBy and canBeSupportedBy. A unit that joins one of these instead, such as Nork Deddog joining a Cadian Command Squad, goes after it.",
                "maxItems": 2,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "unit": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 400,
                      "description": "Unit id, slug, name, or referenceId from list_units."
                    },
                    "models": {
                      "description": "Model count; must be a legal unit size. Defaults to the minimum size.",
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 60
                    },
                    "faction": {
                      "description": "Defaults to the unit's faction.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 160
                    }
                  },
                  "required": [
                    "unit"
                  ]
                }
              },
              "rules": {
                "description": "Rule choices by rule id from a previous result: 0 turns a rule off and n selects its nth option.",
                "type": "object",
                "propertyNames": {
                  "type": "string",
                  "maxLength": 400
                },
                "additionalProperties": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 20
                }
              }
            },
            "required": [
              "faction",
              "unit"
            ]
          },
          "defender": {
            "type": "object",
            "properties": {
              "faction": {
                "type": "string",
                "minLength": 1,
                "maxLength": 160,
                "description": "Faction id, URL slug, or display name from list_reference or list_units."
              },
              "unit": {
                "type": "string",
                "minLength": 1,
                "maxLength": 400,
                "description": "Unit id, slug, name, or referenceId from list_units."
              },
              "models": {
                "description": "Model count; must be a legal unit size. Defaults to the minimum size.",
                "type": "integer",
                "minimum": 1,
                "maximum": 60
              },
              "attached": {
                "description": "Leaders or support units joined to the unit, from its canBeLedBy and canBeSupportedBy. A unit that joins one of these instead, such as Nork Deddog joining a Cadian Command Squad, goes after it.",
                "maxItems": 2,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "unit": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 400,
                      "description": "Unit id, slug, name, or referenceId from list_units."
                    },
                    "models": {
                      "description": "Model count; must be a legal unit size. Defaults to the minimum size.",
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 60
                    },
                    "faction": {
                      "description": "Defaults to the unit's faction.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 160
                    }
                  },
                  "required": [
                    "unit"
                  ]
                }
              },
              "rules": {
                "description": "Rule choices by rule id from a previous result: 0 turns a rule off and n selects its nth option.",
                "type": "object",
                "propertyNames": {
                  "type": "string",
                  "maxLength": 400
                },
                "additionalProperties": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 20
                }
              }
            },
            "required": [
              "faction",
              "unit"
            ]
          },
          "modifiers": {
            "description": "Situational modifiers the simulator page offers, such as { \"all\": { \"cover\": true, \"hitModifier\": -1 } }, { \"melee\": { \"charged\": true } }, or { \"target\": { \"invulnerable\": 4 } }.",
            "type": "object",
            "properties": {
              "all": {
                "type": "object",
                "properties": {
                  "cover": {
                    "type": "boolean"
                  },
                  "indirectFire": {
                    "type": "string",
                    "enum": [
                      "direct",
                      "unobserved",
                      "spotted"
                    ]
                  },
                  "halfRange": {
                    "type": "boolean"
                  },
                  "heavy": {
                    "type": "boolean"
                  },
                  "charged": {
                    "type": "boolean"
                  },
                  "hitModifier": {
                    "type": "integer",
                    "minimum": -100,
                    "maximum": 100
                  },
                  "psychicHitModifier": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 100
                  },
                  "positiveWoundModifier": {
                    "type": "integer",
                    "minimum": -100,
                    "maximum": 100
                  },
                  "woundModifier": {
                    "type": "integer",
                    "minimum": -100,
                    "maximum": 100
                  },
                  "hitReroll": {
                    "type": "string",
                    "enum": [
                      "none",
                      "ones",
                      "failed"
                    ]
                  },
                  "woundReroll": {
                    "type": "string",
                    "enum": [
                      "none",
                      "ones",
                      "failed"
                    ]
                  },
                  "lethal": {
                    "type": "boolean"
                  }
                }
              },
              "ranged": {
                "type": "object",
                "properties": {
                  "cover": {
                    "type": "boolean"
                  },
                  "indirectFire": {
                    "type": "string",
                    "enum": [
                      "direct",
                      "unobserved",
                      "spotted"
                    ]
                  },
                  "halfRange": {
                    "type": "boolean"
                  },
                  "heavy": {
                    "type": "boolean"
                  },
                  "charged": {
                    "type": "boolean"
                  },
                  "hitModifier": {
                    "type": "integer",
                    "minimum": -100,
                    "maximum": 100
                  },
                  "psychicHitModifier": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 100
                  },
                  "positiveWoundModifier": {
                    "type": "integer",
                    "minimum": -100,
                    "maximum": 100
                  },
                  "woundModifier": {
                    "type": "integer",
                    "minimum": -100,
                    "maximum": 100
                  },
                  "hitReroll": {
                    "type": "string",
                    "enum": [
                      "none",
                      "ones",
                      "failed"
                    ]
                  },
                  "woundReroll": {
                    "type": "string",
                    "enum": [
                      "none",
                      "ones",
                      "failed"
                    ]
                  },
                  "lethal": {
                    "type": "boolean"
                  }
                }
              },
              "melee": {
                "type": "object",
                "properties": {
                  "cover": {
                    "type": "boolean"
                  },
                  "indirectFire": {
                    "type": "string",
                    "enum": [
                      "direct",
                      "unobserved",
                      "spotted"
                    ]
                  },
                  "halfRange": {
                    "type": "boolean"
                  },
                  "heavy": {
                    "type": "boolean"
                  },
                  "charged": {
                    "type": "boolean"
                  },
                  "hitModifier": {
                    "type": "integer",
                    "minimum": -100,
                    "maximum": 100
                  },
                  "psychicHitModifier": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 100
                  },
                  "positiveWoundModifier": {
                    "type": "integer",
                    "minimum": -100,
                    "maximum": 100
                  },
                  "woundModifier": {
                    "type": "integer",
                    "minimum": -100,
                    "maximum": 100
                  },
                  "hitReroll": {
                    "type": "string",
                    "enum": [
                      "none",
                      "ones",
                      "failed"
                    ]
                  },
                  "woundReroll": {
                    "type": "string",
                    "enum": [
                      "none",
                      "ones",
                      "failed"
                    ]
                  },
                  "lethal": {
                    "type": "boolean"
                  }
                }
              },
              "weapons": {
                "type": "object",
                "properties": {
                  "all": {
                    "type": "object",
                    "properties": {
                      "skill": {
                        "type": "integer",
                        "minimum": -10,
                        "maximum": 10
                      },
                      "strength": {
                        "type": "integer",
                        "minimum": -10,
                        "maximum": 10
                      },
                      "attacks": {
                        "type": "integer",
                        "minimum": -10,
                        "maximum": 10
                      },
                      "ap": {
                        "type": "integer",
                        "minimum": -10,
                        "maximum": 10
                      },
                      "damage": {
                        "type": "integer",
                        "minimum": -10,
                        "maximum": 10
                      },
                      "criticalHit": {
                        "type": "integer",
                        "minimum": 2,
                        "maximum": 6
                      },
                      "criticalWound": {
                        "type": "integer",
                        "minimum": 2,
                        "maximum": 6
                      },
                      "sustained": {
                        "anyOf": [
                          {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 100
                          },
                          {
                            "type": "object",
                            "properties": {
                              "dice": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 10
                              },
                              "sides": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "const": 3
                                  },
                                  {
                                    "type": "number",
                                    "const": 6
                                  }
                                ]
                              },
                              "bonus": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 100
                              }
                            },
                            "required": [
                              "dice",
                              "sides",
                              "bonus"
                            ]
                          }
                        ]
                      },
                      "lethal": {
                        "type": "boolean"
                      },
                      "devastating": {
                        "type": "boolean"
                      },
                      "damageReroll": {
                        "type": "boolean"
                      }
                    }
                  },
                  "ranged": {
                    "type": "object",
                    "properties": {
                      "skill": {
                        "type": "integer",
                        "minimum": -10,
                        "maximum": 10
                      },
                      "strength": {
                        "type": "integer",
                        "minimum": -10,
                        "maximum": 10
                      },
                      "attacks": {
                        "type": "integer",
                        "minimum": -10,
                        "maximum": 10
                      },
                      "ap": {
                        "type": "integer",
                        "minimum": -10,
                        "maximum": 10
                      },
                      "damage": {
                        "type": "integer",
                        "minimum": -10,
                        "maximum": 10
                      },
                      "criticalHit": {
                        "type": "integer",
                        "minimum": 2,
                        "maximum": 6
                      },
                      "criticalWound": {
                        "type": "integer",
                        "minimum": 2,
                        "maximum": 6
                      },
                      "sustained": {
                        "anyOf": [
                          {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 100
                          },
                          {
                            "type": "object",
                            "properties": {
                              "dice": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 10
                              },
                              "sides": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "const": 3
                                  },
                                  {
                                    "type": "number",
                                    "const": 6
                                  }
                                ]
                              },
                              "bonus": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 100
                              }
                            },
                            "required": [
                              "dice",
                              "sides",
                              "bonus"
                            ]
                          }
                        ]
                      },
                      "lethal": {
                        "type": "boolean"
                      },
                      "devastating": {
                        "type": "boolean"
                      },
                      "damageReroll": {
                        "type": "boolean"
                      }
                    }
                  },
                  "melee": {
                    "type": "object",
                    "properties": {
                      "skill": {
                        "type": "integer",
                        "minimum": -10,
                        "maximum": 10
                      },
                      "strength": {
                        "type": "integer",
                        "minimum": -10,
                        "maximum": 10
                      },
                      "attacks": {
                        "type": "integer",
                        "minimum": -10,
                        "maximum": 10
                      },
                      "ap": {
                        "type": "integer",
                        "minimum": -10,
                        "maximum": 10
                      },
                      "damage": {
                        "type": "integer",
                        "minimum": -10,
                        "maximum": 10
                      },
                      "criticalHit": {
                        "type": "integer",
                        "minimum": 2,
                        "maximum": 6
                      },
                      "criticalWound": {
                        "type": "integer",
                        "minimum": 2,
                        "maximum": 6
                      },
                      "sustained": {
                        "anyOf": [
                          {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 100
                          },
                          {
                            "type": "object",
                            "properties": {
                              "dice": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 10
                              },
                              "sides": {
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "const": 3
                                  },
                                  {
                                    "type": "number",
                                    "const": 6
                                  }
                                ]
                              },
                              "bonus": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 100
                              }
                            },
                            "required": [
                              "dice",
                              "sides",
                              "bonus"
                            ]
                          }
                        ]
                      },
                      "lethal": {
                        "type": "boolean"
                      },
                      "devastating": {
                        "type": "boolean"
                      },
                      "damageReroll": {
                        "type": "boolean"
                      }
                    }
                  }
                }
              },
              "target": {
                "type": "object",
                "properties": {
                  "toughness": {
                    "type": "integer",
                    "minimum": -10,
                    "maximum": 10
                  },
                  "save": {
                    "type": "integer",
                    "minimum": -10,
                    "maximum": 10
                  },
                  "invulnerable": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": 2,
                        "maximum": 6
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "saveReroll": {
                    "type": "string",
                    "enum": [
                      "ones",
                      "failed"
                    ]
                  },
                  "damageReduction": {
                    "type": "boolean"
                  },
                  "halveDamage": {
                    "type": "boolean"
                  }
                }
              },
              "feelNoPain": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 2,
                    "maximum": 6
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            }
          },
          "weaponModes": {
            "description": "Weapon mode choices by key from a previous result, such as a frag or krak profile.",
            "type": "object",
            "propertyNames": {
              "type": "string",
              "maxLength": 400
            },
            "additionalProperties": {
              "type": "string",
              "maxLength": 200
            }
          }
        },
        "required": [
          "attacker",
          "defender"
        ]
      },
      "page": "/missions/chapter-approved-2026-2027"
    }
    get_praetorium_guideAnswer

    Product capabilities, privacy boundaries, data trust model, and efficient agent workflow.

    View tool JSON
    {
      "name": "get_praetorium_guide",
      "kind": "answer",
      "impl": "imperative",
      "description": "Product capabilities, privacy boundaries, data trust model, and efficient agent workflow.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {}
      },
      "page": "/missions/chapter-approved-2026-2027"
    }
    get_reference_statusAnswer

    Active snapshot revisions and the available public reference catalogue.

    View tool JSON
    {
      "name": "get_reference_status",
      "kind": "answer",
      "impl": "imperative",
      "description": "Active snapshot revisions and the available public reference catalogue.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {}
      },
      "page": "/missions/chapter-approved-2026-2027"
    }
    answer_rules_questionAction

    Search the verified reference and answer with source URLs without guessing.

    View tool JSON
    {
      "name": "answer_rules_question",
      "kind": "act",
      "impl": "imperative",
      "description": "Search the verified reference and answer with source URLs without guessing.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "question": {
            "type": "string",
            "minLength": 2,
            "maxLength": 500
          },
          "faction": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          }
        },
        "required": [
          "question"
        ]
      },
      "page": "/missions/chapter-approved-2026-2027"
    }
    explain_mission_matchupAction

    Resolve a force-disposition pairing and explain its mission, scoring, deployment, and terrain.

    View tool JSON
    {
      "name": "explain_mission_matchup",
      "kind": "act",
      "impl": "imperative",
      "description": "Resolve a force-disposition pairing and explain its mission, scoring, deployment, and terrain.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "properties": {
          "pack": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "yourDisposition": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "opponentDisposition": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          }
        },
        "required": [
          "pack",
          "yourDisposition",
          "opponentDisposition"
        ]
      },
      "page": "/missions/chapter-approved-2026-2027"
    }