Warhammer Oracle
The Warhammer Oracle MCP server gives your AI assistant access to Warhammer 40K rules, unit stats, and game flow information across three game modes: Warhammer 40,000, Combat Patrol, and Kill Team.
Look up unit datasheets – Retrieve stats, weapons, abilities, and keywords for any of 2,642 Warhammer 40K units or 506 Kill Team operatives, with optional faction and game mode filters.
Look up keywords/rules – Get official definitions, plain English explanations, and examples for game mechanics like "Devastating Wounds" or "Feel No Pain".
Look up game phases – Get step-by-step instructions and tips for specific phases (e.g. Shooting, Command, or Firefight phases) in a given game mode.
Search units – Find units by name, faction, or keyword, with optional points-cost filters (returns up to 10 results).
Compare units – Side-by-side comparison of 2–4 units or operatives, showing full datasheets including stats, weapons, abilities, and keywords.
View game flow – Display the full turn sequence for a game mode, or see what comes next based on your current phase.
All data is embedded locally (no network calls required), covering 2,642 unit datasheets, 506 Kill Team operatives, 55 shared rules, 25 curated keywords, and 3 game mode turn sequences.
Ask your AI assistant about datasheets, stratagems, detachments, enhancements, keywords, phase sequences, wound math, and more. Covers Warhammer 40,000 (10th and 11th Edition), Combat Patrol, and Kill Team.
Editions: 40K unit/detachment/enhancement lookups default to 11th Edition. Pass game_mode: "40k_10e" to any tool for 10th Edition data instead — 10th Edition support isn't going away. Turn sequences/phases, core keywords, and Core Stratagems are hand-curated from the 11th Edition Core Rules. Detachment-specific stratagems are hand-curated per faction, layered the same way the tabletop rules are layered: an 11th Edition Faction Pack detachment overrides the base Codex where the pack details it in full, and the unrevised Codex baseline applies everywhere else.
Installation
npx warhammer-oracleOr install globally:
npm install -g warhammer-oracleRelated MCP server: dnd-oracle
Configuration
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"warhammer-oracle": {
"command": "npx",
"args": ["-y", "warhammer-oracle"]
}
}
}Claude Code
claude mcp add warhammer-oracle -- npx -y warhammer-oracleTools
lookup_unit
Look up a unit datasheet by name. Returns stat profiles, unit size (model count), ranged and melee weapons, abilities, and keywords.
"Look up the Intercessor Squad datasheet"
"What are the stats for a Leman Russ Battle Tank?"Parameters: unit_name (required), faction (optional), game_mode (optional: 40k/40k_11e (default, 11th Edition), 40k_10e, combat_patrol, kill_team)
lookup_keyword
Look up a keyword or rule. Returns the official definition, a plain English explanation, examples, and which game modes it applies to.
"What does Devastating Wounds do?"
"Explain the Feel No Pain keyword"Parameters: keyword (required), game_mode (optional)
lookup_phase
Look up a game phase by name. Returns step-by-step instructions and tips.
"Walk me through the Shooting phase"
"How does the Firefight phase work in Kill Team?"Parameters: phase_name (required), game_mode (optional, default: 40k)
search_units
Search units by name, faction, keywords, or ability text. Returns a compact list (max 10 results) with faction, points, and keywords.
"Find all Necron units under 100 points"
"Search for units with the Fly keyword"
"Show me units with Deep Strike"Parameters: query (required), faction (optional), ability (optional), max_points (optional), game_mode (optional: 40k/40k_11e (default), 40k_10e, combat_patrol, kill_team)
compare_units
Compare 2-4 units side by side. Shows full datasheets for each unit in a single response.
"Compare Intercessors vs Tactical Marines"
"Compare the Leman Russ, Predator, and Hammerhead side by side"Parameters: units (required, array of 2-4 unit names), game_mode (optional: 40k/40k_11e (default), 40k_10e, combat_patrol, kill_team)
game_flow
Show the full turn sequence for a game mode, or highlight where you are in the turn and what comes next.
"Show me the 40K turn sequence"
"I'm in the Shooting phase — what's next?"
"Show the Kill Team turn sequence"Parameters: current_phase (optional), game_mode (optional, default: 40k)
lookup_stratagem
Look up a Warhammer 40,000 stratagem by name. Returns CP cost, phase timing, target, and effect.
"What does Fire Overwatch do?"
"Show me the Command Re-roll stratagem"Parameters: name (required), faction (optional), phase (optional), detachment (optional)
search_stratagems
Search stratagems by name, faction, phase, or detachment. Returns a compact list (max 10).
"What stratagems can I use in the Fight phase?"
"Show me Gladius Task Force stratagems"Parameters: query (required), faction (optional), phase (optional), detachment (optional)
lookup_detachment
Look up a detachment by name. Returns the detachment ability, available enhancements, and associated stratagems.
"Show me the Gladius Task Force detachment"
"What does the Warhost detachment do for Aeldari?"Parameters: name (required), faction (optional), game_mode (optional: 40k/40k_11e (default), 40k_10e)
lookup_enhancement
Look up a character enhancement by name. Returns points cost, detachment, and effect.
"What does Adept of the Codex do?"
"Show me Aeldari enhancements"Parameters: name (required), faction (optional), detachment (optional), game_mode (optional: 40k/40k_11e (default), 40k_10e)
lookup_ploy
Look up a Kill Team ploy by name. Returns type (strategic/tactical), CP cost, timing, and effect.
"What does the Bolster ploy do in Kill Team?"
"Show me Legionaries ploys"Parameters: name (required), faction (optional), type (optional: strategic, tactical)
wound_calculator
Calculate expected damage output for an attack profile against a target. Handles re-rolls, weapon keywords (Lethal Hits, Devastating Wounds, Sustained Hits, Torrent), invulnerable saves, and Feel No Pain.
"Calculate damage: 10 attacks, BS3+, S5 AP-1 D2 vs T4 Sv3+"
"How much damage does a lascannon do to a Leman Russ?"Parameters: attacks, hit_skill, strength, toughness, armour_save, damage (all required); armour_penetration, invulnerable_save, feel_no_pain, reroll_hits, reroll_wounds, weapon_keywords, wounds_per_model, game_mode (all optional)
determine_primary_mission
Determine each player's Primary Mission from their Force Dispositions (11th Edition Matched Play). Each player's mission is looked up from their opponent's Force Disposition — in a non-mirror matchup, the two players get different missions. Returns mission names only, not full scoring/objective text.
"I picked Take and Hold, my opponent picked Purge the Foe — what are our missions?"
"What's my Primary Mission if I'm Reconnaissance and they're Priority Assets?"Parameters: your_disposition, opponent_disposition (both required, one of: Take and Hold, Purge the Foe, Reconnaissance, Priority Assets, Disruption)
lookup_crusade
Look up Crusade content (narrative play). Returns Crusade rules, relics, battle traits, and upgrades.
"What Crusade relics can Space Marines take?"
"Show me the Crusade battle traits"Parameters: query (required), faction (optional)
Data
All data is embedded at build time — no network calls at runtime. Data is synced daily from BSData via GitHub Actions.
Category | Count | Source |
40K unit datasheets (11th Edition, default) | 2,695 | |
40K unit datasheets (10th Edition) | 2,666 | |
Kill Team operatives | 519 | |
Detachments (11th / 10th Edition) | 259 / 208 | BSData (auto-extracted) |
Enhancements (11th / 10th Edition) | 895 / 827 | BSData (auto-extracted) |
Stratagems | 1,316 | Hand-curated (Core Rules + detachment-specific per faction) |
Kill Team ploys | 14 | Hand-curated (universal + popular factions) |
Shared rules (11th / 10th Edition) | 35 / 33 | BSData |
Shared rules (Kill Team) | 22 | BSData |
Curated keywords | 25 | Hand-written, plain English, 11th Edition Core Rules |
Game mode sequences | 3 | Hand-curated (40K, Combat Patrol, Kill Team) |
Force Disposition mission matchups | 15 | Hand-curated (5 dispositions, full grid) |
Game modes
Warhammer 40,000 (
40k/40k_11e, default) — full-scale battles, 11th Edition rulesWarhammer 40,000, 10th Edition (
40k_10e) — full-scale battles, 10th Edition rules (permanently supported)Combat Patrol (
combat_patrol) — smaller, starter-friendly formatKill Team (
kill_team) — squad-level skirmish game
10th Edition support isn't going away when a newer edition is added — every game_mode value, once added, keeps working.
Development
npm install
npm run build
npm testTo refresh unit data from BSData:
npm run fetch-data
npm run buildLicense
MIT (for the MCP server code).
Unit data sourced from the BSData community project — wh40k-10e, wh40k-11e, and wh40k-killteam. Game rules and army rules are the intellectual property of Games Workshop. This tool provides reference data for personal use during gameplay.
Available Tools
14 toolscompare_unitsA
Compare 2-4 Warhammer 40K units or Kill Team operatives side by side. Shows stats, weapons, abilities, and keywords for each.
| Name | Required | Description | Default |
|---|---|---|---|
| units | Yes | Unit/operative names to compare (2-4 names) | |
| game_mode | No | Game mode/edition: defaults to '40k_11e'. Pass '40k_10e' for 10th Edition units, '40k'/'40k_11e' for 11th Edition (current default), or 'kill_team' for Kill Team operatives. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the output content ('Shows stats, weapons, abilities, and keywords'), which is useful. However, it does not mention default behavior for game_mode, validation of unit names, or error handling. The description is neither misleading nor rich in behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately states the action, scope (2-4 units), and what it shows. No wasted words, and every element contributes to understanding the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose and output contents, which is essential given no output schema. It omits details like game_mode defaults or input validation, but those are documented in the parameter schema. Overall, it is sufficiently complete for a simple comparison tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (units array with min/max, game_mode enum with descriptions). The tool description adds no additional parameter semantics beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Compare') on a concrete resource ('2-4 Warhammer 40K units or Kill Team operatives') and lists the displayed attributes (stats, weapons, abilities, keywords). This distinguishes it from sibling tools like lookup_unit and search_units, which focus on single lookups rather than side-by-side comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case: comparing multiple units/operatives side by side. However, it does not explicitly mention when to use this tool instead of alternatives like lookup_unit or search_units, nor does it provide any exclusions or conditions. The context is clear but the guidance is not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
determine_primary_missionA
Determine each player's Primary Mission from their Force Dispositions, per Warhammer 40,000 11th Edition Matched Play. Each player's mission is looked up from their OPPONENT's Force Disposition — in a non-mirror matchup, the two players get different missions.
| Name | Required | Description | Default |
|---|---|---|---|
| your_disposition | Yes | Your army's Force Disposition, selected when mustering. | |
| opponent_disposition | Yes | Your opponent's Force Disposition, selected when mustering. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a non-obvious behavioral trait: the mission depends on the opponent's Force Disposition, not your own, and that non-mirror matchups yield different missions. It does not describe the return format or potential edge cases, but since annotations are absent, this is a reasonable level of disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose, then adds one essential rule. Every word earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter lookup tool with no output schema, the description gives enough context to understand the core logic and usage. The only gap is not specifying the output structure, but the tool's name and description make the intended result clear. Overall, it is complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage and enums for both parameters, the schema already defines their values. The description adds meaning by clarifying the relationship between the parameters: your_disposition and opponent_disposition are used together, and the mission is looked up from the opponent's disposition. This goes beyond the schema's per-field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: determining each player's Primary Mission from their Force Dispositions in Warhammer 40,000 11th Edition Matched Play. It uses a specific verb 'Determine' and names both the input (Force Dispositions) and output (Primary Mission), fully distinguishing it from sibling lookup tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: it is specifically for Matched Play and explains the lookup rule (from the opponent's disposition). It does not explicitly mention alternatives or exclusions, but given its unique role among siblings, the guidance is sufficient for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
game_flowA
Show the full turn sequence for a game mode, or highlight the current phase and what comes next.
| Name | Required | Description | Default |
|---|---|---|---|
| game_mode | No | Game mode (default: 40k). Use kill_team for Kill Team phases. | 40k |
| current_phase | No | Name of the phase you're currently in (e.g. 'Shooting', 'Command'). If omitted, shows the full turn sequence overview. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It discloses conditional behavior based on current_phase parameter, but does not mention error handling, rate limits, or if any system state is affected. Adequate but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence succinctly covers both use cases without unnecessary words. Efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 2 optional params, no output schema, and no annotations, the description is fairly complete. Clearly explains the two modes of operation. Could mention the return format or edge cases like invalid phase, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters. Description adds meaningful context: explains that omitting current_phase shows full sequence, and notes default for game_mode. Adds value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool shows turn sequences or current phase, with specific verb 'Show' and resource 'turn sequence'. Distinct from sibling tools like lookup_phase that focus on individual phase details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this vs alternatives (e.g., lookup_phase). The description implies usage for overview or current phase, but does not mention when not to use or provide comparative context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_crusadeA
Look up Warhammer 40,000 Crusade content: Battle Traits, Crusade Relics, Battle Scars, and Boon tables. Covers all three tiers BSData tracks — generic/universal (e.g. Battle Scars), faction-specific (e.g. Chaos Space Marines' Codex Battle Traits), and campaign-specific (Tyrannic War, Pariah Nexus, Nachmund Gauntlet, Armageddon). 11th Edition only — this content isn't tracked in BSData for 10th Edition. Not merged into unit datasheets: pass faction to see everything a Crusade army of that faction can pick from (generic + that faction's own), and/or campaign to add a campaign's pool. At least one of faction, campaign, category, or name is required.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Search by name or description text | |
| faction | No | Faction filter (e.g. 'Chaos Space Marines') — returns generic honours plus this faction's own | |
| campaign | No | Campaign filter (e.g. 'Tyrannic War', 'Armageddon', 'Pariah Nexus', 'Nachmund Gauntlet') | |
| category | No | Narrow to one content type: battleTrait, relic (Crusade Relic), battleScar, or boon |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the 11th Edition limitation, the three coverage tiers, that content is not merged into datasheets, and the filter-combination behavior. It stops short of describing return format or error behavior, but the disclosed traits are genuinely useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence adds distinct information: scope, tiers, edition, filtering, and the required-parameter rule. The description is dense but well-structured, starting with the core purpose and gracefully adding constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter lookup tool with no output schema or annotations, the description covers the essential context: what it looks up, which editions, which tiers, how to combine filters, and what is required. It is one of the more complete lookup descriptions, though it could mention the response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes all four parameters with 100% coverage. The description adds value by explaining how `faction` and `campaign` combine ('and/or'), giving concrete examples for campaign values, and stating the 'at least one' requirement. This exceeds the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ('Look up Warhammer 40,000 Crusade content') and clearly enumerates content types (Battle Traits, Crusade Relics, Battle Scars, Boon tables). It distinguishes from sibling lookup tools by focusing solely on Crusade content and detailing edition/coverage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when to use the tool ('Crusade content... 11th Edition only') and how to filter with faction/campaign parameters. It does not explicitly name sibling alternatives or explain when not to use this tool, but the scope is well-delimited and the filtering instructions are explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_detachmentA
Look up a Warhammer 40,000 detachment by name. Returns the detachment ability, available enhancements, associated stratagems, and (11th Edition only) its Detachment Points cost, eligible Force Disposition(s), and any other detachment(s) it's mutually exclusive with (e.g. Chaos Space Marines' Murdertalon Raiders and Nightmare Hunt cannot both be used in the same army).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name or partial name of the detachment to look up | |
| faction | No | Optional faction filter (e.g. 'Space Marines', 'Necrons') | |
| game_mode | No | Edition: defaults to '40k_11e'. Pass '40k_10e' for 10th Edition detachments, '40k'/'40k_11e' for 11th Edition (current default). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden. It clearly lists exactly what the tool returns (ability, enhancements, stratagems, points, force dispositions, mutual exclusions) and discloses an 11th Edition-specific behavior with a concrete example. It does not discuss error handling or partial-match behavior, but for a read-only lookup this is reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. The parenthetical example is dense but informative, earning its place without bloating the overall length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since there is no output schema, the description compensates by explicitly listing the returned fields and edition-specific restrictions. It is sufficiently complete for a lookup tool, covering both inputs (via schema) and outputs (via description).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters already have descriptive schemas, so the baseline is 3. The description reinforces the 'name' parameter and adds edition context, but it does not add new meaning to 'faction' or 'game_mode' beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Look up') and identifies the resource ('Warhammer 40,000 detachment'), clearly distinguishing it from sibling lookup tools for stratagems, enhancements, and units. It also enumerates the return content, making the tool's scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving detachment details, but it does not explicitly contrast with sibling tools like lookup_stratagem or lookup_enhancement. The edition-specific note provides some context, but there is no direct when-not-to-use guidance or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_enhancementA
Look up a Warhammer 40,000 enhancement by name. Returns the points cost, detachment, and effect.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name or partial name of the enhancement to look up | |
| faction | No | Optional faction filter (e.g. 'Space Marines', 'Aeldari') | |
| game_mode | No | Edition: defaults to '40k_11e'. Pass '40k_10e' for 10th Edition enhancements, '40k'/'40k_11e' for 11th Edition (current default). | |
| detachment | No | Optional detachment filter (e.g. 'Gladius Task Force') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It only describes the return fields, not match behavior (exact vs partial), handling of missing results, or default edition. It does not disclose any side effects or limitations beyond being a lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that clearly states the purpose and return content. No filler words; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and full schema coverage, the description covers the core purpose and return value. However, it omits behavioral details like default edition and matching logic, and there is no output schema. For a lookup with 4 parameters, a bit more context on filtering behavior would be useful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all 4 parameters at 100%, and the description adds no additional parameter semantics. It only restates 'by name' which matches the required parameter, but does not elaborate on optional filters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Look up' with a specific resource 'enhancement' and clearly states the return fields (points cost, detachment, and effect). This distinguishes it from sibling lookup tools for stratagems, units, and other resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly compare with alternatives or state exclusions. While the resource type is clear, there is no guidance such as 'use for enhancements; for stratagems use lookup_stratagem'. Usage is only implied by the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_keywordA
Look up a Warhammer 40K keyword or rule. Returns the official definition, a plain English explanation, examples, and applicable game modes.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Name or partial name of the keyword to look up (e.g. 'Devastating Wounds', 'Feel No Pain') | |
| game_mode | No | Optional game mode filter — only show keywords applicable to this mode |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It transparently states that the return includes definitions, explanations, examples, and game modes. However, it does not disclose potential behaviors like partial matching, multiple results, or error handling for missing keywords.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. The description is front-loaded with the action and immediately conveys the tool's purpose and return value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, high schema coverage, and no output schema, the description adequately explains inputs and outputs. It could be slightly more complete by addressing partial matches or multiple results, but overall it's detailed enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so the schema already documents both parameters fully. The description adds 'optional game mode filter' which is already in the schema description. No new semantic meaning beyond schema is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Look up') and resource ('Warhammer 40K keyword or rule'), and specifies what the tool returns: official definition, plain English explanation, examples, and applicable game modes. This distinguishes it from sibling tools like lookup_unit or lookup_stratagem.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for looking up keywords/rules but does not explicitly state when to use this tool vs alternatives (e.g., when to use lookup_keyword vs lookup_unit for a unit-specific rule). No exclusions or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_phaseA
Look up a game phase by name. Returns step-by-step instructions and tips for the phase in the specified game mode.
| Name | Required | Description | Default |
|---|---|---|---|
| game_mode | No | Game mode (default: 40k). Use kill_team for Kill Team phases. | 40k |
| phase_name | Yes | Name or partial name of the phase to look up (e.g. 'Shooting', 'Command', 'Firefight') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears full burden. It describes the return content (instructions and tips), offering some behavioral insight beyond the schema, but omits other traits (e.g., readonly, rate limits).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence conveys purpose and output efficiently with no extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description should explain the return format, but it only briefly mentions 'step-by-step instructions and tips'. For a simple lookup, this may suffice, but lacks detail on structure or error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with clear parameter descriptions. The description adds no extra parameter meaning beyond what the schema provides, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it looks up a game phase by name and returns step-by-step instructions and tips. This distinguishes it from sibling tools like lookup_unit or compare_units, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus other lookup tools (e.g., lookup_stratagem, lookup_detachment). The agent must infer from the name alone, which lacks explicit context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_ployA
Look up a Kill Team ploy by name. Returns type (strategic/tactical), CP cost, timing, and effect. This is the Kill Team equivalent of stratagems — for Warhammer 40,000 stratagems, use lookup_stratagem instead.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name or partial name of the ploy to look up | |
| type | No | Optional ploy type filter | |
| faction | No | Optional faction filter (e.g. 'Universal', 'Legionaries', 'Kommandos') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, but the description implies a read-only operation by describing return data. However, it does not disclose potential constraints like authentication, rate limits, or data freshness. While the nature is clear, more context would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with front-loaded purpose. Every word is meaningful; no redundancy. Clearly structured for quick parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup tool with 3 parameters and no output schema, the description fully covers the purpose, inputs, and return value. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% with descriptions for all parameters. The description adds examples for the faction parameter ('Universal', 'Legionaries', 'Kommandos'), which adds value beyond the schema. The type parameter's enum values are clearly listed in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool looks up a Kill Team ploy by name, specifying the return fields. It distinguishes itself from the sibling tool 'lookup_stratagem' by noting it is for Kill Team and not Warhammer 40,000 stratagems.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (Kill Team ploys) and when not (Warhammer 40,000 stratagems), along with an alternative tool name ('lookup_stratagem'). This provides clear guidance for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_stratagemA
Look up a Warhammer 40,000 stratagem by name. Returns CP cost, phase, timing, target, and effect. For Kill Team ploys, use lookup_ploy instead.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name or partial name of the stratagem to look up | |
| phase | No | Optional phase filter (e.g. 'Fight phase', 'Shooting') | |
| faction | No | Optional faction filter (e.g. 'Core', 'Adeptus Astartes') | |
| detachment | No | Optional detachment filter (e.g. 'Gladius Task Force') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions what is returned but does not disclose whether the operation is read-only, error handling, or partial matching behavior. The verb 'look up' implies idempotent read, but more detail would be beneficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, then returns list, then alternative. No wasted words, highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description correctly states returned fields. Covers core functionality and sibling differentiation. Could include mention of partial name support (stated in schema) but not critical. Essentially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. Description does not add additional meaning beyond schema; it lists returned fields but does not explain parameter usage or provide examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Look up a Warhammer 40,000 stratagem by name' and lists returned fields (CP cost, phase, timing, target, effect). It distinguishes from sibling tool lookup_ploy by explicitly saying to use that for Kill Team ploys.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly specifies when to use this tool (40k stratagems) and when to use alternative (lookup_ploy for Kill Team ploys). Provides clear context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_unitA
Look up a Warhammer 40K unit or Kill Team operative datasheet by name. Returns stats, weapons, abilities, and keywords.
| Name | Required | Description | Default |
|---|---|---|---|
| faction | No | Optional faction name to narrow results (e.g. 'Chaos Space Marines', 'Astartes') | |
| game_mode | No | Game mode/edition: defaults to '40k_11e'. Pass '40k_10e' for 10th Edition units, '40k'/'40k_11e' for 11th Edition (current default), or 'kill_team' for Kill Team operatives. | |
| unit_name | Yes | Name or partial name of the unit to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does state that the tool returns stats, weapons, abilities, and keywords, but it does not mention matching behavior (exact vs partial), handling of multiple matches, error cases, or whether the operation is read-only. Some behavioral transparency is added, but key details are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the action verb, and contains no filler. Every word contributes to understanding the tool's purpose and output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup tool, the description covers the core purpose and return content, and the schema covers parameters. However, with no output schema, it does not clarify behavior on partial matches or ambiguous results, leaving a minor completeness gap. Overall, it is mostly complete but could be slightly more explicit about match handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, so the description does not need to explain parameters. It also does not add any additional parameter semantics, such as examples or parameter interactions, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Look up') and identifies a clear resource (Warhammer 40K unit or Kill Team operative datasheet). It also lists the return content (stats, weapons, abilities, keywords), distinguishing it from sibling tools like search_units (search vs direct lookup) and compare_units (comparison).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a unit name, but does not explicitly state when to use this tool versus search_units or compare_units. No exclusions or alternative tool recommendations are provided, leaving the usage context implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_stratagemsA
Search Warhammer 40,000 stratagems by name, faction, phase, or detachment. Returns a compact list (max 10). For Kill Team ploys, use lookup_ploy instead.
| Name | Required | Description | Default |
|---|---|---|---|
| phase | No | Optional phase filter (e.g. 'Fight phase', 'Shooting') | |
| query | Yes | Search query — matches against name, faction, phase, and effect | |
| faction | No | Optional faction filter (e.g. 'Core', 'Adeptus Astartes') | |
| detachment | No | Optional detachment filter (e.g. 'Gladius Task Force') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It reveals that the tool returns a compact list with a maximum of 10 results, which is a key behavioral constraint. However, it does not mention whether the operation is read-only, any authentication requirements, or rate limits. The description is adequate but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences with no wasted words. The first sentence states the core purpose and filtering options, and the second adds the result limit and a pointer to an alternative tool. Information is front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (four parameters, one required) and the absence of an output schema or annotations, the description provides the essential context (search scope, result limit, sibling distinction). However, it does not describe the return format or fields, which could help the agent interpret results. It also does not clarify differences from lookup_stratagem. Still, it covers the basics adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents each parameter clearly. The description adds no new meaning beyond the schema; it even omits 'effect' from the list of fields the query matches against, which the schema includes. The description's inclusion of 'detachment' as a search criterion is somewhat redundant since it is a separate filter parameter. Overall, the description does not significantly enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches Warhammer 40,000 stratagems and specifies the searchable fields (name, faction, phase, detachment). It also distinguishes itself from the sibling lookup_ploy tool by noting that for Kill Team ploys, users should use lookup_ploy instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool (searching stratagems) and provides a direct alternative for ploys (lookup_ploy). It does not, however, mention when not to use it relative to other siblings like lookup_stratagem, but the 'max 10' hint suggests it's for broad searches, not detailed lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_unitsA
Search Warhammer 40K units or Kill Team operatives by name, faction, keywords, or ability text. Returns a compact list of matching results (max 10).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query — matches against name, faction, keywords, and ability names/text | |
| ability | No | Optional filter for units/operatives that have an ability whose name or rules text matches this (e.g. 'devastating wounds', 'stealth', 'deep strike'). Kill Team results also match unique actions. | |
| faction | No | Optional faction filter to narrow results (e.g. 'Necrons', 'Aeldari'). Also matches keywords, so sub-forces folded into a parent faction's data (e.g. 'Kroot', which BSData files under 'T'au Empire' rather than as its own faction) are still found. | |
| game_mode | No | Game mode/edition: defaults to '40k_11e'. Pass '40k_10e' for 10th Edition units, '40k'/'40k_11e' for 11th Edition (current default), or 'kill_team' for Kill Team operatives. | |
| max_points | No | Optional max points filter — only return units costing this many points or fewer (40K only) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full transparency burden. It discloses that results are a 'compact list' limited to 'max 10', and that matching covers name, faction, keywords, and ability text. This goes beyond the schema, which does not specify result limits. It is appropriate for a search tool, though it could mention more about case sensitivity or sorting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the verb and resource, then specifies search fields and output behavior. Every word contributes value with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters (1 required) and no output schema, the description adequately covers the main use case and output format ('compact list' of max 10). It does not detail the exact fields returned, but this is acceptable given the schema's thorough parameter documentation and the likely follow-up with lookup tools. It is complete enough for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's mention of search criteria (name, faction, keywords, ability text) largely duplicates the schema's query parameter description. It adds no additional parameter-level meaning beyond what the schema already documents, such as the ability filter's match on unique actions or the game_mode defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Search'), resource ('Warhammer 40K units or Kill Team operatives'), and the search criteria ('by name, faction, keywords, or ability text'). This distinguishes it from sibling lookup tools that likely retrieve exact entities, as 'search' implies flexible/fuzzy matching. The return limit of max 10 further clarifies its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage contexts for searching across multiple fields, but it does not explicitly state when to prefer this tool over lookup_unit or other siblings. It lacks 'when not to use' guidance or mention of alternatives. The context is clear for what it searches, but no exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wound_calculatorA
Calculate expected wounds and damage for a Warhammer 40,000 attack sequence. Pure math — input an attack profile and target stats, get probabilities and expected results for hits, wounds, saves, and damage.
| Name | Required | Description | Default |
|---|---|---|---|
| damage | Yes | Damage value (e.g., '1', '2', 'D3', 'D6', 'D6+1', '2D6') | |
| attacks | Yes | Number of attacks | |
| strength | Yes | Weapon strength | |
| game_mode | No | Game mode (currently only 40k wound math is supported) | 40k |
| hit_skill | Yes | Ballistic Skill or Weapon Skill needed (e.g., 3 for 3+) | |
| toughness | Yes | Target toughness | |
| armour_save | Yes | Target's armour save (e.g., 3 for 3+, 7 for no save) | |
| reroll_hits | No | Re-roll hit rolls: 'ones' = re-roll 1s, 'all' = re-roll all misses | |
| feel_no_pain | No | Feel No Pain value (e.g., 5 for 5+++) | |
| reroll_wounds | No | Re-roll wound rolls: 'ones' = re-roll 1s, 'all' = re-roll all misses | |
| weapon_keywords | No | Weapon keywords that affect the calculation (e.g., ['Lethal Hits', 'Sustained Hits 1', 'Devastating Wounds', 'Torrent', 'Twin-linked']) | |
| wounds_per_model | No | Wounds characteristic of each target model (for models killed estimate) | |
| invulnerable_save | No | Invulnerable save (e.g., 4 for 4++) | |
| armour_penetration | No | AP value as a positive number (e.g., 2 for AP-2) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must cover behavior. It states 'Pure math', indicating no side effects or state changes. However, it does not disclose output format, precision, or any limitations like maximum attack count. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences clearly conveying purpose and nature of the tool. No redundant or extraneous information. Front-loads the core functionality effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 14 parameters and no output schema, the description gives a high-level overview but omits details like expected return values (probabilities, averages) or handling of multiple profiles. Could be more complete given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptive parameter definitions. The description adds no additional meaning beyond what the schema already provides. Achieves the baseline for full schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool calculates expected wounds and damage for a Warhammer 40k attack sequence, using specific verb 'calculate' and resource 'wounds/damage'. It explicitly says 'Pure math', distinguishing it from sibling lookup tools like lookup_unit or compare_units.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when an attack math calculation is needed, but does not specify when to avoid using it or mention alternatives. No explicit 'use this when' or 'do not use for' guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct resource or action: lookup_* for specific entities, search_* for discovery, compare_units for side-by-side analysis, and game_flow, wound_calculator, and determine_primary_mission for unique purposes. The lookup tools are clearly separated by entity type, and lookup_stratagem vs lookup_ploy are cross-referenced to avoid confusion.
The dominant pattern is verb_noun snake_case (lookup_keyword, search_units, compare_units, determine_primary_mission). Exceptions like game_flow and wound_calculator use noun compounds, but they are descriptive and follow the same snake_case style, so the overall consistency is high with only minor deviations.
14 tools is well within the ideal range for a domain-specific rules reference. The server covers two game systems (40K and Kill Team) with a balanced mix of lookup, search, comparison, and utility tools, each earning its place without unnecessary bloat.
The tool set covers core lookup, search, comparison, and calculation needs for Warhammer rules, including units, keywords, phases, stratagems, ploys, detachments, enhancements, crusade content, and mission determination. Minor gaps exist, such as no search for ploys or enhancements, but these are accessible via lookup and do not severely hinder workflows.
Maintenance
Related MCP Connectors
Official remote MCP server for Archivist AI TTRPG campaign memory: characters, sessions, and more.
Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.
MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2
The Octagon MCP server provides specialized AI-powered financial research and analysis by integrating with the Octagon Market Intelligence API. It enables users to analyze public market data (SEC filings, earnings transcripts, financial metrics, and stock data for 8000+ companies), private market data (3M+ companies, 500k+ funding rounds, 2M+ M&A/IPO transactions), and conduct deep research including web scraping capabilities. The server also features autonomous research agents that search hundreds of sources and return fully cited reports in approximately one minute.
Related MCP Servers
- AlicenseBqualityDmaintenanceA comprehensive MCP server for managing AI-assisted Dungeons & Dragons campaigns, featuring tools for character sheets, combat tracking, and world-building. It enables players and DMs to interact with 5e game mechanics and query personal PDF rulebooks using RAG capabilities.972MIT
- AlicenseAqualityAmaintenanceD\&D 5e SRD MCP server - monster search, spell lookup, encounter building, and character tools powered by ground-truth SRD data20705MIT
- AlicenseNot gradedqualityDmaintenanceComprehensive Discord MCP server with 66 tools that provides rich message context including emoji reactions, thread indicators, and attachment metadata inline. Enables AI assistants to interact with Discord servers for messaging, moderation, roles, channels, and more.3481MIT
- FlicenseNot gradedqualityBmaintenanceMCP server + Foundry VTT module for WFRP4e that lets AI clients interact with a Foundry world via tools for managing characters, journals, rolltables, and more.1
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/gregario/warhammer-oracle'
If you have feedback or need assistance with the MCP directory API, please join our Discord server