Skip to main content
Glama

event_apply

Apply an event to a game state and receive the rule verdict with citations and the stamped next state. Validates actions against budgets, conditions, and SRD 5.2.1 rules.

Instructions

The reducer (fold): apply one declared event to a state object and receive the verdict plus the stamped next_state (lineage: predecessor hash, causing event, rule ids, rule-vs-ruling kind). Event types: turn-start (budgets reset, Reaction returns), round-advance, action / bonus-action / reaction / free-interaction / move / stand-up (validated against budgets and conditions; may carry spell:{level} and concentration_on), condition-gained, condition-ended, ruling (GM discretion — recorded and tagged as discretion, never as a rule). srdcheck never produces an event, never advances time on its own, never generates randomness: the caller owns the loop; this is the fold.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
eventYes
stateYescurrent state per the adapter's state_schema.json (state travels; it never resides here)
Behavior4/5

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

Discloses key behaviors: no randomness generation, no event production, no time advancement. Explains return value structure (verdict and stamped next_state with lineage). With no annotations, this carries the burden well.

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

Conciseness4/5

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

Front-loaded with purpose, but slightly verbose with event type enumeration. Concise enough for the complexity, though some details (like lineage) could be trimmed.

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?

Despite no output schema, description fully explains return format (verdict, next_state, lineage). Covers event types and their implications. Complete for a reducer tool in a game loop context.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% (2 params, only event partly described via types). Description adds context on event subtypes but does not detail the state parameter or other event properties like spell, concentration_on. Adequate but not exceptional.

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?

Clearly states it is a reducer that applies an event to a state and returns verdict and next_state. Lists event types and distinguishes from sibling tools by describing its role as 'the fold' in a loop.

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

Usage Guidelines4/5

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

Implies use in an event loop ('the caller owns the loop; this is the fold') and clarifies that srdcheck does not produce events. However, no explicit when-not-to-use or direct comparisons to siblings beyond general role.

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

Install Server

Other Tools

Latest Blog Posts

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/chaoz23/srdcheck'

If you have feedback or need assistance with the MCP directory API, please join our Discord server