Skip to main content
Glama

effect-create

Add a custom active effect (buff, debuff, custom condition) to an actor, or to ONE token via tokenId. Each change targets a data path with a mode; values are strings. EXAMPLE changes: [{"key": "system.attributes.ac.bonus", "value": "2", "mode": 2}] adds +2 AC. Paths are dnd5e; other systems differ.

Input Schema

NameRequiredDescriptionDefault
imgNoIcon path
nameYesEffect name ("Bless")
originNoSource UUID (item, spell)
actorIdNoActor ID (from actor-list/actor-filter)
changesNoAttribute changes
sceneIdNoScene of tokenId (default: active)
tokenIdNoToken ID (from token-list) instead of actorId: that token's own actor (module 8.14+)
disabledNoAdd disabled
durationNoDuration
statusesNoStatus IDs applied (["blinded"])

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed17 schema fields changed
    • changedInput schema / properties / actorId / description
      Previous value: -"The actor ID to add the effect to"New value: +"Actor ID (from actor-list/actor-filter)"
    • changedInput schema / properties / changes / description
      Previous value: -"Array of attribute changes this effect applies"New value: +"Attribute changes"
    • changedInput schema / properties / changes / items / properties / key / description
      Previous value: -"The data path to modify (e.g., \"system.attributes.ac.bonus\")"New value: +"Data path, e.g. \"system.attributes.ac.bonus\""
    • changedInput schema / properties / changes / items / properties / mode / description
      Previous value: -"Change mode: 0=CUSTOM, 1=MULTIPLY, 2=ADD, 3=DOWNGRADE, 4=UPGRADE, 5=OVERRIDE"New value: +"0=CUSTOM, 1=MULTIPLY, 2=ADD, 3=DOWNGRADE, 4=UPGRADE, 5=OVERRIDE"
    • changedInput schema / properties / changes / items / properties / value / description
      Previous value: -"The value to apply (numbers as strings, e.g., \"2\")"New value: +"Value as a string (\"2\")"
    • changedInput schema / properties / disabled / description
      Previous value: -"If true, effect is added but disabled"New value: +"Add disabled"
    • changedInput schema / properties / duration / description
      Previous value: -"Effect duration (combat or time-based)"New value: +"Duration"
    • changedInput schema / properties / duration / properties / rounds / description
      Previous value: -"Duration in combat rounds"New value: +"Combat rounds"
    • changedInput schema / properties / duration / properties / seconds / description
      Previous value: -"Duration in seconds"New value: +"Seconds"
    • changedInput schema / properties / duration / properties / turns / description
      Previous value: -"Duration in combat turns"New value: +"Combat turns"
    • changedInput schema / properties / img / description
      Previous value: -"Icon path for the effect"New value: +"Icon path"
    • changedInput schema / properties / name / description
      Previous value: -"Name of the effect (e.g., \"Bless\", \"Shield of Faith\", \"Temporary Buff\")"New value: +"Effect name (\"Bless\")"
    • changedInput schema / properties / origin / description
      Previous value: -"UUID of the source (item, spell, etc.) that created this effect"New value: +"Source UUID (item, spell)"
    • addedInput schema / properties / sceneId
      Added value: +{
      +  "description": "Scene of tokenId (default: active)",
      +  "type": "string"
      +}
    • changedInput schema / properties / statuses / description
      Previous value: -"Array of status IDs this effect applies (e.g., [\"blinded\", \"deafened\"])"New value: +"Status IDs applied ([\"blinded\"])"
    • addedInput schema / properties / tokenId
      Added value: +{
      +  "description": "Token ID (from token-list) instead of actorId: that token's own actor (module 8.14+)",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "actorId",
      -  "name"
      -]New value: +[
      +  "name"
      +]
  2. First observed

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, covering the safety/mutation profile. The description adds a useful behavioral note that changes carry string values and follow dnd5e data paths ('other systems differ'), plus the single-token scoping caveat. It does not address permissions, whether an existing effect is overwritten, or what happens on invalid paths.

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 the core action and scope, followed by the changes/mode explanation and a compact worked example. It is appropriately sized for a 10-parameter nested tool, though the example JSON is dense and the final system-compatibility clause could be tightened.

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 10 parameters and nested objects with no output schema, the description covers the two aspects an agent is most likely to get wrong: the actor-vs-token targeting and the shape/semantics of 'changes'. Remaining fields (duration, statuses, disabled, origin, img) are self-documenting at 100% schema coverage, so nothing critical 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 coverage is 100%, so the baseline is 3, but the description meaningfully exceeds it: it provides a concrete worked example of a 'changes' entry and warns that paths are dnd5e-specific while other game systems differ. That path/format guidance is real added value over the raw schema, elevating it above baseline.

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?

States a specific verb+resource ('Add a custom active effect') and scopes the target precisely ('to an actor, or to ONE token via tokenId'). It distinguishes itself from the effect-update/effect-delete/effect-list siblings by making clear this is the creation path, and it names what is being created (buff, debuff, custom condition).

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

Usage Guidelines3/5

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

The description implies the creation use case and explains the actorId-vs-tokenId selection ('instead of actorId: that token's own actor'), which is useful routing. However, it never explicitly names effect-update, effect-delete, effect-toggle-status, or effect-list as alternatives, nor states when NOT to use this tool (e.g., to modify an existing effect).

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