Skip to main content
Glama

chat-send

Send a message to the Foundry chat log: narration, NPC dialogue, combat descriptions, out-of-character talk — players watching Foundry only see what is posted here. HTML is supported. actorId speaks as an NPC (portrait); flavor is a subtitle ("Narration", "The Tavern"). Document links: @UUID[Actor.actorId]{Name}, @UUID[Item.itemId]{Sword}, @UUID[JournalEntry.journalId]{Quest}.

Input Schema

NameRequiredDescriptionDefault
typeNoic = in character, ooc = out of character, emote = action.
flavorNoSubheading above the message.
actorIdNoActor ID (from actor-list or actor-filter) to speak as: portrait and name.
contentYesMessage content (HTML allowed), not empty.
speakerNoSender display name (default "Gamemaster"); actorId wins.
whisperToNoUser IDs to whisper to (visible to them and the GM).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • changedInput schema / properties / actorId / description
      Previous value: -"Actor ID to speak as — shows their portrait and uses their name. Use for NPC dialogue."New value: +"Actor ID (from actor-list or actor-filter) to speak as: portrait and name."
    • changedInput schema / properties / content / description
      Previous value: -"Message content. Supports HTML: <p>, <strong>, <em>, <blockquote>, <ul>, <li>. Use @UUID[DocumentType.id]{Label} for clickable document links. Must not be empty."New value: +"Message content (HTML allowed), not empty."
    • changedInput schema / properties / flavor / description
      Previous value: -"Subheading above the message. E.g. \"Narration\", \"The Rusty Dragon Inn\", \"Combat\"."New value: +"Subheading above the message."
    • changedInput schema / properties / speaker / description
      Previous value: -"Display name of the sender. Defaults to \"Gamemaster\". Overridden by actorId if both provided."New value: +"Sender display name (default \"Gamemaster\"); actorId wins."
    • changedInput schema / properties / type / description
      Previous value: -"Message style: \"ic\" = in character (NPC speech), \"ooc\" = out of character (meta), \"emote\" = action description."New value: +"ic = in character, ooc = out of character, emote = action."
    • changedInput schema / properties / whisperTo / description
      Previous value: -"User IDs to whisper to. Message visible only to these users and GM."New value: +"User IDs to whisper to (visible to them and the GM)."
  2. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare this is a non-read-only, non-idempotent, non-destructive write, so the safety profile is covered. The description adds genuinely new behavioral context: the message is the sole visibility channel for players, HTML is passed through, and actorId changes how the post is attributed and rendered. It doesn't say what comes back (a message reference) for follow-up edits.

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?

Purpose is front-loaded in the first clause and the reminder about player visibility lands early. The single dense paragraph packs in a lot of useful detail, though the trailing document-link syntax is a run-on fragment rather than cleanly structured text.

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

Completeness4/5

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

With no output schema and a mutation annotation set, this covers the essentials an agent needs: what to send, how it renders, who sees it, and how to link documents. The only real gap is return-value information, which matters because follow-up edit/delete calls need the new message's ID.

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 a 3 is the floor, but the description earns more: it supplies the @UUID[Type.id]{Label} link syntax that appears nowhere in the schema, and gives concrete examples for flavor ("Narration", "The Tavern") plus the portrait behavior of actorId. The speaker/actorId precedence is left to the schema, which already covers it.

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

Purpose4/5

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

States a specific verb and resource ("Send a message to the Foundry chat log") and enumerates the content types it carries. It does not name the sibling boundary against chat-update or chat-list, so an agent must infer that this is the create path and the others are read/edit paths.

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 list of use cases (narration, NPC dialogue, combat descriptions, OOC) implies when to reach for it, and the note that players only see what is posted here hints at why. But there is no explicit exclusion or pointer to chat-update for editing an existing message, which is the most likely confusion among siblings.

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