Skip to main content
Glama

Embers: Tabletop RPG Toolkit

Build a 5e24 monster

vault_build_monster

Create a complete 5e24 monster character in one call. Replaces the vault_create_character + multiple vault_update_character pattern for monster authoring — fully typed input schema, so structured fields cannot be silently stringified. Caller passes source-text values (final AC, skill bonuses, attack bonuses); gateway computes the stored base values, derives proficient / expertise / misc flags, formats spell-list markdown, creates recharge trackables, generates the Challenge / Legendary Actions / Speed-alternate-form notes. Sets type: 'monster', settings.autoPassiveBonuses: false, and the derived core.experience automatically. The authoring guide at vault_get_authoring_guide({ rulesetCode: '5e24', entityType: 'monster' }) documents every field's source-text meaning and is the conventions reference for what shape to send. Returns the created character document.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
acYesAC block. `total` is the value the sheet should display (source-text value, like '16'). Gateway computes the stored base by subtracting DEX modifier (with medium/heavy armor weight caps) and any shield/magic/misc bonuses. Per the guide Rule 1.
crYesChallenge Rating. Must be one of the canonical 5e24 values: 0, 0.125 (CR 1/8), 0.25 (CR 1/4), 0.5 (CR 1/2), or any integer 1-30. Gateway looks up XP reward + level-equivalent XP + proficiency bonus.
hpYesMaximum hit points.
gearNoGear listed on the stat block ('Greatsword, Splint Armor'). Each becomes an items[] entry with `equipped: false` (monsters don't use equip slots) per Rule 19. Server-side template fill adds the four currency items separately.
nameYesDisplay name. Required.
sizeYesSize text — single value ('Medium') or variable form ('Medium or Small') per the guide Rule 18. Stored verbatim in `core.size`.
savesNoSaving throw bonuses for the proficient ones only. Gateway derives `attributes[].proficient = true` and a `misc` adjustment so the sheet's `ability + PB + misc` lands on the source bonus.
speedYesSpeed block. `walk` is the base walking speed in feet. Non-walking modes (climb / fly / swim / burrow) become rules[] Ability entries with the listed range. `alternateForm` carries the parenthetical text from lycanthrope-style stat blocks ('40 ft. in boar form') per the guide Rule 5; lands in notes[].
sensesNoSenses other than passive perception: darkvision, blindsight, tremorsense, truesight. Each becomes a rules[] Ability entry with `name` ('Darkvision') and `detail` ('120 ft.'). Passive Perception is NOT authored — sheet derives it from the Perception skill.
skillsNoSkill bonuses for proficient / expertise skills only. Gateway derives the proficient + expertise flags + misc so the sheet total matches the source bonus per the guide Rule 6.
traitsNoTrait entries (Web-Dweller, Molten Body, Pack Tactics, etc.). Use `summary` for parenthetical usage limits per Rule 14 (e.g. 'Legendary Resistance' name + '3/Day, or 4/Day in Lair' summary + body description). Use `detail` for the kind of short qualifier on entries like Darkvision (but darkvision itself goes under `senses`).
actionsNoAction entries. `type` per the guide Rule 3 (Melee / Range / Special / Reaction / Legendary / Bonus). For attacks, pass `attackBonus` + `attackAttribute` + `damageDice` + `damageType` + `damageAttribute`; gateway back-derives `attack.misc`. For ranged spell attacks (Hurl Flame etc.) use the spellcasting attribute, not strength/dexterity. `recharge: '5-6'` (or '6', '4-6') creates a matching trackables[] checkbox the sheet renders as a cooldown.
rulesetNoOnly '5e24' is supported. The authoring guide and the conversion math are 5e24-specific; other rulesets will land via their own build tools.
abilitiesYesSix ability scores as numbers. Gateway computes modifiers, attack/damage/save/skill/initiative derivations.
alignmentYesAlignment text, e.g. 'Unaligned' or 'Neutral Evil'.
languagesNoLanguages text, source-exact (e.g. '—' or 'Common, Draconic, telepathy 60 ft.'). Stored in `core.languages`.
immunitiesNo5e24 combined Immunities text (damage + condition, semicolon-separated): 'Fire, Poison; Frightened, Poisoned'. Use this when the source says 'Immunities'.
hitDiceSizeNoHit-die size mapped from creature size per 5e24 MM: Tiny d4, Small d6, Medium d8, Large d10, Huge d12, Gargantuan d20. Defaults to d8 when omitted (Medium creatures, by far the common case).
resistancesNoResistances row, source-exact text.
creatureTypeYesCreature type — source text, e.g. 'Elemental', 'Humanoid', 'Dragon (Chromatic)'. Preserved verbatim into `core.race` per the guide Rule 16 'preserve original text'.
hitDiceCountYesNumber of hit dice (the count, e.g. 12 for a creature with 12d8 listed in HP).
spellcastingNoInnate spellcasting block per the guide Rule 4. Gateway formats the spell list as markdown with two-space hard breaks between frequency rows and italic spell names: `**At will:** *detect evil and good* \n**1/day each:** *commune*, *raise dead*`. Lands as a single rules[] Ability entry named 'Innate Spellcasting'.
legendaryIntroNoLegendary Actions intro paragraph (the prose about how legendary actions work for this creature). Per the guide Rule 8, lands in notes[] under name 'Legendary Actions'. Individual legendary action entries go in `actions[]` with `type: 'Legendary'`.
additionalNotesNoAny free-form notes[] entries the LLM wants to author beyond the auto-generated Challenge / Legendary Actions / Speed-alternate-form rows. Use sparingly — most stat-block content has a dedicated structured field above.
initiativeBonusNoOverride the initiative bonus only if the listed value differs from the DEX modifier. Per the guide Rule 17, gateway sets `offense.initiative.misc = listed − DEX-mod`.
vulnerabilitiesNoVulnerabilities row.
damageImmunitiesNo5e (2014) split form: damage-only immunities. Use only if the source says 'Damage Immunities' as a separate row.
damageResistancesNo5e split form: damage-only resistances. Use only if the source says 'Damage Resistances'.
conditionImmunitiesNo5e split form: condition-only immunities. Use only if the source says 'Condition Immunities' as a separate row.
damageVulnerabilitiesNo5e split form: damage-only vulnerabilities.
sourceProficiencyBonusNoOverride the PB derived from CR. Use only when the source stat block explicitly lists a non-standard PB (e.g. a CR-low legendary creature with PB +5). For PB +7 and above the high-PB misc compensation per the guide Rule 15 kicks in automatically.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations carry little signal (all hints false), so the description carries the full burden — and it delivers. It discloses detailed gateway behavior: computing stored base values from source-text values, deriving proficient/expertise/misc flags, formatting spell-list markdown, creating recharge trackables, generating Challenge/Legendary Actions/Speed-alternate-form notes, and automatically setting `type`, `settings.autoPassiveBonuses`, and `core.experience`. This is far beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but dense, with every sentence adding information: purpose, differentiation, gateway behavior, automatic settings, authoring guide pointer, and return value. It is front-loaded with the core purpose and follows with operational details. No filler or tautology.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (31 parameters, nested objects, 10 required fields) and an existing output schema, the description covers all decision-relevant aspects: what to pass, how the gateway transforms it, where to find the authoring guide, what gets set automatically, and what is returned. Nothing an agent needs to correctly invoke this tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 tool description adds a key cross-cutting semantic: 'Caller passes source-text values (final AC, skill bonuses, attack bonuses); gateway computes the stored base values.' This clarifies the intent behind every numeric field and explains how the gateway transforms input. It doesn't enumerate parameters individually, but the schema already does, making the description a valuable supplement rather than a replacement.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Create a complete 5e24 monster character in one call.' It then explicitly distinguishes itself from the sibling pattern (`vault_create_character` + multiple `vault_update_character`) by stating it replaces that pattern for monster authoring. This immediately disambiguates it from vault_build_pc and other character-related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states when to use this tool — for monster authoring — and names the alternative pattern it replaces. It also gives a ruleset exclusion: 'Other rulesets will land via their own build tools.' Additionally, it points to `vault_get_authoring_guide` as the conventions reference, telling the agent where to get authoritative instructions on field shape.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources