protogrid

Search / io.github.richardsolomou/praetorium

Praetorium

R0· no sign-in

Public Warhammer 40K rules, datasheets, points and missions; sign in to manage rosters and battles.

v1.2.0 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality72needs work
Trust96of 100
Uptime, 30 days95%
Latency p50648 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "praetorium": {
      "type": "http",
      "url": "https://praetorium.gg/mcp"
    }
  }
}
claude mcp add --transport http praetorium https://praetorium.gg/mcp
[mcp_servers.praetorium]
url = "https://praetorium.gg/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "praetorium": {
      "type": "remote",
      "url": "https://praetorium.gg/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "praetorium": {
      "type": "http",
      "url": "https://praetorium.gg/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=praetorium&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vcHJhZXRvcml1bS5nZy9tY3AifQ%3D%3D"
}
{
  "servers": {
    "praetorium": {
      "type": "http",
      "url": "https://praetorium.gg/mcp"
    }
  }
}
{
  "mcpServers": {
    "praetorium": {
      "httpUrl": "https://praetorium.gg/mcp"
    }
  }
}
extensions:
  "praetorium":
    enabled: true
    name: "praetorium"
    type: streamable_http
    uri: "https://praetorium.gg/mcp"
    timeout: 300

Quality 72 / 100needs work

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene93 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations15 of 15 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • warn
    tools.token_costabout 16,465 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability25 · weight 15
  • warn
    stability.changes40 tool changes in 30 days
  • fail
    stability.rug_pull3 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

15 tools, about 16,465 tokens to load them all · tool set 69501fc65e5a · tools last changed 2026-10-19 · checked 2026-10-20 13:17 UTC

Tool changes

  • submit_battle_actionchangedinput schema
  • create_battlechangedinput schema
  • list_unitschangeddescription
    before

    Returns 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 complete rules, enhancements, upgrades, and stratagems without opening every unit page.

    after · 72% of words in common

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

  • get_reference_recordchangeddescription, output schema
    before

    Returns the source-faithful structured record behind a search result, including mission cards, deployments, terrain geometry, detachments, and datasheets.

    after · 53% of words in common

    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.

  • get_referencechangeddescription, output schemameaning changed
    before

    Reads the complete bounded document returned by search_reference, with its source location, revisions, and attribution.

    after · 40% of words in common

    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.

  • search_referencechangeddescription, input schema, output schemameaning changed
    before

    Searches the verified mission, rules, detachment, and datasheet text used by Praetorium. Returns bounded excerpts with canonical URLs, source revisions, and attribution.

    after · 41% of words in common

    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.

  • submit_battle_actionchangedinput schema
  • submit_battle_actionchangedinput schema
  • submit_battle_actionchangedinput schema
  • submit_battle_actionchangedinput schema

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 96 / 100

provenance90
liveness98
freshness100
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-95% +updated-12d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://praetorium.gg/mcp streamable-httpnoneyes95%648 ms2025-11-252026-10-20

Tools (15)

create_battledestructiveCreates a battle with named player seats, using the same rules as the site. Requires mcp:write.
get_my_battleread-onlyReturns the current seated view of a battle for the signed-in player. Requires mcp:read.
get_my_rosterread-onlyReturns the saved choices for one roster owned by the signed-in player. Requires mcp:read.
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.
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.
list_factionsread-onlyLists the factions that can be used to narrow reference searches.
list_my_battlesread-onlyLists up to 25 battles with a cursor for the next page. Requires mcp:read.
list_my_rostersread-onlyLists the rosters saved to the signed-in Praetorium account. Requires mcp:read.
list_referenceread-onlyDiscovers available factions, mission packs, rule documents, reference kinds, and active source revisions.
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.
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.
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.
set_roster_visibilitydestructiveChanges the visibility of an owned roster. Requires mcp:write.
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. Unsupported mechanics are refused or listed under notCalculated rather than approximated. Like the standalone simulator page, it uses default loadouts and no detachment; unit sizes and attachments must be legal.
submit_battle_actiondestructiveAppends a legal battle command only when expectedSeq matches the current log. Requires mcp:write.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.richardsolomou/praetorium",
  "title": "Praetorium",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://praetorium.gg/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.2.0",
  "repository": {
    "id": "1323286162",
    "url": "https://github.com/richardsolomou/praetorium.gg",
    "source": "github"
  },
  "websiteUrl": "https://praetorium.gg",
  "description": "Public Warhammer 40K rules, datasheets, points and missions; sign in to manage rosters and battles."
}